be3bfc2369
Build Delta / Build paperclip jar (push) Successful in 7m9s
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.
39 lines
1.4 KiB
YAML
39 lines
1.4 KiB
YAML
# 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 |