Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

DPC Latency ndis.sys Windows Server, AD и Роли

Высокие задержки DPC Latency в ndis.sys: оптимизация сетевого стека

Обновлено: 28.08.2026 · Официальная документация ↗

Симптомы высоких задержек DPC в драйвере ndis.sys

На высоконагруженных сетевых серверах (Hyper-V хосты, шлюзы, веб-серверы) наблюдаются микрофризы, падение пропускной способности сети и неравномерное распределение нагрузки между ядрами CPU (одно ядро загружено на 100%, остальные простаивают). Утилиты анализа задержек (LatencyMon, DPC Latency Checker) фиксируют задержки свыше 2000–5000 мкс в модуле ndis.sys и tcpip.sys.

СимптомЛокацияПричина
LatencyMon: ndis.sys > 2000 µsЯдро NDISВсе входящие сетевые пакеты обрабатываются на одном ядре CPU (CPU0)
Потеря сетевых пакетов (Packet Drops)Сетевой адаптерПереполнение кольцевого буфера RX/TX (Ring Buffer) сетевой карты
Низкая скорость при 10/25/40GbEСетевой стек WindowsОтключена технология Receive Side Scaling (RSS) или Virtual Machine Queues (VMQ)

Пошаговая оптимизация задержек NDIS и сетевых прерываний

  1. Включите и оптимизируйте технологию масштабирования на стороне приема (RSS): распределите сетевые прерывания по разным ядрам процессора:
    Enable-NetAdapterRss -Name "*"; Set-NetAdapterRss -Name "Ethernet1" -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessorNumber 16 -NumberOfReceiveQueues 8 -Profile NUMAScaling
  2. Увеличьте размеры очередей приема и передачи (Rx/Tx Buffers) сетевой карты:
    Set-NetAdapterAdvancedProperty -Name "Ethernet1" -DisplayName "*Receive Buffers*" -RegistryValue 2048; Set-NetAdapterAdvancedProperty -Name "Ethernet1" -DisplayName "*Transmit Buffers*" -RegistryValue 2048
  3. Отключите объединение прерываний (Interrupt Moderation) при требованиях к ультра-низким задержкам:
    Set-NetAdapterAdvancedProperty -Name "Ethernet1" -DisplayName "*Interrupt Moderation*" -RegistryValue 0
  4. Проверьте текущее распределение прерываний по процессорам:
    Get-NetAdapterRss | Format-List Name, Enabled, Profile, BaseProcessorNumber, MaxProcessorNumber

Важно: Не назначайте BaseProcessorNumber = 0 на серверах с высокой нагрузкой, так как ядро CPU0 уже занято системными задачами операционной системы.

💡 Практика специалистов: Для сетевых карт 10G/25G (Mellanox, Intel X520/X710) обязательно задавайте правильный профиль RSS = NUMAScaling. По умолчанию Windows использует профиль Closest, что при росте трафика вызывает перегрузку одного NUMA-узла.

Частые вопросы (FAQ)

Что такое драйвер ndis.sys?

NDIS (Network Driver Interface Specification) — это системный драйвер ядра Windows, являющийся мостом между сетевыми протоколами (TCP/IP) и драйверами физических сетевых карт.

Чем отличаются прерывания ISR от DPC?

ISR (Interrupt Service Routine) — это быстрый аппаратный сигнал процессору о событии. DPC (Deferred Procedure Call) — отложенная процедура для длительной обработки переданных данных.

Как профиль NUMAScaling помогает снизить DPC задержки?

Профиль NUMAScaling гарантирует, что обработка сетевых пакетов происходит на том же сокете CPU (NUMA-ноде), к которому аппаратно подключена сетевая карта через шину PCI-E.

Может ли включенный VMQ вызывать задержки на 1Gbps картах?

Да, на медленных гигабитных контроллерах драйверная реализация VMQ часто содержит баги. На адаптерах 1Gbps рекомендуется отключать VMQ.

Полезные материалы
Рекомендуем