Иногда при подключении интернета или использовании ресурсов локальной сети возникают проблемы. Могут вылезать ошибки подключения, получения IP адресов или конфигурации сетевого оборудования. Внутри компьютера или ноутбука, функцией подключения к локальной или глобальной сети, занимается сетевой адаптер. В статье мы как раз и поговорим про настройку сетевого адаптера для улучшения связи в интернете. Инструкция будет ходовая для всех версий Windows 7, 8 и 10.
Мне постоянно приходят письма с вопросами – как более детально настроить сетевой адаптер для меньшего пинга в играх, для лучшего просмотра кино и большей скорости скачивания. Поэтому я решил написать более детальную статью. Ну, поехали! По идее она настраивается автоматически под рациональное использование ресурсов системы и самого устройства. Но конфигурацию можно корректировать под свои нужды.
После изменения, следует перезагрузить компьютер или ноутбук, чтобы некоторые изменения вступили в силу. Установки сетевого адаптера всегда можно откатить обратно, самое главное не потеряйте тот листок с настройками.
ПРОСЬБА! Если я что-то не указал, или написал что-то не так – пишите смело в комментариях свои исправления или замечания, буду рад поучиться чему-то у своих читателей.
Относится к: Windows Server (Semi-Annual Channel), Windows Server 2016 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2016
Этот раздел можно использовать для настройки производительности сетевых адаптеров, установленных на компьютерах под управлением Windows Server 2016. You can use this topic to performance tune network adapters that are installed in computers that are running Windows Server 2016.
Определение правильных настроек для сетевого адаптера зависит от следующих факторов: Determining the correct tuning settings for your network adapter depend on the following variables:
сетевой адаптер и набор его функций; The network adapter and its feature set
тип рабочей нагрузки, выполняемой сервером; The type of workload performed by the server
аппаратные и программные ресурсы сервера; The server hardware and software resources
задачи настройки сервера. Your performance goals for the server
Если сетевой адаптер предоставляет возможности настройки, то на основании приведенных выше факторов можно оптимизировать пропускную способность сети и использование ресурсов. If your network adapter provides tuning options, you can optimize network throughput and resource usage to achieve optimum throughput based on the parameters described above.
В следующих разделах описывается ряд параметров настройки производительности. The following sections describe some of your performance tuning options.
Включение функций разгрузки Enabling Offload Features
Включение функций разгрузки на сетевом адаптере обычно имеет положительный эффект. Turning on network adapter offload features is usually beneficial. Однако иногда сетевой адаптер недостаточно производителен, чтобы осуществлять функции разгрузки с высокой пропускной способностью. Sometimes, however, the network adapter is not powerful enough to handle the offload capabilities with high throughput.
Не используйте разгрузку задач IPSec функции разгрузки или разгрузку TCP Chimney. Do not use the offload features IPsec Task Offload or TCP Chimney Offload. Эти технологии являются устаревшими в Windows Server 2016 и могут негативно сказаться на производительности сервера и сети. These technologies are deprecated in Windows Server 2016, and might adversely affect server and networking performance. Кроме того, эти технологии могут не поддерживаться корпорацией Майкрософт в будущем. In addition, these technologies might not be supported by Microsoft in the future.
Например, включение разгрузки сегментации может снизить максимальную устойчивую пропускную способность некоторых сетевых адаптеров из-за ограниченности аппаратных ресурсов. For example, enabling segmentation offload can reduce the maximum sustainable throughput on some network adapters because of limited hardware resources. Однако если снижение пропускной способности не будет ограничением, функции разгрузки рекомендуется включать даже для подобных сетевых адаптеров. However, if the reduced throughput is not expected to be a limitation, you should enable offload capabilities, even for this type of network adapter.
В некоторых сетевых адаптерах функции разгрузки нужно включать по отдельности для пути отправки и приема. Some network adapters require offload features to be independently enabled for send and receive paths.
Включение масштабирования на стороне приема (RSS) для веб-серверов Enabling Receive Side Scaling (RSS) for Web Servers
RSS способно повысить веб-масштабируемость и производительность, когда число сетевых адаптеров меньше количества логических процессоров на сервере. RSS can improve web scalability and performance when there are fewer network adapters than logical processors on the server. Когда весь веб-трафик проходит через сетевые адаптеры с поддержкой RSS, входящие веб-запросы из разных соединений могут одновременно обрабатываться разными ЦП. When all the web traffic is going through the RSS-capable network adapters, incoming web requests from different connections can be simultaneously processed across different CPUs.
Важно отметить, что из-за логики в протоколе (RSS и HTTP) для распределения нагрузки производительность может быть значительно снижена, если сетевой адаптер, не поддерживающий RSS, принимает веб-трафик на сервере, который имеет один или другие сетевые адаптеры с поддержкой RSS. It is important to note that due to the logic in RSS and Hypertext Transfer Protocol (HTTP) for load distribution, performance might be severely degraded if a non-RSS-capable network adapter accepts web traffic on a server that has one or more RSS-capable network adapters. В этом случае необходимо использовать сетевые адаптеры, поддерживающие RSS, или отключить RSS на вкладке Дополнительные свойства в свойствах сетевого адаптера. Чтобы определить, поддерживает ли сетевой адаптер RSS, можно просмотреть сведения RSS на вкладке Дополнительные свойства в свойствах сетевого адаптера. In this circumstance, you should use RSS-capable network adapters or disable RSS on the network adapter properties Advanced Properties tab. To determine whether a network adapter is RSS-capable, you can view the RSS information on the network adapter properties Advanced Properties tab.
Профили RSS и очереди RSS RSS Profiles and RSS Queues
Стандартный профиль RSS по умолчанию — NUMA static, который изменяет поведение по умолчанию из предыдущих версий операционной системы. The default RSS predefined profile is NUMA Static, which changes the default behavior from previous versions of the operating system. Чтобы приступить к работе с профилями RSS, можно ознакомиться с доступными профилями, чтобы понять, когда они будут полезны и как их можно применять к своей сети или оборудованию. To get started with RSS Profiles, you can review the available profiles to understand when they are beneficial and how they apply to your network environment and hardware.
Например, откройте диспетчер задач и просмотрите логические процессоры на сервере. Если они недостаточно загружены приемом трафика, можно попробовать увеличить число очередей RSS со значения 2 (по умолчанию) до максимального, которое поддерживается сетевым адаптером. For example, if you open Task Manager and review the logical processors on your server, and they seem to be underutilized for receive traffic, you can try increasing the number of RSS queues from the default of 2 to the maximum that is supported by your network adapter. В используемом сетевом адаптере могут быть параметры для изменения числа очередей RSS в драйвере. Your network adapter might have options to change the number of RSS queues as part of the driver.
Увеличение ресурсов сетевого адаптера Increasing Network Adapter Resources
Для сетевых адаптеров, которые позволяют вручную настраивать ресурсы, например буферы приема и передачи, следует увеличить выделение ресурсов. For network adapters that allow manual configuration of resources, such as receive and send buffers, you should increase the allocated resources.
В некоторых сетевых адаптерах устанавливаются небольшие буферы приема для экономии выделенной памяти от узла. Some network adapters set their receive buffers low to conserve allocated memory from the host. Это ведет к потере пакетов и снижению производительности. The low value results in dropped packets and decreased performance. Поэтому для сценариев с интенсивным приемом рекомендуется увеличить буфер приема до максимума. Therefore, for receive-intensive scenarios, we recommend that you increase the receive buffer value to the maximum.
Если сетевой адаптер не позволяет настраивать ресурсы вручную, он либо настраивает их динамически, либо параметры ресурсов являются фиксированными. If a network adapter does not expose manual resource configuration, it either dynamically configures the resources, or the resources are set to a fixed value that cannot be changed.
Включение управления прерываниями Enabling Interrupt Moderation
Для прерываний в некоторых сетевых адаптерах предлагаются различные уровни управления прерываниями, параметры объединения буферов (иногда отдельно для буфера приема и передачи) или оба варианта. To control interrupt moderation, some network adapters expose different interrupt moderation levels, buffer coalescing parameters (sometimes separately for send and receive buffers), or both.
Управление прерываниями имеет смысл применять для рабочих нагрузок, связанных с ЦП, также следует учитывать баланс между экономией процессорных ресурсов узла и задержкой и увеличением экономии процессорных ресурсов узла за счет большего числа прерываний и снижения задержки. You should consider interrupt moderation for CPU-bound workloads, and consider the trade-off between the host CPU savings and latency versus the increased host CPU savings because of more interrupts and less latency. Если сетевой адаптер не ведет управление прерываниями, но позволяет объединять буферы, то увеличение числа объединенных буферов для приема и передачи повышает общую производительность. If the network adapter does not perform interrupt moderation, but it does expose buffer coalescing, increasing the number of coalesced buffers allows more buffers per send or receive, which improves performance.
Настройка производительности для обработки пакетов с низкой задержкой Performance Tuning for Low Latency Packet Processing
Многие сетевые адаптеры позволяют настраивать параметры для оптимизации системной задержки. Many network adapters provide options to optimize operating system-induced latency. Задержка — это время между обработкой входящего пакета сетевым драйвером и отправкой этого пакета обратно. Latency is the elapsed time between the network driver processing an incoming packet and the network driver sending the packet back. Обычно это время измеряется в микросекундах. This time is usually measured in microseconds. Для сравнения, время передачи для передачи пакетов на больших расстояниях обычно измеряется в миллисекундах (в порядке увеличения.) For comparison, the transmission time for packet transmissions over long distances is usually measured in milliseconds (an order of magnitude larger). Эта настройка не сокращает время прохождения пакета. This tuning will not reduce the time a packet spends in transit.
Ниже приведены некоторые советы по настройке производительности для загруженных сетей, в которых на счету каждая микросекунда. Following are some performance tuning suggestions for microsecond-sensitive networks.
В BIOS компьютера установите значение High Performance (Высокая производительность) и отключите C-состояния. Set the computer BIOS to High Performance, with C-states disabled. Однако имейте в виду, что это зависит от системы и BIOS, и некоторые системы обеспечивают большую производительность, если операционная система управляет электропитанием. However, note that this is system and BIOS dependent, and some systems will provide higher performance if the operating system controls power management. Проверить и настроить параметры управления питанием можно на странице Параметры или с помощью команды powercfg . You can check and adjust your power management settings from Settings or by using the powercfg command. Дополнительные сведения см. в разделе Параметры командной строки Powercfg . For more information, see Powercfg Command-Line Options
Установите в операционной системе профиль управления электропитанием Высокая производительность. Set the operating system power management profile to High Performance System. Имейте в виду, что он не будет работать надлежащим образом, если в BIOS компьютера отключен контроль операционной системы над управлением электропитанием. Note that this will not work properly if the system BIOS has been set to disable operating system control of power management.
Включите статические разгрузки, например контрольные суммы UDP, контрольные суммы TCP и разгрузки большой отправки (LSO). Enable Static Offloads, for example, UDP Checksums, TCP Checksums, and Send Large Offload (LSO).
Включите RSS, если трафик передается несколькими потоками, например при масштабной многоадресной рассылке. Enable RSS if the traffic is multi-streamed, such as high-volume multicast receive.
Отключите Управление прерываниями в драйверах сетевых адаптеров, которым требуется самая низкая задержка. Disable the Interrupt Moderation setting for network card drivers that require the lowest possible latency. Помните, что оно может привести к увеличению загрузки процессора, таким образом это решение является компромиссом. Remember, this can use more CPU time and it represents a tradeoff.
Обрабатывайте прерывания сетевого адаптера и DPC на основном процессоре, который совместно использует процессорный кэш с ядром, которое используется программой (пользовательским потоком), обрабатывающей пакет. Handle network adapter interrupts and DPCs on a core processor that shares CPU cache with the core that is being used by the program (user thread) that is handling the packet. Для передачи процесса конкретным логическим процессорам можно использовать настройку фиксации ЦП вместе с настройкой RSS. CPU affinity tuning can be used to direct a process to certain logical processors in conjunction with RSS configuration to accomplish this. Использование одного ядра для прерываний, DPC и пользовательского потока ведет к снижению производительности из-за увеличения нагрузки, поскольку ISR, DPC и поток будут конкурировать за ядро. Using the same core for the interrupt, DPC, and user mode thread exhibits worse performance as load increases because the ISR, DPC, and thread contend for the use of the core.
Прерывания управления системой System Management Interrupts
(Многие аппаратные системы используют прерывания SMI) для различных функций обслуживания, включая отчеты об ошибках кода (коррекции ошибок ECC) , устаревшие совместимость с USB, Вентилятор Управление питанием и управляемой BIOS. Many hardware systems use System Management Interrupts (SMI) for a variety of maintenance functions, including reporting of error correction code (ECC) memory errors, legacy USB compatibility, fan control, and BIOS controlled power management.
Прерывание SMI имеет наивысший приоритет в системе и переводит ЦП в режим управления, который блокирует все другие действия, пока выполняется процедура служебного прерывания, обычно находящаяся в BIOS. The SMI is the highest priority interrupt on the system and places the CPU in a management mode, which preempts all other activity while it runs an interrupt service routine, typically contained in BIOS.
К сожалению, это может приводить к скачкообразному росту задержки до 100 микросекунд и выше. Unfortunately, this can result in latency spikes of 100 microseconds or more.
Когда необходимо обеспечить минимальную задержку, следует запросить у поставщика оборудования версию BIOS, в которой прерывания SMI имеют наименьший возможный приоритет. If you need to achieve the lowest latency, you should request a BIOS version from your hardware provider that reduces SMIs to the lowest degree possible. Обычно их называют "BIOS низкой задержки" или "BIOS без SMI". These are frequently referred to as “low latency BIOS” or “SMI free BIOS.” В некоторых случаях аппаратная платформа не может полностью устранить операции SMI, поскольку они используются для управления важными функциями (например для вентиляторов). In some cases, it is not possible for a hardware platform to eliminate SMI activity altogether because it is used to control essential functions (for example, cooling fans).
Операционная система не имеет контроля над SMI, потому что логический процессор работает в особом служебном режиме, который блокирует вмешательство операционной системы. The operating system can exert no control over SMIs because the logical processor is running in a special maintenance mode, which prevents operating system intervention.
Настройку производительности TCP можно проводить с помощью следующих элементов. You can performance tune TCP using the following items.
Автоматическая настройка окна приема TCP TCP Receive Window Auto-Tuning
До выхода Windows Server 2008 в сетевом стеке использовалось окно приема фиксированного размера (65 535 байт), которое ограничивает общую возможную пропускную способность для подключений. Prior to Windows Server 2008, the network stack used a fixed-size receive-side window (65,535 bytes) that limited the overall potential throughput for connections. Одним из самых существенных изменений в реализации стека TCP стало появление автонастройки окна получения TCP. One of the most significant changes to the TCP stack is TCP receive window auto-tuning.
При использовании окна приема TCP фиксированного размера можно вычислить общую пропускную способность отдельного соединения: You can calculate the total throughput of a single connection when you use a fixed size TCP receive window as:
Общая пропускная способность в байтах = размер окна приема TCP * в байтах (1/задержка подключения в секундах)Total achievable throughput in bytes = TCP receive window size in bytes * (1 / connection latency in seconds)
Например, общая доступная пропускная способность составляет всего 51 Мбит/с при подключении с 10 (МС по разумному значению для большой корпоративной)сетевой инфраструктуры. For example, the total achievable throughput is only 51 Mbps on a connection with 10 ms latency (a reasonable value for a large corporate network infrastructure).
Однако при автонастройке окно получения регулируется и может вырастать в соответствии с требованиями отправителя. With auto-tuning, however, the receive-side window is adjustable, and it can grow to meet the demands of the sender. Подключение может обеспечить полную скорость линии для подключения 1 Гбит/с. It is possible for a connection to achieve a full line rate of a 1 Gbps connection. Сценарии использования сети, которые в прошлом могли быть ограничены общей достижимой пропускной способностью TCP-соединений, теперь могут использовать сеть в полной мере. Network usage scenarios that might have been limited in the past by the total achievable throughput of TCP connections can now fully use the network.
Следующие параметры реестра из Windows Server 2003 больше не поддерживаются и не учитываются в более поздних версиях. The following registry settings from Windows Server 2003 are no longer supported, and are ignored in later versions.
Все эти параметры имеют следующее расположение реестра: All of these settings had the following registry location:
Платформа фильтрации Windows Windows Filtering Platform
Платформа фильтрации Windows (WFP), появившаяся в Windows Vista и Windows Server 2008, предоставляет API независимым поставщикам программного обеспечения (ISV) для создания фильтров обработки пакетов. The Windows Filtering Platform (WFP) that was introduced in Windows Vista and Windows Server 2008 provides APIs to non-Microsoft independent software vendors (ISVs) to create packet processing filters. Например, для брандмауэров и антивирусного ПО. Examples include firewall and antivirus software.
Плохо написанный фильтр WFP может значительно снизить производительность сети сервера. A poorly written WFP filter can significantly decrease a server’s networking performance. Дополнительные сведения см. в разделе Перенос драйверов и приложений для обработки пакетов в WFP в центре разработки для Windows. For more information, see Porting Packet-Processing Drivers and Apps to WFP in the Windows Dev Center.
Ссылки на все разделы данного руководства см. в разделе Настройка производительности сетевой подсистемы. For links to all topics in this guide, see Network Subsystem Performance Tuning.
Содержание статьи
Win2k3 и Win2k8 по умолчанию оптимизированы под стандартную сетевую среду. Но если серверную ОС надлежащим образом настроить (например, под требования компании), то это благоприятно отразится на каждом аспекте работы сети, начиная от самого оборудования и заканчивая пользователями, подключенными к серверу.
Анализируем причину
Любая внештатная ситуация, в том числе и снижение производительности сервера, требует тщательного анализа. Не собрав всей информации, можно нагородить дел. Возьмем такой случай. Контроллер домена (КД) уже не справляется со своими обязанностями — пользователи подолгу регистрируются в системе или не могут зайти в сетевую папку. В зависимости от топологии Сети, вариантов решения может быть несколько.
Например, можно модернизировать железо, перераспределить нагрузку между серверами (в том случае, когда КД выполняет еще и другую задачу) или же снизить нагрузку на основной КД за счет установки еще одного КД в отдельном подразделении компании. При использовании Win2k8 в удаленном офисе есть вариант установить контроллер домена только для чтения (RODC). Тогда в случае компрометации сервера или банальной кражи оборудования можно не бояться за нарушение функционирования всего леса (подробности смотри в статье «В лабиринте AD»). Так мы разгрузим основной КД и снизим нагрузку на Сеть (в том числе и на внешний канал, если для соединения между офисами используется интернет).
Узкие места могут возникать по нескольким причинам:
системные ресурсы сервера или сети исчерпали свои возможности — как правило, требуется наращивание или модернизация;
отдельные системы или участки сети нагружены неравномерно — требуется перераспределение ресурсов;
ресурс используется в монопольном режиме — возможно, потребуется замена программы на аналог, запуск ее только по требованию или в периоды низкой загрузки;
неправильная настройка — необходимо изменение параметров.
Теперь разберем некоторые моменты подробнее.
Ищем бутылочное горлышко
Производительность систем и сервисов, то есть время, за которое они выполняют некоторую задачу, зависит от ресурсов процессора и памяти, емкости и производительности дисковых накопителей и пропускной способности сети. Все они имеют свой лимит. При превышении запаса прочности одного из ресурсов производительность начинает резко снижаться, образуя узкое место. Как результат, общая производительность сервера определяется именно этим ресурсом, хотя остальное в норме.
В новой Win2k8 и Win2k3, которая еще долго будет верой и правдой служить на серверах, системы мониторинга несколько отличаются, но не настолько, чтобы не разобраться при смене системы. Диспетчер задач, вызываемый по (в Win2k8 нужно будет выбрать в меню еще и Start Task Manager) или , позволяет во вкладке Performance увидеть состояние основных системных ресурсов (CPU, ОЗУ) и Сети (во вкладке Networking). В обеих системах можно оценить вклад отдельного процесса в общую потерю производительности. Если информации недостаточно, добавляем счетчики производительности. Для этого достаточно перейти во вкладку «Processes» и выбрать в меню View — Select Columns, после чего установить флажки напротив нужных пунктов. По умолчанию активировано всего два счетчика: CPU Usage (загрузка ЦП) и Memory — Private Working Set (Memory Usage в Win2k3, Использование памяти). Названия некоторых счетчиков в системах отличаются, но разобраться несложно.
В Win2k3 для наблюдения за производительностью системы в штатную поставку входит «Монитор Производительности» (вызывается через Старт — Администрирование — Производительность, perfmon.msc), который выводит показания активных счетчиков в виде графиков, диаграмм или таблиц. Ведется история событий, помогающая отследить все изменения. При достижении порогового значения можно, например, отправить сообщение админу — в общем, выполнить действие. Подробности о «Мониторе Производительности» и основных счетчиках смотри в статье «Поставь сервер на счетчик», опубликованной в X_11_2007.
На сайте Microsoft для Win2k3 доступно еще одно эффективное, хотя и малоизвестное средство анализа производительности — Server Performance Advisor V2.0 (SPA). С помощью этой утилиты можно собрать информацию о настройках, данные со счетчиков с одного или нескольких серверов, отслеживать события (Event Tracing). По результатам работы получим удобные для чтения и анализа отчеты о производительности, содержащие предупреждения и рекомендации по устранению неполадок. В SPA имеется более 90 предварительно настроенных групп коллекторов. Причем самые востребованные уже настроены! Например, коллектор System Overview содержит основные системные счетчики: CPU usage, Memory usage, занятые файлы и TCP-клиенты, top-потребители CPU, а также счетчики для основных серверов — контроллеров домена, файловых служб AD, IIS, DNS, Terminal Services, SQL и др.
В Win2k8 контроль за основными параметрами системы возложен на Reliability and Performance Monitor (RPM), который вобрал в себя функции отдельных приложений, доступных в Win2k3. Запустить его можно несколькими способами: из меню Administrative Tools, нажатием клавиши Resource Monitor во вкладке Performance в Task Manager, выбрав пункт в меню Diagnostic в Server Manager или введя в консоли perfmon.exe. В главном окне RPM увидим четыре графика, выводящие информацию о загрузке CPU, Disk, Memory и Network в реальном времени. Чуть ниже расположены таблицы с подробной информацией, разбитой по этим же группам. В каждой показан процесс и связанные с ним данные (PID, объем ОЗУ, загрузка CPU, Response Time дисковых операций, количество переданных и принятых сетевых пакетов и прочее).
Зачастую достаточно одного взгляда на графики и таблицу, чтобы оценить обстановку и принять решение. Но и это еще не все. «Монитор Производительности» находится в меню Performance Monitor. По умолчанию активирован только один счетчик Processor Time, но достаточно выбрать в контекстном меню Add Counter, как откроется одноименное окно, в котором можно выбрать нужный счетчик. Полный список охватывает все параметры системы и сервисов. Следующее меню, хотя и не связано с оценкой производительности, — тем не менее, очень полезно при поиске неисправностей. Речь идет о Reliability Monitor («Монитор Надежности»). Справа от графика выводится индекс ожидания появления проблемы System Stability Index («Системный Индекс Устойчивости»). График Stability Index помогает быстро найти дату, когда было замечено первое появление проблемы (уменьшился System Stability Index). В поле System Stability Report показаны детали возникшей проблемы.
Два меню Data Collector Sets и Reports выступают в роли удобного аналога SPA. Так, в первом из них содержатся шаблоны коллекторов, которые могут быть использованы с любой программой, предназначенной для сбора данных. Выполнив, например, LAN Diagnostics или System Performance (то есть любой коллектор или группу), в соответствующем подменю в Reports получим полный отчет.
Тюнинг системы
Информация собрана, а значит, пора принимать решение. Чтобы добиться увеличения производительности, можно изменить алгоритм работы буксующей подсистемы, модифицировав соответствующий системный параметр. Признаю, это временная мера, которая не всегда улучшает ситуацию. Но при правильном подходе она позволит серверу продержаться на должном уровне еще несколько месяцев, пока начальство не раскошелится на новое оборудование.
Перед внесением изменений сформулируем для себя несколько правил:
одновременно вносим не более одного изменения, даже если узкое место требует настройки нескольких параметров. Так легче будет сделать откат в случае неудачи. Следующее изменение производим, только убедившись, что идем правильным путем. Внесение сразу нескольких настроек делает невозможным определение результата для каждого конкретного параметра;
после каждого изменения повторяем наблюдение в течение некоторого времени, достаточного для сбора статистической информации;
так как изменения могут повлиять на другие ресурсы, сохраняем подробную информацию об изменениях и результатах наблюдений за производительностью.
Среди советов встречаются такие, как отключение «лишних» сервисов и проверка запланированных заданий, но в Win2k8 изначально запущено только то, что действительно нужно. Поэтому эти советы больше актуальны для ранних версий Windows.
Оптимизация сети
Сетевая подсистема в Win2k3/Win2k8 (как, впрочем, и в любой другой ОС) является многоуровневой. Глубокий тюнинг следует производить на каждом уровне, начиная от драйвера и NDIS (спецификация интерфейса сетевых драйверов) и заканчивая уровнем приложений. Начнем «снизу».
Вызываем свойства адаптера и изучаем активные протоколы. Любой протокол генерирует некоторый трафик, поэтому даже в небольшой сети путешествует гораздо больше пакетов, чем нужно для ее нормального функционирования. Например, адаптеру, который смотрит в интернет, часто ни к чему NetBEUI (да и с точки зрения безопасности, это минус). Поэтому отключаем все лишнее, в том числе и IPv6 (в нашей стране пока необходимости в нем нет). Параллельно включаем снифер и отлавливаем «лишние» пакеты, определяя их источник. Если расположить более быстрый или часто используемый протокол в начале списка, то это позволит увеличить производительность.
Локальные файлы HOSTS (для TCP/IP) и LMHOSTS (NetBEUI), хранящие адреса и имена систем, помогают уменьшить количество запросов на разрешение имен. Эти настройки можно произвести как вручную, так и зайдя в свойства TCP/IP в настройках сетевой карты, и затем выбрав Advanced. Распространять изменения в этих файлах можно в небольших сетях вручную, а в AD — при помощи политик. Присутствие DNS- и WINS-серверов также способно уменьшить количество лишних задержек.
Кстати, новая концепция ролей в Win2k8 приносит свои плоды: в настройках Сети после установки системы ничего лишнего не включено, а новые алгоритмы настройки и оптимизации требуют меньше телодвижений со стороны администратора. Например, автоматическая настройка TCP Receive Window Auto-Tuning динамически изменяет размер принимающего буфера TCP, используемого для хранения входящих данных, тем самым повышая пропускную способность, скажем, при передаче больших файлов на высокоскоростных каналах (поэтому ключ реестра TcpWindowSize в Win2k8 игнорируется). Средство Compound TCP (CTCP) увеличивает количество одновременно отправляемых данных — ну, и так далее. Впрочем, кое-что нам оставили и для ручной настройки.
Нажав кнопку Configure в свойствах адаптера, получаем во вкладке Advanced доступ к ряду настроек (их количество зависит от конкретного адаптера). Например, для файлового и FTP сервера рекомендуется задействовать следующие опции: IPv4, TCP и UDP Checksum offload, Segmentation offload и TCP offload engine (TOE). Поддержка последнего включается следующим образом:
> netsh int tcp set global chimney = enabled
Для веб-сервера и сервера базы данных желательно активировать еще и Receive-side scaling (RSS). Но если сетевой адаптер не справляется с нагрузкой, — наоборот, пробуем по одному отключать все offload настройки. В Link Speed & Duplex указывается режим работы адаптера (по умолчанию он выбирается автоматически), а в Transmit/Receive Buffers — буфер приема и передачи. В целях экономии ресурсов размер буфера по дефолту установлен в минимальное или среднее значение. При больших нагрузках это чревато потерями пакетов. Если адаптер позволяет вручную изменить размер буфера, то увеличиваем, не задумываясь.
Параметр Interrupt Moderation по умолчанию установлен в Adaptive. Проигравшись с настройками, можно попробовать выбрать приемлемый результат между производительностью Сети и нагрузкой на CPU. Если на сервере несколько CPU и сетевых карт, то возможна привязка CPU к сетевому адаптеру. Это положительно скажется на производительности Сети и системы за счет уменьшения количества «лишних» прерываний. Конечно, это не все, что может сделать админ для разгрузки Сети. Например, для настройки драйвера http.sys, который используется IIS, есть целая ветка реестра:
Что-то можно сделать и на прикладном уровне. Например, в ISA Server реализована функция сжатия данных, передаваемых по протоколу HTTP. Правда, за меньший трафик придется платить большей нагрузкой на CPU. В медленных сетях пропускная способность повышается на 30%. Также уменьшается задержка при передаче информации, хотя нагрузка на процессор не увеличивается более чем на 20%. Для разгрузки сервера терминалов в Computer Configuration — Administrative Templates — Windows Components — Terminal Services — Terminal Server можно уменьшить глубину цвета и размер рабочего стола, установить сжатие RDP, отключить обои и т.д.
Дисковая подсистема
Часто именно дисковая подсистема служит основной причиной потери производительности. Она ограничена числом физических обращений к диску в секунду (зависит от скорости вращения диска и от того, насколько случайный характер имеют операции обращения). Самым простым методом сокращения частоты обращения к диску будет установка дополнительных дисков или использование RAID.
Кое-что можно сделать и самому. По умолчанию файл подкачки равен 1.5 объема ОЗУ и расположен на системном диске. Последний обычно сильно загружен, к тому же подвержен фрагментации. Поэтому, если имеется несколько дисков, создаем файл подкачки на каждом. Для этого в Control Panel System выбираем Advanced System Setting и получаем знакомое окно System Properties («Свойства системы»). Нажимаем во вкладке Advanced в поле Performance кнопку Setting, снова щелкаем Advanced, а затем кнопку Change. В появившемся окне снимаем флажок «Automatically manage paging file for all driver» и указываем, на каких дисках и разделах следует создать файл подкачки. При этом следует помнить, что использование нескольких разделов одного диска для файла подкачки, мягко говоря, нецелесообразно. Своп лучше размещать на разделах с меньшей буквой, на которых, как правило, скорость повыше.
По умолчанию Windows записывает данные блоками по 64 Кб, но жесткие диски и приложения могут использовать блоки других размеров. Данные в этом случае придется записывать на несколько секторов, что снижает производительность. В состав Win2k8 и Win2k3 SP1 входит программа Diskpart, предназначенная для создания разделов диска. С ее помощью можно задать другое смещение. Пользоваться программой просто. Для запуска в командной строке набираем diskpart.exe. Далее командой «List Disk» выводим список дисков, выбираем нужный диск — «Select Disk 1», создаем раздел «Create Partition Primary Align=64» и присваиваем ему букву («Assign Letter=D»). Помни, что Diskpart уничтожает данные, поэтому предварительно создай резервную копию!
Также стоит отключить индексацию файлов для (якобы) быстрого поиска и компрессию диска (если взведен флажок «Compress this drive to save disk space»). И, конечно же, не забываем о периодической дефрагментации (Свойства диска — Tools — Defragment Now). В подменю Shadow Copies находятся настройки теневых копий. Если резервирование производится другими средствами, то для повышения производительности их можно отключить или изменить алгоритм работы.
Не помешает знать и о некоторых параметрах реестра (они подходят и для Win2k3). Так, параметр NumberOfRequests, зависимый от драйвера сетевой карты, позволяет задать количество запросов, ускоряя работу за счет распараллеливания. Драйвер сам устанавливает оптимальное значение, но рекомендуется установить его в диапазоне от 32 до 96.
Установка в 0 ключа CountOperations позволит отключить некоторые счетчики, что также повлияет на производительность в лучшую сторону:
Чтобы запретить обновление даты последнего обращения к файлу, устанавливаем в 1 (REG_DWORD) ключ:
Это только основные параметры. А подробную информацию по настройке дисковой подсистемы можно найти в документе «Disk Subsystem Performance Analysis for Windows» на сайте Microsoft.
Точность хирурга
Повышение производительности сервера — это сугубо индивидуальная операция, которую нужно производить с точностью хирурга, контролируя каждый этап. Но ничего сложного здесь нет! Потратив некоторое время, ты неизменно получишь результат. А какой именно, — зависит только от тебя.