Настройка Типичных Ролей Windows. Часть Первая: Файлы И Печать



Настройка типичных ролей Windows. Часть первая: файлы и печать

Мы начинаем небольшую серию статей, посвященных настройке производительности Windows-сервера и его типичным ролям.

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

Общие рекомендации по железу Процессор — это как сердце сервера, поэтому от него зависит многое в плане производительности.

Благодаря маркетологам мы знаем, что чем больше ядер и мегагерц, тем лучше.

На самом деле все не совсем так:

  1. Выберите 64-битный процессор.

    Современные серверные Windows не поддерживают 32-битные процессоры и могут адресовать гораздо больше памяти.

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

  3. Hyperthreading — гиперпоточность — когда одно физическое ядро процессора определяется как два логических.

    Функция процессора позволяет обрабатывать два разных потока на одном ядре, что в целом повышает производительность.

    Но иногда производительность обратная уменьшается из-за того, что кэш ядра процессора только один.

  4. Кэш процессора.

    Здесь все просто: чем он больше, тем лучше, и зачастую больший кэш дает лучшую производительность, чем частота процессора.

  5. Не нужно сравнивать процессоры разных поколений и производителей по частоте: скорость обработки данных зависит и от множества других факторов, таких как частота кэша и шины.

  6. Для Hyper-V важно, чтобы процессор поддерживал SLAT (преобразование адресов второго уровня).

    В терминологии Intel эта возможность называется Extended Page Tables (EPT), в AMD — Nested Page Tables (NPT).

    Проверить наличие этой функции процессора можно с помощью утилиты systeminfo.exe.



Настройка типичных ролей Windows. Часть первая: файлы и печать

Проверка процессора на соответствие требованиям Hyper-V. С оперативной памятью все довольно просто: чем она больше и быстрее, тем лучше.

Ситуация становится немного интереснее, если оперативной памяти недостаточно и системе необходимо использовать файл подкачки.

Здесь можно ограничиться следующими рекомендациями:

  • Файл подкачки следует разместить на отдельном физическом диске.

    Чем быстрее, тем лучше.

    Если это невозможно, то лучше разместить его на диске с меньшим количеством обращений к файлам;

  • Файл подкачки лучше не хранить на отказоустойчивом массиве типа RAID1; по скорости он уступает одному диску.

    Рекомендуется разместить файл подкачки на RAID0 или несколько файлов подкачки на разных физических дисках.



Настройка типичных ролей Windows. Часть первая: файлы и печать

Размещение файла подкачки на системном диске – не лучший вариант. Теперь о сетевых адаптерах.

Интересные особенности включают в себя:

  1. Только адаптеры, поддерживающие 64-битные системы, имеют DMA (Direct Memory Access) — технологию прямого доступа к памяти по сети.

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

  2. Многопортовые адаптеры полезны для балансировки нагрузки и отказоустойчивости.

    Но 2 адаптера с одним портом будут быстрее, чем один адаптер с 2 портами.

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



Настройка типичных ролей Windows. Часть первая: файлы и печать

HPE ProLiant DL360 Gen7 изначально имеет четыре сетевых порта.

На этом я закончу это краткое введение и перейду непосредственно к оптимизации ролей сервера.

Начнем с самого простого — файлового сервера.

Файловый сервер Обычно при установке и эксплуатации файлового сервера производительность не является проблемой.

Но только до тех пор, пока на обычном файловом дампе не будут созданы базы данных, чудовищные файлы Excel и тому подобные «интересные» вещи.

Расскажу о параметрах, которые могут улучшить или ухудшить производительность SMB. Отдельно хотелось бы отметить вопрос производительности сервера, который обрабатывает не только клиентов внутри локальной сети, но и удаленных — например, через VPN. Лично я сталкивался с ситуацией, когда в сети стали появляться компьютеры под управлением Windows 7\2008 под управлением Windows XP\2003. Тогда мы столкнулись с тем, что производительность сети новых компьютеров оставляла желать лучшего при общении со старыми ОС.

Начитавшись в интернете, мы запустили на новых машинах следующий скрипт:

  
  
  
  
  
   

netsh int tcp set global autotuning=disabled netsh int tcp set global autotuninglevel=disabled netsh int tcp set global rss=disabled chimney=disabled

Сеть заработала, скрипт был добавлен в развернутые образы системы.

И все было хорошо, пока в сети не появился удаленный сегмент с повышенными требованиями к скорости сети.

Файлы передавались через VPN со скоростью не более 2 Мбит/с.

Проблему локализовали: оказалось, что добавлена функция специально для работы в сетях LAN\WAN в новых операционных системах.

автотюнинг .

Используя его, системы определяют скорость соединения и согласовывают размеры кадров TCP для оптимальной производительности.

Чтобы VPN работал быстро и серверы не тормозили при доступе к WIndows 2003, достаточно было не отключать автотюнинг И ограничьте его командой:

netsh int tcp set global autotuninglevel=highlyrestricted

Но перейдем к более специализированным параметрам.

Мы помним, что изменение настроек реестра и настроек служб может привести к чему угодно.

Поэтому делаем все аккуратно.

Начнем с настройки клиентов файлового сервера.

Служба отвечает за подключение к SMB-серверу.

LanmanРабочая станция .

Большинство параметров расположены в следующей ветке реестра:

HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters

Большинство параметров имеют тип REG_DWORD. В современной Windows некоторыми настройками можно управлять с помощью командлета.

Set-SmbClientConfiguration .

Просмотр текущих значений – соответственно, Get-SmbClientConfiguration .



Настройка типичных ролей Windows. Часть первая: файлы и печать

Значения параметров клиента SMB. Параметры, на которые следует обратить внимание в первую очередь, когда речь идет о проблемах с производительностью:

Имя параметра Значение по умолчанию Варианты значений За что он несет ответственность? Комментарий
Отключить регулирование пропускной способности 0 0―1 Включить — отключить регулирование для сетей с большой задержкой.

Включение этого параметра может повысить пропускную способность в сетях с высокой задержкой (WAN).

FileInfoCacheEntriesMax 64 1―65536 Максимальное количество значений в кэше метаданных файла Увеличение параметра снижает трафик и увеличивает пропускную способность сети при доступе к большому количеству файлов.

DirectoryCacheEntrySizeMax 64 1―65536 Максимальный размер кэша для каталогов Измеряется в килобайтах
FileNotFoundCacheEntriesMax 128 1―65536 Максимальное количество значений в кэше информации о файле Увеличение параметра снижает трафик и увеличивает пропускную способность сети при доступе к большому количеству файлов.

МаксКмдс 50 1―65536 Максимальное количество команд в сеансе Увеличение параметра увеличит потребление памяти, но улучшит производительность.

Только для SMB v1

СпящийFileLimit 1023 1―65536 Максимальное количество файлов, которые можно открыть после освобождения приложением.

МусорщикTimeLimit 10 0―127 Как часто запускается очиститель для очистки кэша файловых дескрипторов? Измеряется в секундах, актуально для Windows XP\2003.
В качестве примера настройки можно привести следующие значения:
  • Отключить регулирование пропускной способности = 1;
  • FileInfoCacheEntriesMax = 32768;
  • DirectoryCacheEntriesMax = 4096;
  • FileNotFoundCacheEntriesMax = 32768;
  • МаксКмдс = 32768;
  • ДормантФилеЛимит = 32768;
  • ScavengerTimeLimit = 60.
Конечно, эти конкретные ценности не являются панацеей.

Параметры необходимо подбирать индивидуально.

С другими параметрами, в меньшей степени влияющими на производительность, предлагаю ознакомиться под спойлером.

Настройки, настраиваемые через PowerShell и реестр:

Имя параметра Значение по умолчанию Варианты значений За что он несет ответственность? Комментарий
ConnectionCountPerNetworkInterface 1 1―16 Максимальное количество подключений к серверу с интерфейсом без поддержки RSS MS не рекомендует менять значение по умолчанию.

ConnectionCountPerRssNetworkInterface 4 1―16 Максимальное количество подключений к серверу с интерфейсом с поддержкой RSS
ConnectionCountPerRdmaNetworkInterface 2 1―16 Максимальное количество подключений к серверу с интерфейсом с поддержкой RDMA
Максимумконнектионкаунтперсервер 32 1―64 Максимальное количество подключений к одному серверу
Спящий каталогТайм-аут 600 Максимальное время обработки каталога Измеряется в секундах
FileInfoCacheLifetime 10 Время, потраченное на хранение информации о файле в кеше
DirectoryCacheВремя жизни 10 Время, потраченное на хранение метаданных каталога в кеше
FileNotFoundCacheLifetime 5 Время хранения кеша для не найденных файлов
Тайм-аут кэш-файла 10 Время хранения файла в кэше после его освобождения приложением.

ОтключитьLargeMtu 0 (Вин8) 0―1 Включить/отключить большой размер MTU При включенном параметре размер запроса ограничен 64 КБ, при включенном - 1 МБ.

ТребоватьSecuritySignature 0 0―1 Включение/отключение обязательного подписания SMB Включение этого параметра снижает производительность, но повышает защиту от атак MITM.
DirectoryCacheEntriesMax 16 1―4096 Максимальное количество значений в кэше информации каталога Увеличение параметра снижает трафик и увеличивает пропускную способность сети при доступе к большим каталогам.

МаксКредитс 128 Максимальное количество команд в сеансе То же, что MaxCmds, но для SMB v2.
Настройки, настроенные через powershell:
Включить многоканальный 1 0―1 Включение/отключение использования нескольких физических адаптеров
EnableByteRangeLockingOnReadOnlyFiles Истинный Истина\Ложь Включение/отключение блокировки файлов только для чтения
EnableInsecureGuestLogons Истинный Истина\Ложь Включение/отключение гостевого входа на ресурс Отключение не позволит вам без авторизации войти в общие папки на недоменном сервере (NAS)
Енаблелоадбалансскалеаут Истинный Истина\Ложь Включение/отключение поддержки балансировки нагрузки при подключении к кластеру
EnableSecuritySignature Истинный Истина\Ложь Включение/отключение возможности подписи SMB
Экстендедсессионтаймаут 1000 Время ожидания ответа от сервера Измеряется в секундах
KeepConn 600 Время до закрытия неактивной сессии Измеряется в секундах, применимо только к SMB v1.
OplocksОтключено ЛОЖЬ Истина\Ложь Переключается автоматически в зависимости от значения параметра UseOpportunisticLocking.
сессионтаймаут 60 Время до закрытия неактивной сессии Измеряется в секундах
ИспользованиеОппортунистическая блокировка Истинный Истина\Ложь Включение/отключение режима гибкой блокировки (oplock) файлов с их буферизацией Включенный механизм значительно увеличивает производительность, но в ненадежных сетях может привести к повреждению файлов.

WindowSizeThreshold 1 для серверных систем, 8 для клиентских систем Минимальный размер окна перед включением многоканального режима
Если говорить непосредственно о файловом сервере, то вот несколько общих рекомендаций:
  1. Для достижения максимальной производительности не используйте ненужные функции, такие как мини-фильтры файловой системы, IPSec, шифрование и сжатие NTFS, шифрование SMB и другие.

    Включение антивируса может существенно ухудшить производительность, и если периметр сети защищен, лучше его не устанавливать.

  2. Стоит регулярно проверять актуальность драйверов, особенно для сетевых карт. Были ситуации, когда из-за кривых драйверов сетевая карта стабильно работала только при принудительной установке ста мегабит. И только с выходом свежих драйверов удалось выжать полноценный гигабит.
  3. Копирование файлов — довольно обычная операция для файлового сервера.

    При копировании по сети предпочтительнее использовать утилиту robocopy.exe с ключом /mt, который обеспечивает многопоточность для большого количества небольших файлов.

    Немного скорости добавит и отсутствие вывода на консоль — ключ /log для robocopy и /q для xcopy.

Для оценки производительности протокола SMB можно использовать счетчики производительности, существующие как для сервера, так и для клиента.

Напомню, как их просматривать.

Здесь поможет утилита perfmon.exe. После запуска удобно переключить дисплей в режим «отчет»:

Настройка типичных ролей Windows. Часть первая: файлы и печать

Затем нужно добавить необходимые счетчики производительности.

Например, добавим счетчик «Общие ресурсы SMB-сервера», нажав на зеленый плюс, выбрав нужный нам счетчик и общий ресурс:

Настройка типичных ролей Windows. Часть первая: файлы и печать

И наслаждайтесь результатом:

Настройка типичных ролей Windows. Часть первая: файлы и печать

Рекомендую прочитать блог для более полного описания процедуры использования счетчиков производительности, сбора и анализа результатов.

Майкрософт .

Перейдем к тюнингу.

За работу SMB-сервера отвечает служба Lanmanserver, поэтому некоторые параметры можно изменить в соответствующей ветке реестра:

HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters.

Удобнее, конечно, использовать командлет Set-SmbServerConfiguration .



Настройка типичных ролей Windows. Часть первая: файлы и печать

Отображение значений параметров с помощью командлета Get-SmbServerConfiguration. Параметры, на которые следует обратить внимание в первую очередь:

Имя параметра Значение по умолчанию Тип параметра За что он несет ответственность? Комментарий
Smb2CreditsМакс.

8192 uint32 Максимальное количество команд SMB v2 Эти два параметра позволяют динамически распределять нагрузку.

Иногда при использовании высокоскоростных каналов (WAN) с высокой задержкой изменение этих параметров приводит к увеличению скорости.

Посмотреть, есть ли проблемы, поможет счетчик производительности «Общие ресурсы SMB-клиента — Кредитные задержки/с».

Smb2CreditsМин 512 uint32 Минимальное количество команд SMB v2
MaxThreadsPerQueue 20 блок32 Максимальное количество потоков сервера при обработке одновременных запросов Увеличение параметра влияет на нагрузку оборудования, но увеличивает производительность.

Индикатором изменения параметра может служить значение счетчика производительности «Очереди работы сервера — Длина очереди — SMB2 NonBlocking» становится больше 100.

АсинхронныеКредиты 512 uint32 Максимальное количество одновременных асинхронных команд в одном сеансе В некоторых случаях, например, при использовании загруженного веб-сервера, увеличение значения параметра увеличивает производительность.

МаксМпксКт 50 uint32 Максимальное количество невыполненных клиентских запросов на одного клиента Влияет только на клиентов SMB v1.
Есть еще один параметр реестра, который не контролируется командлетом powershell:
  • путь: HKLM\System\CurrentControlSet\Control\Session Manager\Executive;
  • параметр: REG_DWORD с именем ExtraCriticalWorkerThreads;
  • значение по умолчанию: 0.
Эта опция управляет дополнительными рабочими процессами, которые отвечают за запись и чтение процедур в кэше файловой системы.

По умолчанию дополнительных процессов нет, и изменение этого параметра может существенно ускорить работу файлового сервера.

Особенно если у вас многоядерные процессоры и мощная дисковая система.

Об увеличении этого параметра можно задуматься, если увеличится счетчик производительности «Кэш — «Грязные» страницы».

В качестве примера настройки можно привести следующие значения параметров:

  • дополнительныеCriticalWorkerThreads = 64;
  • Макстреадсперкуеуэ = 64;
  • МаксМпксКт = 32768.
Значения также необходимо подбирать индивидуально.

О других параметрах предлагаю прочитать под спойлером.

Имя параметра Значение по умолчанию Тип параметра За что он несет ответственность? Комментарий
ОбъявлениеКомментарий нулевой нить Просмотр сервера
AnnounceServer ЛОЖЬ логическое значение Включить - отключить просмотр сервера
АудитSmb1Access ЛОЖЬ логическое значение Включить — отключить аудит доступа по протоколу SMB v1. Параметр появился только в Windows 10\2016.
Автодисконнекттаймаут 15 uint32 Время, по истечении которого неактивная сессия отключается
АвтоShareServer Истинный логическое значение Включить — отключить сетевые ресурсы сервера по умолчанию.

AutoShareWorkstation Истинный логическое значение Включить — по умолчанию отключить сетевые ресурсы рабочей станции.

КэшированоOpenLimit 10 uint3 Максимальное количество открытых файлов в кэше
DurableHandleV2TimeoutInSeconds 180 uint32 Время деактивации неактивной ручки
Енаблеаусентикатеусершаринг ЛОЖЬ логическое значение Включить — отключить совместное использование соединений
ВключитьDownlevelTimewarp ЛОЖЬ логическое значение Включить - отключить временные искажения низкого уровня.

Включить принудительный выход из системы Истинный логическое значение Включить - отключить принудительный выход
Включить лизинг Истинный логическое значение Включить - отключить аренду
Включить многоканальный Истинный логическое значение Включить — отключить использование нескольких физических адаптеров.

Включить оплокс Истинный логическое значение Включить - отключить гибкие блокировки (oplock)
EnableSecuritySignature ЛОЖЬ логическое значение Включить — отключить возможности подписи SMB.
Включить протокол SMB1 Истинный логическое значение Включить — отключить протокол SMB v1.
Включить протокол SMB2 Истинный логическое значение Включить - отключить протокол SMB v2+
EnableStrictNameChecking Истинный логическое значение Включить - отключить проверку имени входящего соединения
ШифроватьДанные ЛОЖЬ логическое значение Включить — отключить поддержку шифрования данных.

IrpStackSize 15 блок32 Размер стека IRP (запросы ввода-вывода)
KeepAliveTime 2 блок32 Частота запросов поддержки активности TCP для подключения SMB
Максканнелперсессион 32 блок32 Количество каналов в одном сеансе
МаксМпксКаунт 50 блок32 Максимальное количество команд в сеансе Параметр должен быть настроен так же, как параметр MaxCmds клиента.

Макссессионперконнектион 16384 блок32 Максимальное количество сеансов на одно соединение
Максворкитемс 1 uint32 Максимальное количество рабочих элементов Параметр влияет только на SMB v1.
NullSessionPipes нулевой нить Каналы, доступные в нулевом сеансе
NullSessionShares нулевой нить Сетевые ресурсы, доступные в нулевом сеансе
ОплокПерерывПодождите 35 uint32 Время ожидания до прерывания блокировки
PendingClientTimeoutInSeconds 120 uint32 Время ожидания клиента
Отклонить нешифрованный доступ Истинный логическое значение Включить – отключить незашифрованные запросы доступа.

ТребоватьSecuritySignature ЛОЖЬ логическое значение Включить-отключить обязательное подписание SMB Включение этого параметра снижает производительность, но повышает защиту от атак MITM.
СерверСкрытый Истинный логическое значение Включить - отключить просмотр сервера По умолчанию сервер не представляется
SmbServerNameHardeningLevel 0 uint32 Уровень упрощения имени сервера
ОбработатьHostAsStableStorage ЛОЖЬ логическое значение Включить — отключить надежное дисковое хранилище.

Включение этого параметра сообщает серверу о надежности дискового хранилища; стоит включить его при работе с диском с энергонезависимым кэшем записи.

Тогда сервер не будет ждать подтверждения записи на диск, что ускорит работу.

ValidateAliasNotCircular Истинный логическое значение Включить - отключить использование псевдонимов
ValidateShareScope Истинный логическое значение Включить — отключить проверку имени ресурса при создании нового ресурса.

ValidateShareScopeNotAliased Истинный логическое значение Включить — отключить проверку псевдонимов ресурсов при создании нового ресурса.

ValidateTargetName Истинный логическое значение Включить — отключить проверку имени целевого ресурса при создании псевдонима.

Повторюсь: изменение параметров может привести к сбою сервера.

Поэтому лучше сначала «потренироваться на кошках».

Или хотя бы делайте резервные копии.

Перейду к следующей, казалось бы, простой роли – принт-серверу.

Сервер печати Помимо рекомендаций типа «быстрее, выше, сильнее» в плане аппаратного обеспечения, следует отметить еще несколько интересных моментов.

Перенос очереди печати на несистемный диск значительно увеличит производительность сервера.

Делается это в свойствах принт-сервера, на вкладке «дополнительные настройки».



Настройка типичных ролей Windows. Часть первая: файлы и печать

Настройка размещения очереди печати.

Лучше, если это возможно рендерить задачи на клиенте .

В этом случае клиент сам переведет документ в специальный формат для печати (PDL).

Сервер не будет тратить ресурсы на это преобразование.

По умолчанию эта функция уже включена; вы можете включить или отключить его с помощью групповой политики для всех принтеров.

Принтеры можно настроить индивидуально с помощью команды

printui /Xs /n "printer" ClientSideRender disabled

Имеет смысл отключить рендеринг на клиенте, если на сервере печати достаточно места для разгрузки клиентов.

Поддерживаемые принтеры XPS (OpenXPS) нагружает сервер меньше, чем принтеры без него.

Принтеры, поддерживающие PCL 6 и Postscript, немного менее эффективны из-за векторного формата.

Поэтому при выборе принтера лучше выбрать принтер с поддержкой XPS и установить соответствующий драйвер.

С выходом Windows 8\2012 появилась поддержка драйверы печати v4 .

Драйвера версии 4 более производительны, но Windows 7 будет печатать на драйвере типа 4, рендеринг задач на клиенте.

Поэтому, если в сети еще есть старая Windows, стоит установить драйвера третьего типа.

Посмотреть тип драйвера можно в свойствах принт-сервера на вкладке «Драйверы»:

Настройка типичных ролей Windows. Часть первая: файлы и печать

Окно установки дополнительных драйверов.

Если говорить о возможностях драйверов четвертого типа, то к ним относятся:

  • использование видеокарты для выполнения задач печати.

    Да, теперь вы можете установить его на сервер печати, чтобы повысить производительность при рендеринге задач на сервере.

    видеокарта ;

  • упрощенная система подключения «расшаренного» принтера: теперь нет необходимости устанавливать драйвера для разных архитектур процессоров.

Технологии также заслуживают внимания Филиал.

С его помощью клиент работает с принтером напрямую, минуя какую-либо обработку на сервере печати.

Правда, вам понадобятся принтеры с поддержкой TCP\IP или WSD. Подробнее о технологии можно узнать на сайте.

Майкрософт , и вы можете включить или отключить его для конкретного принтера с помощью командлета powershell:

Set―Printer ―name <printername> ―ComputerName <computername> ―RenderingMode BranchOffice

Технология не работает, если используется серверная обработка печати.

Чтобы диагностировать узкие места печати, обратите внимание на три процесса:

  • спулсв.

    exe;

  • Printfilterpipelinesvc.exe;
  • Printisolationhost.exe;
А также посмотреть потребление памяти, процессора и нагрузку на винчестер этими процессами.

Для более детального поиска узких мест помогут специальные счетчики производительности.



Настройка типичных ролей Windows. Часть первая: файлы и печать

Набор типичных счетчиков производительности подсистемы печати.

Список фишек с пояснениями находится под спойлером.

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

Задания, обработанные диспетчером очереди печати Текущее количество заданий в службе печати
Максимальное количество заданий, обрабатываемых диспетчером Максимальное количество заданий печати
Максимальная ссылка
Теги: #Оптимизация сервера #Системное администрирование #Администрирование сервера #производительность #оптимизация Windows #оптимизация Windows
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.