한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Анатомия игровых лагов › L2 ОС и устройство клиента

Энергосбережение NIC и проблемы драйверов NIC power saving, driver bugs

ID причины co-driver · Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента

Открыть карточку в основной версии с иллюстрациями и экспериментами →

Если сетевая карта или модуль Wi-Fi уходят в энергосбережение между пакетами, на пробуждение нужно время.

Почему Включено энергосбережение сетевого адаптера, или драйвер устарел → Следствие Задержка выхода из энергосбережения (wake-up), иногда перезапуск устройства → На экране Нерегулярные задержки, изредка фриз на несколько секунд

Симптомы
Микрофризы, Фриз
Факторы
Джиттер, Потери
У кого
Только у меня
Когда
После бездействия, Изредка, случайно
Ответственные
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента
Команда разработки: задачи
В клиенте для Android во время игры запрашивать режим Wi-Fi с низкой задержкой (WIFI_MODE_FULL_LOW_LATENCY), чтобы отключить энергосбережение Wi-Fi.
Внешние стороны: задачи
Посоветовать игрокам обновить сетевой драйвер и отключить энергосбережение сетевого адаптера в Диспетчере устройств, а если весь экран дёргается и звук хрипит, найти виновный драйвер с помощью LatencyMon.
На графике
Случайные всплески · время DPC и ISR, RTT до роутера
Где смотреть
Записать трассу в Windows Performance Recorder (WPR), найти на графике DPC/ISR в Windows Performance Analyzer (WPA) драйверы с долгим выполнением (столбец Module) и проверить в Диспетчере устройств настройки управления электропитанием сетевого адаптера
Подтверждает
В моменты рывков DPC и ISR сетевого драйвера длятся по несколько ms, или после отключения энергосбережения нерегулярные задержки пропадают
Опровергает
Если DPC короткие, а с отключённым энергосбережением ничего не меняется, это «Помехи и слабый сигнал Wi-Fi» или «Фоновое сканирование Wi-Fi»
Чем проверить
Проверка на стороне игрока
Подробнее
Если драйвер долго занимает CPU обработкой прерываний (в Windows это называют задержкой DPC), игровой поток всё это время тоже не может использовать ядро. Тогда при низкой загрузке CPU весь экран дёргается, а звук хрипит. Найти виновный драйвер помогают инструменты вроде LatencyMon, и чаще всего это драйверы Wi-Fi или сетевой карты.

Источники

  1. Introduction to NDIS Selective Suspend Microsoft
    Windows может переводить простаивающий сетевой адаптер в состояние пониженного энергопотребления (выборочная приостановка)
  2. Guidelines for Writing DPC Routines Microsoft
    Пока выполняется DPC, все потоки на этом ядре стоят, поэтому рекомендуется не превышать 100 µs за раз
  3. Wi-Fi low-latency mode Android (Google)
    В режиме Wi-Fi с низкой задержкой фреймворк Android явно отключает энергосбережение Wi-Fi
  4. CPU Analysis Microsoft
    График DPC/ISR в WPA: длительность каждого непрерывного выполнения DPC или ISR и модуль (Module), в котором находится эта функция

Смотрите также

Тот же слой: L2 ОС и устройство клиента

Причины с тем же симптомом (Микрофризы) на других слоях

Карточка в основной версии с иллюстрациями и экспериментами