Лаги сервера: CPU, RAM или диск — как понять, что тормозит
Как по графикам панели отличить нехватку процессора, памяти и медленный диск, и что делать с каждым из трёх, прежде чем менять тариф.
Содержание 14
- Коротко
- Шаги
- Условный пример разбора
- Что собрать перед решением о тарифе
- Частые ошибки с тарифом
- Симптом → причина → решение
- Как сделать в панели EGN
- Частые ошибки
- Вопросы и ответы
- По какому графику понять, что не хватает процессора?
- Как понять, что не хватает памяти?
- Почему лаги при нормальных CPU и памяти?
- Сколько ждать после изменения?
- Итог
Игроки жалуются на лаги: персонажи дёргаются, блоки ставятся с задержкой, сохранение виснет на несколько секунд. Первая мысль — взять тариф побольше. Иногда это правильно, но часто не тот ресурс, который не хватает. Процессор, память и диск тормозят по-разному, и у каждого свой признак. Разберёмся, как по графикам понять, что именно узкое место.
Коротко
Лаги сервера дают три типа причин. Нехватка CPU видна как постоянно высокая загрузка процессора, из-за которой тики растягиваются. Нехватка памяти видна как график, который держится у лимита, и как сохранения, падения и OOM. Проблемы диска видны как долгая запись и чтение при нормальном CPU и памяти. Смотрите блок «Нагрузка» за неделю, а не один момент, и меняйте один ресурс за раз.
Шаги
-
Откройте график за неделю. В карточке услуги в кабинете найдите блок «Нагрузка» и переключите период на «Неделя». Здесь три графика: процессор, память и диск, у каждого свой лимит и пик. Смотрите, когда лаги совпадают с пиками, а не только в среднем.
Пример из тестового кабинета (данные стенда): тариф с 2 ГБ памяти и 3 ГБ диска. Память за неделю держалась выше 88 % шесть часов, пик 93 %. Процессор был в норме: средняя 23,5 %, пик 85 %. Диск занят на 290 МБ. Вывод по картинке: узкое место — память, а не процессор и не диск.
-
Проверьте процессор. Если загрузка CPU почти всё время около лимита, а игроков мало, одна из причин в плагине или моде, который тратит время каждого тика. Профилировщик spark (плагин или мод; в логе тестового Paper 1.21.4 он уже запущен) даёт подробный отчёт: какие задачи съедают время. Меньше онлайна, меньше модов или тариф с сильным ядром — варианты.
-
Проверьте память. Если график памяти у лимита и есть падения или долгие сохранения, сервер упирается в память. Смотрите статью про OutOfMemoryError: там разобрано, что такое heap и почему
-Xmxдолжен быть меньше лимита. Если памяти не хватает, поднимайте тариф. -
Проверьте диск. Диск даёт лаги, когда сохранения, бэкапы или логи занимают много времени, а CPU и память в норме. Признаки: сохранение виснет, чтение чанков тормозит при исследовании новых мест, а объём занятого места растёт без остановки. Почистите старые бэкапы и логи, проверьте расписания, не держите запас места на грани.
Схема выше — шпаргалка. Каждому ресурсу соответствует свой симптом и свой первый шаг. Не лечите CPU, если проблема в памяти, и наоборот.
-
Измените один параметр и смотрите. Например, уменьшите онлайн-нагрузку или выключите один тяжёлый мод. Затем подождите сутки и посмотрите на тот же график. Если картинка не изменилась, вернитесь к исходной настройке и проверьте другой ресурс.
Условный пример разбора
Игроки жалуются на задержки по вечерам. Открываете неделю: процессор около 25 % большую часть суток, но вечером пики до 85 %. Память держится выше 88 % именно в вечерние часы, как раз когда онлайн максимальный. Вывод: в пик не хватает памяти, а процессор загружается из-за неё же — сборщик мусора работает чаще. Решение — больший тариф по памяти или меньше модов.
Другой пример: процессор ровный, память в норме, но сохранения виснут каждую ночь. Смотрите диск: в это время запускаются бэкапы и чистка логов. Расписание сдвигается на другое время, и лаги уходят.
Что собрать перед решением о тарифе
Тариф стоит менять, когда график подтверждает нехватку ресурса. Прежде чем решать, соберите неделю данных и ответьте на четыре вопроса. Когда пики по процессору: в вечер, при максимальном онлайне или во время бэкапа? Что держит память: онлайн, моды или предгенерация? Сколько места занято на диске и как оно растёт? Совпадают ли лаги с расписаниями: бэкапы, рестарты, сохранения?
Если сервер стоит на вашем VPS, нагрузку можно проверить прямо по SSH. Команды ниже входят в стандартный набор Linux (для iostat нужен пакет sysstat):
free -h
df -h /
vmstat 1 5
iostat -x 1 5free -h показывает память, df -h / — заполнение диска, vmstat — загрузку процессора и очередь ожидания, iostat — время ожидания диска. Высокий wa в vmstat и высокий %util в iostat при низкой загрузке CPU — признаки проблемы диска, а не процессора.
Частые ошибки с тарифом
Самая частая ошибка — купить больше процессора, когда тормозит диск. Второе — увеличить память, когда в логе просто один плагин раз в минуту пишет предупреждения. Третье — не учитывать пиковый онлайн: средняя нагрузка может быть низкой, а вечерний пик — тяжёлым. Поэтому смотрите максимум за час и за неделю, а не среднее.
Симптом → причина → решение
| Симптом | Что смотреть | Причина | Решение |
|---|---|---|---|
| Тики растягиваются, CPU у лимита | Процессор в «Нагрузке», строки Can't keep up! |
Тяжёлые задачи или нехватка ядра | Профилировщик spark, меньше модов, тариф с сильным ядром |
| Сохранения и вылеты, память у лимита | Память в «Нагрузке», OOM, Exit code 137 |
Нехватка памяти | Проверить -Xmx, тариф с большей памятью |
| Сохранение виснет, CPU и память в норме | Диск, время бэкапов | Диск медленный или переполнен | Почистить логи и бэкапы, сдвинуть расписания |
| Лаги только у части игроков | Пинг и потери у игрока | Связь игрока | Проверить Wi-Fi и VPN, см. статью про Timed out |
| Лаги в одно и то же время | Расписания, рестарты | Совпадение задач | Перенести рестарты и бэкапы на ночь |
Как сделать в панели EGN
- Откройте карточку услуги в кабинете, блок «Нагрузка»; текущую загрузку смотрите ещё и на графиках страницы «Консоль».
- Переключите период на «Неделя» и отметьте пиковые часы: когда график подскакивает.
- Откройте «Расписания» и проверьте, совпадают ли бэкапы и рестарты с этими часами.
- Если память держится выше 85–90 % лимита, посмотрите «Запуск» и тариф.
- Если CPU перегружен, включите профилировщик spark на сервере в пиковый час и сравните отчёт с графиком.
Именно такой график подсказывает, что делать: в примере память держится у лимита, а процессор и диск в норме. Значит, решение здесь — память, а не процессор.
Частые ошибки
- Смотреть на один момент. Один пик ни о чём не говорит. Нужен график за неделю.
- Брать тариф «на всякий случай». Если узкое место память, процессор не поможет. Сначала найдите ресурс.
- Менять несколько вещей сразу. После этого не поймёте, что помогло.
- Винить сеть. Лаги от сети выглядят иначе: пинг скачет, а графики сервера ровные. Это отдельная история, см. статью про Timed out.
- Игнорировать расписания. Бэкап и перезапуск, которые стартуют в час пик, дают лаги на ровном месте.
Вопросы и ответы
По какому графику понять, что не хватает процессора?
Если загрузка CPU постоянно почти у лимита, а лаги совпадают с пиками, не хватает процессора или тяжёлые задачи. Проверьте профилировщиком, что занимает время.
Как понять, что не хватает памяти?
Если график памяти держится у лимита, а в логах появляются OOM, Exit code 137 или долгие сохранения, памяти мало. Поднимайте тариф или уменьшайте нагрузку на память.
Почему лаги при нормальных CPU и памяти?
Скорее всего, диск: долгие сохранения, бэкапы, логи. Проверьте, что в это время запускается, и сдвиньте расписание.
Сколько ждать после изменения?
Минимум сутки. За это время график покажет, помогло ли изменение в обычной нагрузке, а не в одном удачном часу.
Итог
Лаги — это симптом, а причина у каждого сервера своя. Откройте график за неделю, найдите узкое место среди CPU, памяти и диска, и меняйте один параметр за раз. Тариф поднимайте, когда график подтверждает нехватку ресурса. Смежные статьи: про память, про Timed out и про сервер, который стартует и падает.
Сервер под игру за пару минут — egnetwork.ru
Читать далее
Вся рубрика →Почему лагает Minecraft-сервер при 10 игроках и что с этим делать
Типичные причины лагов на сервере на 10 игроков: процессор, память, диск, дальность и фермы. Как понять, что именно тормозит, и какие шаги в панели EGN помогают.
График нагрузки в панели EGN: когда пора на тариф выше
Как читать график нагрузки за сутки и неделю, что значат проценты памяти и процессора и при каких показателях панель сама советует тариф выше.
Rust: сколько нужно RAM и как оптимизировать сервер, чтобы не лагал
Минимум тарифа, замеры на стенде EGN, как размер карты и онлайн меняют память, и что делать с лагами и падениями при заходе игроков.