Перейти к содержимому


Фотография

Оптимизация SPIGOT - убираем лаги, стабилизируем TPS и повышаем производительность!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 temoon

temoon

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 874 сообщений

Отправлено 28 Ноябрь 2015 - 5:11

Оптимизация сервера
 
Вот подробное руководство по оптимизации вашего сервера цапфы!
Имейте в виду, для оптимизации и стабилизации сервера стоит использовать инструмент  Spigot Timings собирая статистику при максимальной нагрузке на сервер. 

 

 

1. PaperSpigot & paper.yml
PaperSpigot представляет собой набор патчей для ядра Spigot которые существенно оптимизирует сервер  и добавляет дополнительные настройки с помощью файла paper.yml.

Вы можете скачать PaperTools,  который является эквивалентом BuildTools по данной ссылке:

Запустите paperspigot.jar, как вы это делаете с обычным ядром spigot.jar (собственно PaperSpigot и является ядром сервера) . 
После запуска, сервера сгенерирует в корневой папке три yaml файла: 
  • spigot.yml
  • paper.yml
  • bukkit.yml

Используя эти файлы мы и будем вести настройку. 

 

Для начала откройте paper.yml:

Следует снизить параметр despawn-ranges, если у вас слишком много мобов (в противном случае оставьте это по умолчанию).

 

Измените значение на true следующих параметров:

use-async-lighting
optimize-draining

Это позволит оптимизировать  параметры потока жидкости и обрабатывать освещение асинхронно.

Примечание: Некоторые из этих параметров были вырезаны в paperspigot, в более поздних версиях и больше не настраиваются в конфигурационном файле (как они всегда активированы).

 

Если у вас на сервере совершается много действий с redstone схемами, воронками, вагонетками... еtс , снижение параметра tick-next-tick-list-cap может помочь в повышении производительности.

 

2. Spigot.yml & Bukkit.yml

 

Spigot.yml & bukkit.yml являются файлами, которые генерирует сервер  Bukkit/Spigot умолчанию. Они позволяют нам настроить такие параметры как:  лимит сущностей(entity), кол-во сущностей(entity) за тик, обработку мира  и другое.

Откройте  spigot.yml. Здесь мы сможем выжать максимум производительности из сервера. Найдите раздел "world-settings".

 

Во-первых, отключите анти-Xray, если вы действительно им не пользуетесь. Обычно данная функция аказывает до  5% нагрузки на сервер. Это не самый прожорливый функционал, но его отключение может дать серьезный прирост производительности.
Вы можете попробовать в качестве альтернативы более конфигурируемый  анти-Xray, например.
 
Параметр: nerf-spawner-mobs может быть установлен на true, если ваш сервер не полагаться на агрессивных мобов, которые появляются с помощью спаунеров. Если у вас есть много спаунеров нейтральных мобов (фермы и тд) и вы редко используете спаунеры агрессивных, активация этой функции даст серьезное увеличение производительности. 
 
 
entity-activation-range
Стандартные значения: (animals: 32, monsters: 32, misc: 16)
Описание: Устанавливает радиус в блоках, в пределах которых сущности будут "активными" - объекты за пределами этого диапазона будет тикать по сниженному рейту, чтобы предотвратить сервера отставание.
Я предлагаю использовать такие параметры:
entity-activation-range:
  animals: 8
  monsters: 10
  misc: 2

Misc регулирует  радиус элементов рам, картин, выброшенных предметов, шаров опыта и табличек. Я установил этому параметру значение "2", для предотвращения  их движения по воде. Параметры animals: 8 monsters: 10 не означают что мобы будут выгружены, они будут активны(за один тик), но с более низким рейтом (читаем подробнее, что такое тик).

 

entity-tracking-range
Стандартные значения: (players: 48, animals: 48, monsters: 48, misc: 32, other: 64)

Устанавливает радиус в блоках, в пределах которых сущности будут видимыми для клиента. Субъекты за пределами этого диапазона будут невидимы и не будут обработаны железом клиента чтобы сохранить загрузку процессора и пропускную способность. Это особенно полезно для ПВП серверов, а снижение параметров для игроков исключит  wallhacks и радар в некоторой степени. Misc регулирует радиус элементов рам, картин, выброшенных предметов, шаров опыта и табличек. Other устанавливает максимальный предел для всех субъектов на вашем сервере.

entity-tracking-range:  не влияет на производительность сервера, но влияет производительность на стороне клиента. Я хотел бы предложить оставить его нетронутым.
    entity-tracking-range:
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64

ticks-per:

↳ hopper-transfer

Стандартное значение: 8
Описание: Период времени в 1 тик, между тем как воронка активируется и перетянет вещи в сундук. При стандартном значении воронка активируется и перетаскивает в сундук предметы раз в 8 тиков.
 

↳ hopper-check (Удалено в версии  1.8.3  March, 8th 2015)
Стандартное значение: 8
Описание: Период времени в 1 тик, - за который воронка анализирует кол-во предметов вокруг нее. К примеру при значении 8, воронка будет проверять инвентарь сундука и наличие предметов вокруг нее раз в восемь тиков. 

Значение по умолчанию равно 8, поэтому установка его в 24 означает, что процесс активации будет происходить в три раза реже. Что сократит общее время активности воронок. (внимание изменение данной функции может привести к неправильной работе некоторых механизмов, которые строят ваши игроки) 

 

Я советую установить вот такие значения: 

ticks-per:
  hopper-transfer: 24
  hopper-check: 24
hopper-amount: 3

max-entity-collisions
Стандартное значение: 8
Описание: Данный параметр устанавливает лимит сущностей  в одной точке, я предлагаю установить значение 2 или даже 1. 

 

item-despawn-rate

Стандартное значение: 6000
Описание: Данный параметр устанавливает время в тиках, по прошествии которого брошенные на землю предметы исчезнут.

При стандартном значении предметы будут исчезать через 6000:20=300 секунд. Данный параметр регулируется индивидуально для каждого сервера. 

 

merge-radius:

↳ exp
Стандартное значение: 3.0
Описание: Устанавливает радиус в блоках, когда шарики опыта будут объединены в один стак. 

↳ item
Стандартное значение: 2.5
Описание: Устанавливает радиус в блоках, когда предметы одной группы будут объединены в один стак. 

 

Предлагаю вот такие параметры:

merge-radius:
  item: 4
  exp: 6

 

view-distance
Стандартное значение: 10
Описание: Контролирует количество блоков, которые будут загружены вокруг каждого игрока. Это значение не может быть выше , чем 15 или ниже , чем 1. Понижение это может снизить нагрузку на сервер , если у вас есть большое количество игроков онлайн.

 

Я советую установить данный параметр на "4", но в таком случае могут возникнуть проблемы при прогрузке блоков для креатив серверов. Все же лучше не выходить за значение "6". Данный параметр оказывает значительную нагрузку на сервер

 

chunks-per-tick

Стандартное значение: 650
Описание: Контролирует количество чанков, которые будут обновлены для роста культур(фермерам на заметку) за один тик . Снижение этого параметра уменьшает нагрузку на сервер и замедляет рост культур соответственно. Я предлагаю установить значение "80" что примерно в восемь раз ниже.

growth:

 x-модификатор

где x это = cactus, melon, pumpkin, sapling, cane, mushroom, wheat

Стандартное значение: 100
Type: Integer
Описание: Контролирует скорость роста определенной культуры.

При снижении параметра chunks-per-tick в восемь раз до 80, мы увеличим значения роста каждой культуры до "800" ( восемь раз соответственно)  что даст нам стандартную скорость роста, при этом сократив кол-во обновленных чанков. 

Устанавливаем параметры на: 

growth:
  cactus-modifier: 800
  cane-modifier: 800
  melon-modifier: 800
  mushroom-modifier: 800
  pumpkin-modifier: 800
  sapling-modifier: 800
  wheat-modifier: 800

 Помните, что параметры chunks-per-tick и growth взаимосвязаны и если вы уменьшили кол-во обновленных чанков, при этом оставив без изменения параметр growth(100) то вы снизите скорость роста в восемь раз и наоборот. 

 

Переходим к файлу bukkit.yml 

 

 

Параметр spawn-limits. Отвечает за общее кол-во мобов, которые будут отспаунены для одного игрока. Я предлагаю такие значения: 

spawn-limits:
  monsters: 50
  animals: 10
  water-animals: 3
  ambient: 4

Я снизил параметр ambient: 4, тк. Кол-во летучишь мышей никак не влияет на геймплей. 
Чем больше игроков играют на сервере, тем ниже можно опускать данные значения повышая при этом производительность сервера. 

 

Также рекомендую установить значения параметра ticks-per:

ticks-per:
  animal-spawns:400
  monster-spawns: 3
  autosave: 3000

В частности, я изменил monster-spawns с 1 до 3. Это интервал между событием mobSpawn , который будет определять места и порождать монстров . Если mobSpawn собирает много циклов в ваших таймингах советую увеличить данные значения!

 

chunk-gc это небольшая функция spigot которая отключена по умолчанию. Для включения, установите параметры:

chunk-gc:
  period-in-ticks: 300
  load-threshold: 300

 


Сообщение отредактировал temoon: 29 Ноябрь 2015 - 9:08

  • VELVET, Mister_E, 666fox666 и 2 другим это нравится

#2 deadanykey

deadanykey

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 3 415 сообщений

Отправлено 28 Ноябрь 2015 - 20:51

Закрепил тему.



#3 DecoCraft

DecoCraft

    Новичок

  • Пользователь
  • Pip
  • 7 сообщений

Отправлено 29 Декабрь 2015 - 14:25

Здравствуйте, а как узнать, какая версия ядра?- Я без понятия..

#4 deadanykey

deadanykey

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 3 415 сообщений

Отправлено 29 Декабрь 2015 - 14:34

Здравствуйте, а как узнать, какая версия ядра?- Я без понятия..

При запуске в логе и в консоли пишет.



#5 VELVET

VELVET

    Участник

  • Пользователь
  • PipPip
  • 76 сообщений

Отправлено 14 Январь 2016 - 12:30

Спасибо за полезный мануал!
TPS стабилизировался до 19.5+ с редкими падениями до 17-18, что полностью устраивает. Игроки также не жалуются на урезанные настройки.

 

До сих пор не нашёл время подготовить тайминги (уже неделю пытаюсь решить проблему с плохо работающим веб-хостингом), но пока отпала необходимость менять тариф или хостинг :)



#6 VELVET

VELVET

    Участник

  • Пользователь
  • PipPip
  • 76 сообщений

Отправлено 12 Май 2016 - 13:55

Оптимизация сервера

temoon, а можно небольшую консультацию по поводу разбора таймингов?
Я тут обновился до 1.9.4.

И либо это связано с версией Спигота, либо с моей старой картой и любовью к кб, но в общем TPS стабильно держится на 12 при одном игроке (настроено всё по твоим рекомендациям и это ранее работало).

 

 

Скиньте сюда конфигурацию сервера, результаты команд  /timings paste, /plugins, /lag Может чем и поможем. 

 

Вот тайминги. Где можно чуть более подробно ознакомиться с тем, что по этой ссылке описано?

Инфа на Спиготе и на RuBukkit не оч. подробная...

 

Не очень понятно, что означают doTick применительно к конкретному миру?
И что такое tickEntities - это мобы, кб, рамки, воронки, что это конкретно?

И какие пути исправления ситуации конкретно этих проблем?

 

Плагинов у нас всего 4:

 

McF3MzF.png

 

Карта старая - ещё с версии 1.2.5. Относительно много кб. Достаточно много рамок. Онлайн маленький - меньше 10. Мобов относительно мало - следим за их количеством. Игроки почти не строят крупные фермы - также следим за этим.

Не знаю, что ещё можно предположить.

 

Заранее спасибо за помощь )




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных