Коротко: сервер запустился в 00:03 и с тех пор работает без единого падения и перезапуска. Пик составил 52 игрока из 55, а всего за период зашло 77 уникальных игроков. Мир открылся за 2,7 секунды, а подгенерации чанков при входе игроков не было вовсе: всё это результат пре-генерации, о которой мы рассказывали в прошлой статье. Ниже — что показали замеры, где сервер работал с запасом, а где ему было тяжело на пике.
О времени. Все времена в статье указаны по часам сервера (UTC+10). Данные взяты из постоянного мониторинга сервера:
замер TPS каждые 30 секунд, число игроков, паузы сборщика мусора, журналы запуска. Период: с 00:03 до 13:11 7 октября.
1Главное #
| Показатель | Значение |
|---|---|
| Запуск | 00:03:43, мир загружен за 2,7 с |
| Работа без перезапуска | с 00:03 до 13:11, то есть более 13 часов |
| Падения | 0 |
| Пик игроков | 52 из 55 в 02:01 |
| Уникальных игроков зашло | 77 |
| Средний TPS за период | 19,84 (из 1574 замеров) |
| Замеров с TPS ≥ 19 | 94,5 % |
| Замеров с TPS ≥ 15 | 99 % |
| TPS на протяжении периода | около 20; короткие просадки пришлись в основном на пик онлайна |
Это колоссальный шаг вперёд по сравнению с прошлым сезоном. Сборка у нас тяжёлая, а в первые 13 часов запуска, при пиковом онлайне в 52 человека, не случилось ни одного краша, и TPS почти всё время держался у отметки 20. В Сезоне 0 мы только запускались и без опыта часто попадали под краши и ошибки: взаимные блокировки в физике кораблей Sable и Simulated, гонки при удалении кораблей, многосекундные подвисания при автосохранении мира и прочие проблемы. Кроме того, нагрузка росла по ходу сессии. Все эти причины мы разобрали и закрыли собственными исправлениями.
Этому предшествовала примерно неделя непрерывных тестов и исправлений: нагрузочные сценарии на стенде, проверка с игроками-тестировщиками по белому списку, разбор каждого падения. Подробности подготовки — в прошлой статье.
2Запуск и первые минуты #
- 00:03:43: старт сервера. Версии ядра и модов те же, что прошли тесты на стенде (166 файлов в папке модов). Мир загрузился за 2,7 с: пре-генерация радиуса 7000 блоков сделала своё дело, дополнительной генерации при первых входах не было.
- 00:04: первые заходы. Первые полторы минуты вход ещё был по белому списку, затем сервер открыли для всех.
- Первые 10 минут: 31 вход, онлайн вырос с 30 до 38. К 00:40 было 44, к 01:50 уже 51, пик 52 в 02:01. Затем онлайн пошёл на спад: 30 к 03:20, 20 к 06:50, 12 к 08:00 и 2–3 игрока после 09:00.
3Игроки и TPS по часам #
TPS (ticks per second) — сколько игровых тиков сервер успевает за секунду. Норма — 20. Ниже онлайн и TPS по ходу первых 13 часов (среднее за 10 минут). Верхний график: сколько игроков было на сервере, нижний: что показывал TPS.

Нижний график: среднее значение TPS за 10 минут, ось начинается с нуля. Пунктир: потолок 20 TPS. Оранжевым закрашено, насколько среднее было ниже потолка.
| Час | Игроков (ср.) | Игроков (макс.) | TPS (ср.) | Замеров с TPS ≥ 19 |
|---|---|---|---|---|
| 00:00 | 35 | 42 | 19,85 | 98 % |
| 01:00 | 44 | 51 | 19,92 | 94 % |
| 02:00 | 47 | 52 | 18,27 | 49 % |
| 03:00 | 34 | 45 | 19,78 | 92 % |
| 04:00 | 27 | 30 | 19,90 | 97 % |
| 05:00 | 25 | 29 | 19,92 | 98 % |
| 06:00 | 20 | 23 | 20,02 | 100 % |
| 07:00 | 14 | 17 | 19,99 | 99 % |
| 08:00 | 6 | 12 | 20,05 | 100 % |
| 09:00 | 3 | 4 | 20,04 | 100 % |
| 10:00 | 3 | 3 | 20,02 | 100 % |
| 11:00 | 1 | 3 | 20,06 | 100 % |
| 12:00 | 1 | 2 | 20,08 | 100 % |
| 13:00 | 1 | 2 | 19,88 | 95 % |
Проседание в 02:00 пришлось на самый плотный час: 47 игроков в среднем, до 52 на пике. В остальное время, включая соседние часы с 34–44 игроками в среднем, сервер удерживал TPS около 20.
4Как TPS зависит от онлайна #
Чтобы отделить «сервер плох» от «сервер нагружен», мы разложили все замеры по числу игроков в момент измерения:

| Игроков онлайн | Замеров | Средний TPS | Замеров с TPS ≥ 19 |
|---|---|---|---|
| до 10 | 583 | 20,04 | 99,8 % |
| 10–19 | 221 | 20,01 | 99,5 % |
| 20–29 | 331 | 19,88 | 97,6 % |
| 30–39 | 156 | 19,94 | 98,1 % |
| 40–52 | 283 | 19,17 | 73,9 % |
До 40 игроков онлайн TPS держится на 19–20 почти в каждом замере (98–100 %). Заметное снижение начинается с 40 игроков. При этом даже в этой группе 97 % замеров остаются выше 15 TPS, а сама группа самая нагруженная: онлайн 40–52 из 55 возможных в первые же часы старта сезона.
5Подвисания #
Среднее значение скрывает короткие провалы, поэтому отдельно считаем тики длиннее 0,5 секунды:
- За 13 часов таких одиночных тиков было 76, длиннее секунды — 29, длиннее двух — 17. Самые длинные: 7,9 с в 01:02 (42 игрока), 6,8 с в 06:01 (23 игрока), 5,8 с в 00:14 (32 игрока).
- Основная часть подвисаний пришлась на время с 00:04 до 06:00, пока онлайн был 25–52 игрока. После 08:00 при онлайне до 12 игроков сервер работает ровно.
- Игрок видит это как зависание на несколько секунд с последующим «догоном». Сервер при этом не падает и не перезапускается.
- Паузы сборщика мусора: за 13 часов их было 3086, средняя 21 мс, суммарно 65 секунд (0,14 % времени). Единственная заметная пауза 1,96 с в 03:00. Остальные короче 300 мс.
- Каждое четвёртое подвисание (19 из 76) пришлось на первые три минуты часа. Это указывает на служебные задачи, которые запускаются в начале часа (резервное копирование и очистка).
- Физика кораблей Sable остаётся самым нагруженным игровым механизмом: сильнее всего она влияет на сервер как раз в часы пик.
6Что мы поправили по ходу первого дня #
- Бонусные чанки приватов. Игрокам не хватало чанков привата из-за остатков отрицательных бонусов прошлого мира. Мы обнулили их и выставили бонусы заново по истории покупок.
- Сборка кораблей на физическом сборщике Simulated в некоторых случаях не срабатывала. Исправление уже проверено на стенде и будет применено при ближайшем перезапуске.
- Плазменные молнии в измерении Gimpanum пересчитывали путь каждый тик и давали фоновую нагрузку. Оптимизация готова и также ждёт перезапуска.
- Вход по белому списку. Заранее поставили исправление, которое сверяет ник без учёта регистра: так не будет отказов из-за разного регистра букв в нике.
7Что мы улучшим дальше #
- Пик 50+ игроков. Именно в этом диапазоне TPS опускается до 18–19. Мы работаем над тем, чтобы на таком онлайне TPS оставался близким к 20.
- Почасовые подвисания. Сдвинуть резервное копирование на час с низким онлайном или сделать его менее нагружающим для диска.
- Три обновления (в том числе исправление сборки кораблей и оптимизация Gimpanum) уже проверены и применятся при ближайшем перезапуске.
8Методика и оговорки #
- TPS взят из замеров встроенного профайлера: окно 10 секунд каждые 30 секунд (1574 замера). Он измеряет интервал между тиками (потолок 20 TPS), а не время работы тика.
- Подвисания — это тики длиннее 0,5 секунды (76 записей), а также накопленное отставание «Can't keep up» (138 случаев; его величина больше длины одиночного тика, так как это сумма нескольких тяжёлых тиков подряд).
- Игроки: число онлайн по замерам монитора (раз в 30 секунд); «уникальных игроков» — число различных ников со входом с 00:00.
Спасибо всем, кто пришёл на старт Сезона 1 и помогает нам находить узкие места: каждое такое наблюдение превращается в улучшение.