add tuned server configs for 4 vCPU / 8 GB / 40 players (tracking, activation, hopper, chunk IO)
This commit is contained in:
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,7 @@
|
||||
# ZernMC — серверные пропсы (менять только те ключи, что ниже)
|
||||
|
||||
view-distance=8
|
||||
simulation-distance=5
|
||||
sync-chunk-writes=true
|
||||
network-compression-threshold=256
|
||||
max-chained-neighbor-updates=1000000
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user