Настройки производительности

Sponge предлагает несколько улучшений производительности и настройки, которые помогут вам без проблем запустить сервер даже при большой нагрузке.

Примечание

Хотя мы стараемся повысить производительность каждого сервера, ваш выигрыш в производительности зависит от вашей настройки. Понадобиться много тестов, чтобы настроить сервер Sponge максимально качественно!

Диапазон активации сущностей

Этот параметр изменит поведение загрузки объектов вокруг игроков. Уменьшение значения будет только загружать близкие объекты, в то время как его повышение будет загружать объекты, которые также находятся далеко от игрока. Для улучшения производительности серверов, особенно с высокими показателями объектов и игроков, можно понизить это значение.

Совет

Можно указать диапазон активации для каждой моба. Вы можете установить значение true для параметра auto-populate и Sponge затем добавит всех доступных мобов в список диапазона активации, рекомендуется отключить его после заполнения списка. Если вы добавляете новых мобов в игру, просто повторите процедуру и они также будут добавлены в список ниже.

entity-activation-range {
      # If enabled, newly discovered entities will be added to this config with
      # a default value.
      auto-populate=false

      # Default activation ranges used for all entities unless overidden.
      defaults {
          ambient=32
          aquatic=32
          creature=32
          misc=16
          monster=32
      }

Кэширование владельцев прирученных сущностей

Этот параметр будет кэшировать UUID владельцев приручаемых сущностей для сохранения постоянных запросов из наблюдателя данных.

optimizations {
    # Caches tameable entities owners to avoid constant lookups against data watchers. If mods cause issue, disable.
    cache-tameable-owners=true
    }

Слияние выброшенных предметов

Этот параметр будет предварительно обрабатывать и, возможно, объединять элементы, чтобы избежать появления дополнительных объектов, которые затем объединяются после появления.

optimizations {
    # If enabled, block item drops are pre-processed to avoid
    # having to spawn extra entities that will be merged post spawning.
    # Usually, Sponge is smart enough to determine when to attempt an item pre-merge
    # and when not to, however, in certain cases, some mods rely on items not being
    # pre-merged and actually spawned, in which case, the items will flow right through
    # without being merged.
    drops-pre-merge=true
    }

Патч освещения для игнорирования незагруженных чанков

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

optimizations {
      # This prevents chunks being loaded for getting light values at specific
      # block positions. May have side effects.
      ignore-unloaded-chunks-on-get-light=true
      }

Кэширование запросов чанков

Этот параметр позволяет включить внутреннее кэширование чанков Sponge для повышения производительности сервера. Для этого необходим небольшой дополнительный объем памяти для кэширования. Если у вас закончилась память, попробуйте отключить этот параметр.

optimizations {
      # Caches chunks internally for faster returns when querying at various
      # positions
      chunk-map-caching=true
      }

Проверка положения блока

Этот параметр позволяет проверить, действительно ли позиция блока возможна в мире.

optimizations{
      # Inlines a simple check for whether a BlockPosition is valid
      # in a world. By patching the check, the JVM can optimize the
      # method further while reducing the number of operations performed
      # for such a simple check. This may however break mods that alter
      # world heights and can thus be disabled in those cases.
      inline-block-position-checks=true
      }

Настройка интервала автоматического сохранения

Vanilla Minecraft по умолчанию сохраняет все чанки каждые 900 тиков (45 секунд). Если вы хотите увеличить или уменьшить этот интервал, измените его в файле global.conf:

world {
      # The auto-save tick interval used when saving global player data.
      # Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
      auto-player-save-interval=900

      # The auto-save tick interval used to save all loaded chunks in a world.
      # Set to 0 to disable. (Default: 900) Note: 20 ticks is equivalent to 1 second.
      auto-save-interval=900
      }

Сокращение этого интервала увеличивает нагрузку на процессор и память вашего сервера, но уменьшает потери данных, которые могут возникнуть при блокировке сервера или сбое питания. И наоборот, увеличение интервала автосохранения уменьшает нагрузку на оборудование, но за счет увеличения количества игрового прогресса, который может быть потерян в случае сбоя сервера.