add tuned server configs for 4 vCPU / 8 GB / 40 players (tracking, activation, hopper, chunk IO)

This commit is contained in:
SashegDev
2026-09-30 09:16:05 +00:00
parent 29c8822d90
commit af1a55b1e7
5 changed files with 215 additions and 0 deletions
+64
View File
@@ -0,0 +1,64 @@
# ZernMC configs
Тюнинг под профиль: **4 vCPU / 8 GB RAM, 30–40 игроков**, боевой сервер с
плагином, который спавнит много `Display`/`Marker` сущностей и частиц
(BlackKnife как референс).
Все файлы **парциальные** — Paper/Spigot дополняет недостающие ключи
дефолтами, поэтому их можно копировать поверх существующих конфигов.
## Куда класть
| Файл | Путь на сервере |
|---|---|
| `spigot.yml` | `<сервер>/spigot.yml` |
| `paper-world.yml` | `<сервер>/<мир>/paper-world.yml` — **у каждого мира свой** |
| `paper-global.yml` | `<сервер>/config/paper-global.yml` |
| `server.properties.patch` | ключи из него в `<сервер>/server.properties` |
## Что где меняем и зачем
### `spigot.yml`
- `view-distance 8 / simulation-distance 5` — на 4 ядрах это самый
ощутимый рычаг: симуляция шириной 10 стоит в разы дороже 5.
- `entity-tracking-range.display 128 → 48` — **главный фикс**. Display,
ItemDisplay, TextDisplay, Marker шлются игрокам пачками; при спаме
боеспособностей 128 это десятки пакетов на тик.
- `misc 96 → 48`, `other 64 → 32`, `animals/monsters 96 → 64`,
`players 128 → 96` — то же, но по остальным типам.
- `entity-activation-range` — сужаем радиусы, в которых сущности вообще
тикают; `tick-inactive-villagers: false` — самый частый выигрыш.
- `ticks-per.hopper-check 1 → 8` — хопперы по умолчанию проверяются
каждый тик, 8 экономит заметно и не ломает фермы.
- `merge-radius.item 0.5 → 2.5` — меньше сущностей-дропа на земле.
- `item-despawn-rate 6000 → 3000`, `arrow-despawn-rate 1200 → 300`.
- `mob-spawn-range 8 → 6`, `max-tnt-per-tick 100 → 30`.
### `paper-world.yml`
- `misc.redstone-implementation: ALTERNATE_CURRENT` — быстрее
распространение редстоуна. **Ломает 0-tick и двери-контры**, предупредить
игроков перед включением.
- `tick-rates` — рост травы, обновление контейнеров, спавнеры в 3 тика.
- `collisions.max-entity-collisions 8 → 5`.
- `environment.disable-thunder`, `optimize-explosions`,
`max-block-ticks`/`max-fluid-ticks` пополам.
- `hopper.disable-move-event: true` — **ломает плагины, слушающие
`InventoryMoveItemEvent`** (авто-сортировки, economy-логики).
- `entities.spawning.spawn-limits` — потолок мобов на чанк.
### `paper-global.yml`
- `chunk-system.io-threads: 2`, `worker-threads: -1` — не даём
чанковой системе съесть 4 ядра.
- `chunk-loading.advanced.player-max-concurrent-chunk-loads/generates` —
защита от флуда генерацией при скоростном облёте.
## Что НЕ трогаем
- Moonrise (чанковая система) — уже многопоточный, отдельный патч не нужен.
- `wake-up-inactive.*` — баланс, не перф.
## Порядок применения
1. Остановить сервер.
2. Скопировать файлы.
3. `paper-world.yml` положить в **каждый** мир: `world/`, `world_nether/`, `world_the_end/`.
4. Старт → в логе не должно быть `Error occurred while loading` по этим файлам.
5. Проверить: `/paper entity` (tracking ranges), `spark` для TPS/MSPT.
+34
View File
@@ -0,0 +1,34 @@
# ZernMC tuned paper-global.yml — партиальный, мержится с дефолтами Paper.
# Копировать в <сервер>/config/paper-global.yml
chunk-system:
worker-threads: -1 # авто под 4 vCPU (Paper сам считает)
io-threads: 2 # сидеть на 4 ядрах
gen-parallelism: "default"
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
+53
View File
@@ -0,0 +1,53 @@
# ZernMC tuned paper-world.yml — партиальный, мержится с дефолтами Paper.
# Копировать в <сервер>/<мир>/paper-world.yml (для каждого мира свой файл!)
chunks:
delay-chunk-unloads-by: 10s
environment:
disable-thunder: true
optimize-explosions: true
fire-tick-delay: 40 # дефолт 30 — реже перезажигаем
max-block-ticks: 32768 # дефолт 65536
max-fluid-ticks: 16384 # дефолт 65536
hopper:
cooldown-when-full: true
disable-move-event: true # ломает плагины на InventoryMoveItemEvent
ignore-occluding-blocks: true
collisions:
max-entity-collisions: 5 # дефолт 8
tick-rates:
grass-spread: 3
container-update: 3
mob-spawner: 3
wet-farmland: 3
dry-farmland: 3
misc:
# ВНИМАНИЕ: ломает 0-tick схемы, двери-контры и quasi-connectivity.
# Включать только если игроки на этом не строят.
redstone-implementation: ALTERNATE_CURRENT
update-pathfinding-on-block-update: false
entities:
per-player-mob-spawns: true
tracking-range-y:
enabled: false
spawning:
spawn-limits:
monster: 45
animal: 12
ambient: 8
axolotls: 4
creature: 8
misc: 2
villager: 4
water_creature: 6
underground_water_creature: 2
water_ambient: 4
ticks-per-spawn:
monster: 200
animal: 400
+7
View File
@@ -0,0 +1,7 @@
# ZernMC — серверные пропсы (менять только те ключи, что ниже)
view-distance=8
simulation-distance=5
sync-chunk-writes=true
network-compression-threshold=256
max-chained-neighbor-updates=1000000
+57
View File
@@ -0,0 +1,57 @@
# ZernMC tuned configs — 4 vCPU / 8 GB RAM, 30-40 players, BlackKnife-подобные визуалы
#
# ВАЖНО: все файлы в этой папке — ПАРЦИАЛЬНЫЕ. Paper/Spigot дополняет
# недостающие ключи дефолтами при старте, поэтому перезаписывать целиком
# spigot.yml / paper-world.yml не нужно — достаточно скопировать эти файлы
# поверх существующих (или положить в правильные места до первого старта).
#
# Куда что класть:
# spigot.yml -> <сервер>/spigot.yml
# server.properties -> <сервер>/server.properties
# paper-world.yml -> <сервер>/world/paper-world.yml (для каждого мира свой!)
# paper-global.yml -> <сервер>/config/paper-global.yml
#
# Целевой профиль: боевой PvP-сервер, много частиц и Display-сущностей,
# поэтому экономия идёт по трекингу, активации и спавну, а не по физике.
world-settings:
default:
view-distance: 8
simulation-distance: 5
# --- Мобы: реже спавним, меньше держим в памяти ---
mob-spawn-range: 6
merge-radius:
item: 2.5
exp: 4.0
item-despawn-rate: 3000
arrow-despawn-rate: 300
entity-activation-range:
animals: 24
monsters: 28
raiders: 32
misc: 10
water: 8
villagers: 16
flying-monsters: 28
tick-inactive-villagers: false
# --- Трекинг: главный рычаг для сервера с голограммами/Display ---
entity-tracking-range:
players: 96
animals: 64
monsters: 64
misc: 48
display: 48 # дефолт 128 — Display-сущности идут всем подряд
other: 32
# --- Хопперы ---
ticks-per:
hopper-transfer: 8
hopper-check: 8 # дефолт 1 — хопперы проверяются каждый тик
hopper-amount: 1
hopper-can-load-chunks: false
# --- Взрывы ---
max-tnt-per-tick: 30