Стоит взять метод на вооружение:
Природа лагов может быть разной, но сейчас речь пойдет о внутрисерверных лагах. То есть когда процесс игрового сервера, вместо того чтобы быстро обрабатывать запросы игроков, длительно тупит, занимаясь чем-то непотребным.
Чтобы выяснить, чем же именно непотребным занимается сервер во время лагов, была сделана очень простая штука: lag detector. Это специальный thread, который каждые 50 миллисекунд просыпается и смотрит на счетчик внутреннего цикла основного рабочего потока. Если счетчик не менялся уже длительное время (например, 200 миллисекунд), то что-то не в порядке. Lag detector пишет в лог сообщение об ошибке и call stack основного потока.
Получился эдакий самопальный профилировщик, но встроенный прямо в боевой сервер и срабатывающий, только когда надо. Виновных определяет на раз. Даже если сервер вдруг подлагнул позавчера во вторник в полтретьего ночи.
Комментариев нет:
Отправить комментарий