- Оптимизация SPIGOT — убираем лаги, стабилизируем TPS и повышаем производительность!
- #1 temoon
- BukkitWiki
- Bukkit.yml
- Contents
- Sections in the YAML
- settings
- allow-end
- warn-on-overload
- permissions-file
- update-folder
- ping-packet-limit
- use-exact-login-location
- world-container
- plugin-profiling
- connection-throttle
- query-plugins
- deprecated-verbose
- shutdown-message
- spawn-limits
- monsters
- animals
- water-animals
- ambient
- chunk-gc
- period-in-ticks
- load-threshold
- ticks-per
- animal-spawns
- monster-spawns
- autosave
- auto-updater
- aliases
- database
- *OPTIONAL* worlds
Оптимизация SPIGOT — убираем лаги, стабилизируем TPS и повышаем производительность!
#1 temoon
1. PaperSpigot & paper.yml
PaperSpigot представляет собой набор патчей для ядра Spigot которые существенно оптимизирует сервер и добавляет дополнительные настройки с помощью файла paper.yml.
Вы можете скачать PaperTools, который является эквивалентом BuildTools по данной ссылке:
- spigot.yml
- paper.yml
- bukkit.yml
Используя эти файлы мы и будем вести настройку.
Для начала откройте paper.y ml:
Следует снизить параметр 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».
Misc регулирует радиус элементов рам, картин, выброшенных предметов, шаров опыта и табличек. Я установил этому параметру значение «2», для предотвращения их движения по воде. Параметры animals: 8 monsters: 10 не означают что мобы будут выгружены, они будут активны(за один тик), но с более низким рейтом (читаем подробнее, что такое тик).
entity-tracking-range
Стандартные значения: (players: 48, animals: 48, monsters: 48, misc: 32, other: 64 )
Устанавливает радиус в блоках, в пределах которых сущности будут видимыми для клиента. Субъекты за пределами этого диапазона будут невидимы и не будут обработаны железом клиента чтобы сохранить загрузку процессора и пропускную способность. Это особенно полезно для ПВП серверов, а снижение параметров для игроков исключит wallhacks и радар в некоторой степени. Misc регулирует радиус элементов рам, картин, выброшенных предметов, шаров опыта и табличек. Other устанавливает максимальный предел для всех субъектов на вашем сервере.
Стандартное значение: 8
Описание: Период времени в 1 тик, между тем как воронка активируется и перетянет вещи в сундук. При стандартном значении воронка активируется и перетаскивает в сундук предметы раз в 8 тиков.
↳ hopper-check (Удалено в версии 1.8.3 March, 8th 2015)
Стандартное значение: 8
Описание: Период времени в 1 тик, — за который воронка анализирует кол-во предметов вокруг нее. К примеру при значении 8, воронка будет проверять инвентарь сундука и наличие предметов вокруг нее раз в восемь тиков.
Значение по умолчанию равно 8, поэтому установка его в 24 означает, что процесс активации будет происходить в три раза реже. Что сократит общее время активности воронок. (внимание изменение данной функции может привести к неправильной работе некоторых механизмов, которые строят ваши игроки)
Я советую установить вот такие значения:
max-entity-collisions
Стандартное значение: 8
Описание: Данный параметр устанавливает лимит сущностей в одной точке, я предлагаю установить значение 2 или даже 1.
Стандартное значение: 6000
Описание: Данный параметр устанавливает время в тиках, по прошествии которого брошенные на землю предметы исчезнут.
При стандартном значении предметы будут исчезать через 6000:20=300 секунд. Данный параметр регулируется индивидуально для каждого сервера.
↳ exp
Стандартное значение: 3.0
Описание: Устанавливает радиус в блоках, когда шарики опыта будут объединены в один стак.
↳ item
Стандартное значение: 2.5
Описание: Устанавливает радиус в блоках, когда предметы одной группы будут объединены в один стак.
Предлагаю вот такие параметры:
view-distance
Стандартное значение: 10
Описание: Контролирует количество блоков, которые будут загружены вокруг каждого игрока. Это значение не может быть выше , чем 15 или ниже , чем 1. Понижение это может снизить нагрузку на сервер , если у вас есть большое количество игроков онлайн.
Я советую установить данный параметр на «4», но в таком случае могут возникнуть проблемы при прогрузке блоков для креатив серверов. Все же лучше не выходить за значение «6». Данный параметр оказывает значительную нагрузку на сервер
Стандартное значение: 650
Описание: Контролирует количество чанков, которые будут обновлены для роста культур(фермерам на заметку) за один тик . Снижение этого параметра уменьшает нагрузку на сервер и замедляет рост культур соответственно. Я предлагаю установить значение «80» что примерно в восемь раз ниже.
где x это = cactus, melon, pumpkin, sapling, cane, mushroom, wheat
При снижении параметра chunks-per-tick в восемь раз до 80, мы увеличим значения роста каждой культуры до «800» ( восемь раз соответственно) что даст нам стандартную скорость роста, при этом сократив кол-во обновленных чанков.
Устанавливаем параметры на:
Помните, что параметры chunks-per-tick и growth взаимосвязаны и если вы уменьшили кол-во обновленных чанков, при этом оставив без изменения параметр growth(100) то вы снизите скорость роста в восемь раз и наоборот.
Переходим к файлу bukkit.yml
Параметр spawn-limits . Отвечает за общее кол-во мобов, которые будут отспаунены для одного игрока. Я предлагаю такие значения:
Я снизил параметр ambient: 4, тк. Кол-во летучишь мышей никак не влияет на геймплей.
Чем больше игроков играют на сервере, тем ниже можно опускать данные значения повышая при этом производительность сервера.
Также рекомендую установить значения параметра ticks-per :
В частности, я изменил monster-spawns с 1 до 3. Это интервал между событием mobSpawn , который будет определять места и порождать монстров . Если mobSpawn собирает много циклов в ваших таймингах советую увеличить данные значения!
chunk-gc это небольшая функция spigot которая отключена по умолчанию. Для включения, установите параметры:
Сообщение отредактировал temoon: 29 Ноябрь 2015 — 9:08
Источник
BukkitWiki
This Wiki is home to Bukkit’s documentation and regulations surrounding the Bukkit Project and it’s services. Want to help out? We would love to have you! Signup to get started!
Bukkit.yml
This page has been marked for inclusion in the Bukkit Official Documentation section, Docs. You can deliberate about its inclusion on its Talk page.
Bukkit.yml is a file that provides you with a wide variety of options for configuring your CraftBukkit server.
Contents
Sections in the YAML
The headings listed below are the top-level keys in the YAML file.
settings
General CraftBukkit server options.
allow-end
Is the End enabled. (boolean)
warn-on-overload
Does the server show «[WARNING] Can’t keep up! Did the system time change, or is the server overloaded?» messages. (boolean)
permissions-file
The name of your custom permissions file. (string, filename)
update-folder
The name of the folder to put updated plugins in, which will be moved upon restart. (string, foldername) NOTE: The folder MUST be in the plugins folder. Absolute paths do NOT work.
ping-packet-limit
Currently disabled. Previously: How much packets a second the ingame ping list can use, maximum. (integer, packets/sec)
use-exact-login-location
Since Minecraft added the feature of pushing entities out whenever they are stuck inside a block, players have often found themselves above the location they logged out of when logging back in (especially if they were in a cave). This setting allows servers to disable or enable this behavior. If true, we will bypass Vanilla’s behaviour of checking for collisions and moving the player if needed when they login. If false, we will continue to follow Vanilla’s behaviour and move players that ‘collide’ with objects when they login.
world-container
The name of a folder to store all the world directories in. If not included in your file, defaults to the current working directory. (string, foldername)
plugin-profiling
Allows the use of the command /timings. Used to measure time taken by plugin for events.
connection-throttle
The delay before a client is allowed to connect again after a recent connection attempt. A value of 0 disables the connection throttle but leaves your server susceptible to attacks (only recommended for test servers). (long, milliseconds)
query-plugins
Does the server return the list of plugins when queried remotely. (boolean)
deprecated-verbose
Does the server show warnings when a plugin registers a deprecated event. A ‘true’/’false’ value works as a toggle for these warnings, while ‘default’ will always show a warning unless the event in question has been tagged by a developer as not requiring a warning when it is registered. (string)
shutdown-message
This is the message displayed to clients when the server stops
Default: Server closed
spawn-limits
CraftBukkit server options that determine how many animals or mobs can spawn per-world.
monsters
This bukkit.yml setting allows servers to set the amount of monsters that can spawn per-world.
Minecraft default: 70.
animals
This bukkit.yml setting allows servers to set the amount of animals that can spawn per-world.
Minecraft default: 15.
water-animals
This bukkit.yml setting allows servers to set the amount of water animals that can spawn per-world.
Minecraft default: 5.
ambient
This bukkit.yml setting allows servers to set the amount of ambient creatures (aka, bats) that can spawn per-world.
Minecraft default: 15.
Note: Mob spawned animals or monsters do not follow these limits. They have their own limits they follow.
Note: These limits only apply to animals or monsters in loaded chunks — it does not account for entities stored in unloaded chunks.
chunk-gc
CraftBukkit will check for chunks that should have been unloaded but for some reason failed to do so.
period-in-ticks
The ticks between each chunk garbage collection consideration. If set to 0, chunk gc will be disabled.
Bukkit default: 600.
load-threshold
Number of chunks that need to be loaded since the last garbage collection before considering garbage collection. If set to 0, chunk gc will be disabled.
Bukkit default: 0.
ticks-per
CraftBukkit server options that determine the tick delay for specific features
animal-spawns
This bukkit.yml setting allows servers to set the tick delay for animal spawns.
- A value of 1 will mean the server will attempt to spawn animals every tick.
- A value of 400 will mean the server will attempt to spawn animals every 400th tick.
- A value below 0 will be reset back to Minecraft’s default.
Note: If set to 0, animals spawning will be disabled. We recommend using spawn-animals to control this instead.
Minecraft default: 400.
monster-spawns
This bukkit.yml setting allows servers to set the tick delay for monster spawns.
- A value of 1 will mean the server will attempt to spawn monsters every tick.
- A value of 400 will mean the server will attempt to spawn monsters every 400th tick.
- A value below 0 will be reset back to Minecraft’s default.
Note: If set to 0, monsters spawning will be disabled. We recommend using spawn-monsters to control this instead.
Minecraft default: 1.
autosave
This bukkit.yml setting allows servers to set the number of ticks for each save-all event.
- A value of 1 will mean the server will attempt to autosave the world every tick.
- A value of 6000 will mean the server will attempt to autosave the world every 5 minutes.
- A value below 0 will be reset back to Bukkit’s default.
Minecraft default: 6000.
Bukkit default: 0.
Note: Many Bukkit servers already run autosave plugins which generate save-all tasks, thus it was decided to disable this feature in Bukkit, as the Minecraft default setting was causing a lot of lag for many servers, and was found redundant. If you wish to enable this, remember the setting is per tick, and thus should be set to a reasonably high number (6000 = 5 minutes at peak server efficiency).
auto-updater
Controls the built in update checker.
- enabled: (boolean) Is the update checker enabled. Default: true
- on-broken: (string array) What to do if the version the server is on is known to have a large bug or exploit. Can be «warn-ops» and/or «warn-console». Default: [warn-console, warn-ops]
- on-update: (string array) What to do if the version the server is on is out of date. Can be «warn-ops» and/or «warn-console». Default: [warn-console, warn-ops]
- preferred-channel: (string) Which release channel is preferred for this server. Can be «rb», «beta» or «dev». Default: rb
- host: (string) The update checker location. You probably should never change this, unless you know what you’re doing. Default: dl.bukkit.org
aliases
NOTE: In the latest versions, aliases have been moved to the commands.yml file.
This section allows you to map aliases to commands. Example:
database
This section lets you set various database-related configuration options, for the database which will be shared by plugins that use the internal eBeans server. Most plugins do not use this, so whether or not you need to configure it is up to you. Changing these properties will change how all plugins that use the eBeans server integrated with Bukkit connect to their database.
- username: (string) Username to connect to database. May be ignored depending on driver.
- password: (string) Password to connect to database. May be ignored depending on driver.
- isolation: (one of SERIALIZABLE, . ) Generally leave this alone unless advised otherwise.
- driver: (string, JDBC class name) The JDBC driver class that should be used. See the documentation for your database’s Java driver for this value.
- url: (string, JDBC database URL) The URL to connect to the database. For MySQL/PostgreSQL or other server-client databases, this will generally include the hostname, port and database name. For file-based databases, such as SQLite, this will usually include the filename.
The following are examples of what each configuration would look like for the two most commonly used database applications.
SQLite Configuration (default):
Note: the
MySQL Configuration example:
Note:
*OPTIONAL* worlds
This section lets you define the generators for the worlds that bukkit loads by default.
Источник