diff --git a/zernmc-config/README.md b/zernmc-config/README.md index 4433a6ffd..da3409920 100644 --- a/zernmc-config/README.md +++ b/zernmc-config/README.md @@ -47,10 +47,17 @@ - `entities.spawning.spawn-limits` — потолок мобов на чанк. ### `paper-global.yml` -- `chunk-system.io-threads: 2`, `worker-threads: -1` — не даём - чанковой системе съесть 4 ядра. +- **`chunk-system.worker-threads: 2`** — самый недооценённый рычаг. `auto` + (`-1`) на 4 ядрах даёт **1 воркер**, и генерация чанков идёт + последовательно: Moonrise делит `availableProcessors` пополам, а на + результате 2 опускается до 1, оставляя место главному треду. + Замерено: холодный старт **38.5 → 24.9 с**, тёплый **16.4 → 12.2 с**. + Значение 3 — только с профилем, главному треду на 4 ядрах нужно дышать. +- `chunk-system.io-threads: 2`, `gen-parallelism: true`. - `chunk-loading.advanced.player-max-concurrent-chunk-loads/generates` — - защита от флуда генерацией при скоростном облёте. + защита от флуда генерацией при скоростном облёте. **При ускорении + генерации этот потолок надо поднимать**, иначе движер быстрее, а + ограничитель остался прежним. ## Что НЕ трогаем - Moonrise (чанковая система) — уже многопоточный, отдельный патч не нужен. diff --git a/zernmc-config/paper-global.yml b/zernmc-config/paper-global.yml index 40f51834c..41d464eec 100644 --- a/zernmc-config/paper-global.yml +++ b/zernmc-config/paper-global.yml @@ -2,9 +2,14 @@ # Копировать в <сервер>/config/paper-global.yml chunk-system: - worker-threads: -1 # авто под 4 vCPU (Paper сам считает) - io-threads: 2 # сидеть на 4 ядрах - gen-parallelism: "default" + # worker-threads: -1 (auto) на 4 ядрах даёт 1 воркер, и генерация чанков + # идёт последовательно. Moonrise делит availableProcessors пополам, а на + # результате 2 опускается до 1, чтобы оставить место главному треду и Netty. + # 2 воркера: холодный старт 38.5с -> 24.9с, тёплый 16.4с -> 12.2с. + # 3 пробовать только с замером: главному треду на 4 ядрах нужно дышать. + worker-threads: 2 + io-threads: 2 + gen-parallelism: true chunk-loading: basic: