Когда ночной бэкап, сжатие логов или проверка безопасности занимают диск целиком, чтение и запись игрового сервера застревают.
Почему Запускается плановый бэкап или сжатие → Следствие Задание забирает большую часть пропускной способности диска и IOPS → На экране Лаги каждый день в одно и то же время
Основной ответственный Команда инфраструктуры · Серверная инфраструктура · Совместно Команда инфраструктуры · Инфраструктура БД
Команда инфраструктуры: задачи
Серверы и ОС: понизить приоритет ввода-вывода для бэкапа, сжатия и сканирования, разнести их по времени. Серверы БД: делать бэкап с реплики.
На графике
Всплески с постоянным периодом · утилизация диска, время ожидания диска
Где смотреть
Через sar -d наложить по дням %util, await и aqu-sz из записей за последние несколько дней (суточные файлы в /var/log/sa, sadc должен собирать и данные дисков с ключом -S DISK), в эти же моменты через pidstat -d 1 найти процессы с наибольшими kB_rd/s и kB_wr/s и сверить с расписанием cron и таймеров systemd
Подтверждает
Каждый день в одно и то же время подскакивают await и %util, и в это время большую часть чтения и записи на диск занимают процессы бэкапа, сжатия или сканирования
Опровергает
Если время всплесков каждый день разное, плановое задание маловероятно. Если в эти моменты основную часть ввода-вывода даёт сам игровой сервер, дело в сохранениях и логах (dk-fsync, dk-sync-log)
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)
Источники
ionice(1) — Linux manual pageutil-linux Задача класса idle получает время диска, только когда диском не пользуются другие программы
sar(1) — Linux manual pagesysstat -d: await, aqu-sz и %util по устройствам из суточных файлов (по умолчанию /var/log/sa), данные дисков нужно собирать ключом -S DISK у sadc