Мы начинаем небольшую серию статей, посвященных настройке производительности Windows-сервера и его типичным ролям.
Материал будет полезен как при попытке выжать максимум из старого сервера (помимо покраски его в красный цвет), так и при планировании новых высоконагруженных систем без покупки топовых серверов (как советуют интеграторы).
Общие рекомендации по железу Процессор — это как сердце сервера, поэтому от него зависит многое в плане производительности.
Благодаря маркетологам мы знаем, что чем больше ядер и мегагерц, тем лучше.
На самом деле все не совсем так:
- Выберите 64-битный процессор.
Современные серверные Windows не поддерживают 32-битные процессоры и могут адресовать гораздо больше памяти.
- Количество ядер особого значения не имеет. Не все приложения и сервисы могут использовать несколько ядер, и в целом одно ядро с высокой частотой будет более эффективно, чем два с более низкой частотой.
- Hyperthreading — гиперпоточность — когда одно физическое ядро процессора определяется как два логических.
Функция процессора позволяет обрабатывать два разных потока на одном ядре, что в целом повышает производительность.
Но иногда производительность обратная уменьшается из-за того, что кэш ядра процессора только один.
- Кэш процессора.
Здесь все просто: чем он больше, тем лучше, и зачастую больший кэш дает лучшую производительность, чем частота процессора.
- Не нужно сравнивать процессоры разных поколений и производителей по частоте: скорость обработки данных зависит и от множества других факторов, таких как частота кэша и шины.
- Для Hyper-V важно, чтобы процессор поддерживал SLAT (преобразование адресов второго уровня).
В терминологии Intel эта возможность называется Extended Page Tables (EPT), в AMD — Nested Page Tables (NPT).
Проверить наличие этой функции процессора можно с помощью утилиты systeminfo.exe.
Проверка процессора на соответствие требованиям Hyper-V. С оперативной памятью все довольно просто: чем она больше и быстрее, тем лучше.
Ситуация становится немного интереснее, если оперативной памяти недостаточно и системе необходимо использовать файл подкачки.
Здесь можно ограничиться следующими рекомендациями:
- Файл подкачки следует разместить на отдельном физическом диске.
Чем быстрее, тем лучше.
Если это невозможно, то лучше разместить его на диске с меньшим количеством обращений к файлам;
- Файл подкачки лучше не хранить на отказоустойчивом массиве типа RAID1; по скорости он уступает одному диску.
Рекомендуется разместить файл подкачки на RAID0 или несколько файлов подкачки на разных физических дисках.
Размещение файла подкачки на системном диске – не лучший вариант. Теперь о сетевых адаптерах.
Интересные особенности включают в себя:
- Только адаптеры, поддерживающие 64-битные системы, имеют DMA (Direct Memory Access) — технологию прямого доступа к памяти по сети.
Если вам нужна действительно быстрая сеть между узлами кластера, на это стоит обратить внимание.
- Многопортовые адаптеры полезны для балансировки нагрузки и отказоустойчивости.
Но 2 адаптера с одним портом будут быстрее, чем один адаптер с 2 портами.
Также необходимо иметь в виду, что установка в сервере большего количества сетевых адаптеров, чем ядер, может привести к снижению производительности.
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 .
Значения параметров клиента 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. |
Включить многоканальный | 1 | 0―1 | Включение/отключение использования нескольких физических адаптеров | |
EnableByteRangeLockingOnReadOnlyFiles | Истинный | Истина\Ложь | Включение/отключение блокировки файлов только для чтения | |
EnableInsecureGuestLogons | Истинный | Истина\Ложь | Включение/отключение гостевого входа на ресурс | Отключение не позволит вам без авторизации войти в общие папки на недоменном сервере (NAS) |
Енаблелоадбалансскалеаут | Истинный | Истина\Ложь | Включение/отключение поддержки балансировки нагрузки при подключении к кластеру | |
EnableSecuritySignature | Истинный | Истина\Ложь | Включение/отключение возможности подписи SMB | |
Экстендедсессионтаймаут | 1000 | Время ожидания ответа от сервера | Измеряется в секундах | |
KeepConn | 600 | Время до закрытия неактивной сессии | Измеряется в секундах, применимо только к SMB v1. | |
OplocksОтключено | ЛОЖЬ | Истина\Ложь | Переключается автоматически в зависимости от значения параметра UseOpportunisticLocking. | |
сессионтаймаут | 60 | Время до закрытия неактивной сессии | Измеряется в секундах | |
ИспользованиеОппортунистическая блокировка | Истинный | Истина\Ложь | Включение/отключение режима гибкой блокировки (oplock) файлов с их буферизацией | Включенный механизм значительно увеличивает производительность, но в ненадежных сетях может привести к повреждению файлов.
|
WindowSizeThreshold | 1 для серверных систем, 8 для клиентских систем | Минимальный размер окна перед включением многоканального режима |
- Для достижения максимальной производительности не используйте ненужные функции, такие как мини-фильтры файловой системы, IPSec, шифрование и сжатие NTFS, шифрование SMB и другие.
Включение антивируса может существенно ухудшить производительность, и если периметр сети защищен, лучше его не устанавливать.
- Стоит регулярно проверять актуальность драйверов, особенно для сетевых карт. Были ситуации, когда из-за кривых драйверов сетевая карта стабильно работала только при принудительной установке ста мегабит. И только с выходом свежих драйверов удалось выжать полноценный гигабит.
- Копирование файлов — довольно обычная операция для файлового сервера.
При копировании по сети предпочтительнее использовать утилиту robocopy.exe с ключом /mt, который обеспечивает многопоточность для большого количества небольших файлов.
Немного скорости добавит и отсутствие вывода на консоль — ключ /log для robocopy и /q для xcopy.
Напомню, как их просматривать.
Здесь поможет утилита perfmon.exe. После запуска удобно переключить дисплей в режим «отчет»:
Затем нужно добавить необходимые счетчики производительности.
Например, добавим счетчик «Общие ресурсы SMB-сервера», нажав на зеленый плюс, выбрав нужный нам счетчик и общий ресурс:
И наслаждайтесь результатом:
Рекомендую прочитать блог для более полного описания процедуры использования счетчиков производительности, сбора и анализа результатов.
Перейдем к тюнингу.
За работу SMB-сервера отвечает служба Lanmanserver, поэтому некоторые параметры можно изменить в соответствующей ветке реестра: HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters.
Удобнее, конечно, использовать командлет Set-SmbServerConfiguration .
Отображение значений параметров с помощью командлета 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. |
- путь: 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 | Истинный | логическое значение | Включить — отключить проверку имени целевого ресурса при создании псевдонима.
|
Поэтому лучше сначала «потренироваться на кошках».
Или хотя бы делайте резервные копии.
Перейду к следующей, казалось бы, простой роли – принт-серверу.
Сервер печати Помимо рекомендаций типа «быстрее, выше, сильнее» в плане аппаратного обеспечения, следует отметить еще несколько интересных моментов.
Перенос очереди печати на несистемный диск значительно увеличит производительность сервера.
Делается это в свойствах принт-сервера, на вкладке «дополнительные настройки».
Настройка размещения очереди печати.
Лучше, если это возможно рендерить задачи на клиенте .
В этом случае клиент сам переведет документ в специальный формат для печати (PDL).
Сервер не будет тратить ресурсы на это преобразование.
По умолчанию эта функция уже включена; вы можете включить или отключить его с помощью групповой политики для всех принтеров.
Принтеры можно настроить индивидуально с помощью команды printui /Xs /n "printer" ClientSideRender disabled
Имеет смысл отключить рендеринг на клиенте, если на сервере печати достаточно места для разгрузки клиентов.
Поддерживаемые принтеры XPS (OpenXPS) нагружает сервер меньше, чем принтеры без него.
Принтеры, поддерживающие PCL 6 и Postscript, немного менее эффективны из-за векторного формата.
Поэтому при выборе принтера лучше выбрать принтер с поддержкой XPS и установить соответствующий драйвер.
С выходом Windows 8\2012 появилась поддержка драйверы печати v4 .
Драйвера версии 4 более производительны, но Windows 7 будет печатать на драйвере типа 4, рендеринг задач на клиенте.
Поэтому, если в сети еще есть старая Windows, стоит установить драйвера третьего типа.
Посмотреть тип драйвера можно в свойствах принт-сервера на вкладке «Драйверы»:
Окно установки дополнительных драйверов.
Если говорить о возможностях драйверов четвертого типа, то к ним относятся:
- использование видеокарты для выполнения задач печати.
Да, теперь вы можете установить его на сервер печати, чтобы повысить производительность при рендеринге задач на сервере.
- упрощенная система подключения «расшаренного» принтера: теперь нет необходимости устанавливать драйвера для разных архитектур процессоров.
С его помощью клиент работает с принтером напрямую, минуя какую-либо обработку на сервере печати.
Правда, вам понадобятся принтеры с поддержкой TCP\IP или WSD. Подробнее о технологии можно узнать на сайте.
Майкрософт , и вы можете включить или отключить его для конкретного принтера с помощью командлета powershell: Set―Printer ―name <printername> ―ComputerName <computername> ―RenderingMode BranchOffice
Технология не работает, если используется серверная обработка печати.
Чтобы диагностировать узкие места печати, обратите внимание на три процесса:
- спулсв.
exe;
- Printfilterpipelinesvc.exe;
- Printisolationhost.exe;
Для более детального поиска узких мест помогут специальные счетчики производительности.
Набор типичных счетчиков производительности подсистемы печати.
Список фишек с пояснениями находится под спойлером.
Имя | Описание |
Всего напечатано работ | Количество напечатанных работ |
Всего напечатанных страниц | Количество напечатанных страниц |
Звонки с просьбой добавить сетевой принтер | Количество подключений к общему принтеру с момента последнего перезапуска службы |
Задания | Количество заданий, напечатанных с момента последнего перезапуска службы.
|
Задания, обработанные диспетчером очереди печати | Текущее количество заданий в службе печати |
Максимальное количество заданий, обрабатываемых диспетчером | Максимальное количество заданий печати |
Максимальная ссылка |
-
Информация Об Аниме В Интернете
19 Oct, 24 -
Сальвадор
19 Oct, 24 -
Dos-Атака На Телефоны Sony Ericsson
19 Oct, 24