Постоянно смонтируйте сетевой ресурс без потребности во входе в систему? (Windows)

Необходимо прочитать Документацию Apache, имеющую дело с Многопроцессорными Модулями (MPMs). Короче говоря это определяет, как Apache обработает несколько запросов, и существует два основных способа сделать это: предварительное разветвление (который является тем, что оно кажется, что Вы делаете теперь) и распараллелило рабочего, который часто более эффективен.

Предварительное ветвление, как Вы сказали, создает и поддерживает много "запасных" апачских процессов, и каждый процесс обрабатывает один клиент. Когда Вы понижаетесь на процессах, Apache создает больше. Это может быть медленно и использовать большую память. То, сколько процессов создается, может быть настроено с помощью StartServers, MinSpareServers и конфигурационных директив MaxSpareServers.

Рабочий использует сингл или небольшое количество процессов, но создает несколько потоков в каждом процессе для обрабатывания каждого запроса. Это может быть намного более эффективным, но не совместимо с определенными модулями Apache, которые не ориентированы на многопотоковое исполнение (прежде всего PHP). Таким образом, при использовании таких модулей Вы захотите рассмотреть переключение на FastCGI.

Из документации Apache:

Apache предварительное ветвление MPM

Этот Многопроцессорный модуль (MPM) реализует нерезьбовой, предварительно разветвляющийся веб-сервер, который обрабатывает запросы способом, подобным Apache 1.3. Это подходит для сайтов, которые должны постараться не распараллеливать для совместимости с неориентированными на многопотоковое исполнение библиотеками. Это - также лучший MPM для изоляции каждого запроса, так, чтобы проблема с единственным запросом не влияла ни на какого другого.

[...]

Единственный процесс управления ответственен за запуск дочерних процессов, которые прислушиваются к соединениям и обслуживают их, когда они прибывают. Apache всегда пытается поддержать несколько запчастей или неактивных серверных процессов, которые готовы обслуживать входящие запросы. Таким образом клиенты не должны ожидать новые дочерние процессы, которые будут разветвлены, прежде чем их запросы смогут быть поданы.

StartServers, MinSpareServers, MaxSpareServers и MaxClients регулируют, как родительский процесс создает детей для обслуживания запросов. В целом Apache очень автономен, таким образом, большинство сайтов не должно корректировать эти директивы от своих значений по умолчанию. Сайты, которые должны служить больше чем 256 одновременным запросам, возможно, должны увеличить MaxClients, в то время как сайты с ограниченной памятью, возможно, должны уменьшить MaxClients, чтобы помешать серверу перегружаться (свопинг памяти к диску и назад). Больше информации о настраивающемся создании процесса предоставляется в документации подсказок производительности.

И:

Apache рабочий MPM

Этот Многопроцессорный модуль (MPM) реализует гибридный мультипроцесс многопоточный сервер. При помощи потоков для обслуживания запросов это может служить большому количеству запросов с меньшим количеством системных ресурсов, чем основанный на процессе сервер. Все же это сохраняет большую часть устойчивости основанного на процессе сервера путем сохранения нескольких процессов доступными, каждый со многими потоками.

[...]

Единственный процесс управления (родитель) ответственен за запуск дочерних процессов. Каждый дочерний процесс создает постоянное число потоков сервера, как указано в директиве ThreadsPerChild, а также потоке слушателя, который прислушивается к соединениям и передает их потоку сервера для обработки, когда они прибывают.

Я переключился от mod_php и mpm_prefork к FastCGI PHP и mpm_worker, и нашел очень значительное увеличение производительности, специально для статических файлов (изображения, файлы HTML, и т.д.). Ваш пробег может варьироваться...

25
задан 11 September 2012 в 15:11
4 ответа

Это очевидно возможно, согласно этой публикации на StackOverflow .

Однако, прежде чем публиковать содержание ответа, могу ли я предположить, что вы чрезмерно усложняете это ?

В ситуациях, подобных этой, когда какой-то дрянной код требует, чтобы пользователь вошел в систему для запуска (например, сервер Domino, grumble ), я создал учетную запись службы, которая всегда будет входить в систему на заданном сервер и настройте сценарий автоматического входа, чтобы машина автоматически входила в указанную учетную запись при перезагрузке. Я бы посоветовал более легким и более удобным решением вашей проблемы было бы сделать то же самое и сопоставить диск для этого пользователя учетной записи службы с помощью групповой политики или сценария входа в систему.

В любом случае, если вы решите попробовать это без пользовательского контекста, см. ниже. Это взлом, так что используйте на свой страх и риск и все:

Для этого взлома вам понадобится SysinternalsSuite от Марка Руссиновича: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx

Шаг первый : Откройте командную строку cmd.exe с повышенными привилегиями (Запуск от имени администратора)

Шаг второй: Повысьте уровень до root с помощью PSExec.exe: перейдите в папку, содержащую SysinternalsSuite, и выполните следующую команду «psexec -i -s cmd.exe», вы теперь находятся внутри приглашения, которое называется «NT Authority \ system», и вы можете доказать это, набрав «whoami». -I необходим, потому что сопоставления дисков должны взаимодействовать с пользователем

Шаг третий: Создайте постоянный подключенный диск в качестве учетной записи СИСТЕМЫ с помощью следующей команды "net use z: \ servername \ sharedfolder / persistent: yes"

Это так просто!

ВНИМАНИЕ: Вы можете удалить это сопоставление только так же, как вы его создали, из учетной записи SYSTEM. Если вам нужно удалить его, выполните шаги 1 и 2, но измените команду на шаге 3 на: "net use z: / delete"

ПРИМЕЧАНИЕ. Вновь созданный подключенный диск теперь будет отображаться для ВСЕХ пользователей этой системы, но они он будет отображаться как «Отключенный сетевой диск (Z :)». Не позволяйте названию ввести вас в заблуждение. Он может заявить, что отключен, но он будет работать для всех. Вот как вы можете сказать, что этот хак не поддерживается M $.

Из комментариев:

Чтобы заставить его работать после перезагрузки, создайте сценарий, содержащий только net use z: \ servername \ sharedfolder, и установите его для запуска при запуске компьютера, per technet.microsoft.com/en-us/ library / cc770556.aspx Это будет запускаться как системная учетная запись, поэтому в psexec нет необходимости.

22
ответ дан 28 November 2019 в 20:13

создать свой командный файл, который запускает эту команду. преобразовать его в службу Windows. заставить эту службу запускаться при запуске Windows, и все.

Это может быть полезно: Как создать службу, запускающую файл .bat в Windows 2008 Server?

4
ответ дан 28 November 2019 в 20:13

Также можно попробовать добавить Sysinternals Suite на C:\SysinternalsSuite

  1. Run a elevated cmd window
  2. cd c:\sysint*
  3. psexec -i -s cmd.exe
  4. whoami Чтобы удостовериться, что вы не авторизованны
  5. net use x: \\PathToDrive или share /persistent:yes

It should show as a disconnected drive and to automount it just create a startup script with step 5 in it. Вы должны использовать шаги 1 - 5, чтобы удалить отображение, просто измените 5, чтобы отразить использование сети x: /удалить

2
ответ дан 28 November 2019 в 20:13

Я нашел решение для постоянной установки диска. Однако диск не монтируется во время каждой сессии. Я сделал это в Windows Server 2019.

Допустим, мы хотим смонтировать каталог с именем target_dir , расположенный на target_server . Мое имя пользователя my_username и мой пароль my_password в домене с именем MY_DOMAIN . Давайте смонтируем его на диске T: .

Во-первых, создайте новый текстовый файл где угодно (например, на рабочем столе). Откройте его и проанализируйте это:

@ECHO OFF
net use s: \\target_server\target_dir /persistent:yes

Затем переименуйте его в mount_drive.bat и переместите этот файл в C: \ Windows \ System32 \ GroupPolicy \ Machine \ Scripts \ Запуск .

Убедитесь, что это не файл.txt больше.

Теперь нажмите Win + R , введите gpedit.msc и запустите редактор локальной групповой политики .

Перейдите к Конфигурация компьютера \ Параметры Windows \ Сценарии (запуск / завершение работы) и дважды щелкните Запуск .
Нажмите Добавить ... затем Обзор ... , выберите файл, который вы только что переместили.

Затем перейдите в Конфигурация компьютера \ Административные шаблоны \ Система \ Вход в систему , установите Всегда ждать сеть при запуске компьютера и входе в систему с по включен , сохраните и закройте.

Откройте терминал с повышенными правами , чтобы сохранить свои учетные данные. Затем настройте Windows, чтобы не отключать этот диск по истечении тайм-аута.

cmdkey /add:target_server /user:MY_DOMAIN\my_username /pass:my_password
NET CONFIG SERVER /AUTODISCONNECT:-1

Вы можете дополнительно проверить, что все работает, запустив C: \ Windows \ System32 \ GroupPolicy \ Machine \ Scripts \ Startup \ mount_drive.bat

Перезагрузка

0
ответ дан 28 November 2019 в 20:13

Теги

Похожие вопросы