Files
SashegDev be3bfc2369
Build Delta / Build paperclip jar (push) Successful in 7m9s
perf(config): 2 chunk workers instead of 1, gen-parallelism on
worker-threads: -1 means "auto", and auto on 4 cores resolves to ONE worker.
MoonriseCommon.adjustWorkerThreads halves availableProcessors and then, if the
result is <= 4, collapses it further - 4/2=2, and 2<=3 becomes 1. That single
thread generated the spawn region serially.

Measured on zern.cc (4 vCPU, 8 GB), same jar, same flags, cold world vs warm:

                    before   after
  cold, overworld     6770ms  2944ms
  cold, nether        1368ms   888ms
  cold, total         38.5s   24.9s
  warm, overworld     1084ms   803ms
  warm, total         16.4s   12.2s

gen-parallelism "default" already resolved to true at startup, so it is now
spelled out rather than left to string comparison at boot.

3 workers is deliberately NOT set here. The main thread plus Netty share the
same 4 cores, and going to 3 trades main-thread headroom for generation that
does not happen every tick. That needs a profile, not a guess.

Also recorded the corollary: player-max-concurrent-chunk-generates is a rate
limiter, not an accelerator. Speeding up generation without raising it just
makes the engine faster behind a throttle that was sized for the old speed.
2026-10-03 11:58:59 +00:00

39 lines
1.4 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ZernMC tuned paper-global.yml — партиальный, мержится с дефолтами Paper.
# Копировать в <сервер>/config/paper-global.yml
chunk-system:
# 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:
player-max-chunk-send-rate: 75.0
player-max-chunk-load-rate: 60.0
player-max-chunk-generate-rate: 20.0 # ограничить флуд генерацией при облёте
advanced:
auto-config-send-distance: true
player-max-concurrent-chunk-loads: 8
player-max-concurrent-chunk-generates: 4
player-max-concurrent-chunk-sends: 8
packet-limiter:
kick:
actions: 4000
interval: 1
limits:
all: 400.0
server-bound:
play:
bundle: 100.0
login:
bundle: 400.0
proxies:
velocity:
enabled: false