Збирач сміття та паузи
Чому сервер завмирає на кілька секунд за нормального TPS: як працює збирання сміття, як побачити це в логах і що справді допомагає.
Оновлено 13 серпня 2026 р.
Java звільняє пам'ять під час пауз: застосунок зупиняється, збирач сміття прибирає сміття, і робота продовжується. Довга пауза виглядає як зависання всього сервера.
Симптоми
- Середній TPS у нормі, але раз на кілька хвилин усе завмирає на 1–5 секунд.
- У лозі Paper:
Can't keep up! Did the system time change, or is the server overloaded?— аналіз. spark healthпоказує частку часу, витраченого на GC.
Що на це впливає
| Чинник | Вплив |
|---|---|
| Розмір купи | Більша купа — довша пауза |
| Швидкість створення сміття | Плагіни й моди, які створюють об'єкти в циклі |
| Збирач | G1 за замовчуванням; ZGC дає короткі паузи на великих купах |
| Кількість ядер | Паралельне збирання відбувається швидше |
Що робити
- Не давайте пам'ять «із запасом». 32 ГБ там, де достатньо 8, означає довші паузи. Орієнтир — пік плюс 30–50% — Скільки потрібно пам'яті.
- Знайдіть джерело сміття.
spark heapsummaryпокаже, що заповнює купу. Часто це конкретний плагін або мод. - Прапорці. Налаштований G1 уже встановлено в Millida; ручні набори з інтернету частіше шкодять — Прапорці Aikar.
Чого не робити
Не намагайтеся «вимкнути збирач сміття» — такої опції не існує. Не ставте -Xmx більше за обсяг пам'яті тарифу: процес буде вбито, коли спробує перевищити ліміт — OutOfMemoryError.
Хостинг MinecraftВаш сервер працює, навіть коли ви офлайнСтворити сервер
