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

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

Фоновые процессы занимают CPU Background CPU contention

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

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

Когда ядра заняты антивирусной проверкой, обновлением Windows, программой для стримов или видео в браузере, игровой поток не получает процессорного времени и ждёт.

Почему Другие программы надолго занимают ядра CPU → Следствие Игровой поток ждёт, пока планировщик выделит ему ядро → На экране Кадры запаздывают, обработка полученных пакетов тоже

Симптомы
Микрофризы, Перемотка
Факторы
Остановка
У кого
Только у меня
Когда
Изредка, случайно, С постоянным периодом
Ответственные
Основной ответственный Внешние стороны · Внешние стороны · Совместно Команда разработки · Разработка клиента
Команда разработки: задачи
Настроить приоритет игровых потоков, писать в лог, снятый в момент микрофризов, общую загрузку CPU на ПК, чтобы отличать случаи, когда виноваты другие программы.
Внешние стороны: задачи
Посоветовать игрокам включить игровой режим Windows и закрывать во время игры ненужные программы (антивирусную проверку, обновление Windows, программу для стримов, видео в браузере).
Цифры для ориентира
Windows обычно выделяет потоку ядро на срок от единиц до десятков ms за раз. Если планировщик хотя бы раз отложит игровой поток, кадр потерян.
На графике
Случайные всплески · общая загрузка CPU на ПК, время кадра
Где смотреть
Смотреть столбец «ЦП» на вкладке «Процессы» Диспетчера задач и записывать счётчик Processor Information(_Total)\% Processor Time в Системном мониторе вместе со временем кадра в PresentMon. Если подозревается антивирус, записать трассу командой New-MpPerformanceRecording и посмотреть в Get-MpPerformanceReport файлы и процессы с самым долгим сканированием
Подтверждает
В моменты микрофризов подскакивает загрузка CPU другими программами (антивирусная проверка, обновление, программа для стримов), или файлы из папки игры оказываются в начале списка по времени сканирования. Если закрыть эту программу или добавить игру в исключения, проблема пропадает
Опровергает
Если загрузка CPU низкая, а весь экран дёргается и звук хрипит, это «Энергосбережение NIC и проблемы драйверов» (задержки DPC)
Чем проверить
Проверка на стороне игрока
Подробнее
Windows даёт программе в активном окне (на переднем плане) чуть более высокий приоритет, но если задач больше, чем ядер, ждёт и игра. Антивирус чаще мешает через «защиту в реальном времени», чем нагрузкой на CPU. Он проверяет файл каждый раз, когда игра его открывает, и остановки при чтении ассетов становятся длиннее.

Источники

  1. Multitasking Microsoft
    Windows выделяет каждому потоку квант времени и по его окончании переключается на следующий поток, квант около 20 ms (зависит от ОС и CPU)
  2. Priority Boosts Microsoft
    Процессу активного окна (переднего плана) приоритет поднимается как минимум до уровня фоновых процессов
  3. About regular quick and full scans with Microsoft Defender Antivirus Microsoft
    Защита в реальном времени проверяет файлы при каждом открытии и закрытии, а также при каждом открытии папки
  4. Network-Related Performance Counters Microsoft
    Счётчик Processor Information: % Processor Time
  5. Performance analyzer for Microsoft Defender Antivirus Microsoft
    Запись через New-MpPerformanceRecording, затем Get-MpPerformanceReport показывает файлы, пути и процессы, которые сильнее всего влияют на время сканирования
  6. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Запись времени каждого кадра через FrameTime (время CPU между кадрами)

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

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

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

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