Optimize Spigot Server TPS

Feb 26, 2017
Optimize Spigot Server TPS
  • Hello friends, today I am going to leave a guide to edit your spigot.yml and bukkit.yml of your server as I have done to optimize the consumption of TPS.

    This guide was tested on a server with the following specifications:
    8 GB of Ram
    Between 40 and 100 users daily
    11 worlds
    50 plugins
    This server is in a '' Survival '' mode which generated many entities

    I cannot assure you that it will optimize a %100
    Before always, the TPS fell between 14 and 8

    After doing the editing the TPS are between 18 and 19, between 16 and 14 sometimes

    Beginning of the guide:

    - Section 1: Spigot.yml

    - This is by default the spigot.yml
    # This is the main configuration file for Spigot.
    # As you can see, there's tons to configure. Some options may impact gameplay, so use
    # with caution, and make sure you know what each option does before configuring.
    # For a reference for any variable inside this file, check out the Spigot wiki at
    # http://www.spigotmc.org/wiki/spigot-configuration/
    # If you need help with the configuration or have any questions related to Spigot,
    # join us at the IRC or drop by our forums and leave a post.
    # IRC: #spigot @ irc.spi.gt ( http://www.spigotmc.org/pages/irc/ )
    # Forums: http://www.spigotmc.org/

    config-version: 8
    whitelist: You are not whitelisted on this server!
    unknown-command: Unknown command. Type "/help" for help.
    server-full: The server is full!
    outdated-client: Outdated client! Please use {0}
    outdated-server: Outdated server! I'm still on {0}
    restart: Server is restarting
    save-user-cache-on-stop-only: false
    bungeecord: false
    late-bind: false
    sample-count: 12
    player-shuffle: 0
    filter-creative-items: true
    user-cache-size: 1000
    int-cache-limit: 1024
    moved-wrongly-threshold: 0.0625
    moved-too-quickly-threshold: 100.0
    timeout-time: 60
    restart-on-crash: true
    restart-script: ./start.sh
    netty-threads: 4
    max: 2048.0
    max: 2048.0
    max: 2048.0
    debug: false
    tab-complete: 0
    log: true
    - /skill
    silent-commandblock-console: false
    - setblock
    - summon
    - testforblock
    - tellraw
    disable-saving: false
    forced-stats: {}
    verbose: true
    mob-spawn-range: 4
    enabled: true
    engine-mode: 1
    - 14
    - 15
    - 16
    - 21
    - 48
    - 49
    - 54
    - 56
    - 73
    - 74
    - 82
    - 129
    - 130
    - 1
    - 5
    nerf-spawner-mobs: false
    cactus-modifier: 100
    cane-modifier: 100
    melon-modifier: 100
    mushroom-modifier: 100
    pumpkin-modifier: 100
    sapling-modifier: 100
    wheat-modifier: 100
    netherwart-modifier: 100
    animals: 32
    monsters: 32
    misc: 16
    players: 48
    animals: 48
    monsters: 48
    misc: 32
    other: 64
    hopper-transfer: 8
    hopper-check: 8
    hopper-amount: 1
    random-light-updates: false
    save-structure-info: true
    max-bulk-chunks: 10
    max-entity-collisions: 8
    dragon-death-sound-radius: 0
    seed-village: 10387312
    seed-feature: 14357617
    walk-exhaustion: 0.2
    sprint-exhaustion: 0.8
    combat-exhaustion: 0.3
    regen-exhaustion: 3.0
    max-tnt-per-tick: 100
    tile: 50
    entity: 50
    item-despawn-rate: 6000
    item: 2.5
    exp: 3.0
    enable-zombie-pigmen-portal-spawns: true
    arrow-despawn-rate: 1200
    wither-spawn-sound-radius: 0
    view-distance: 10
    hanging-tick-frequency: 100
    zombie-aggressive-towards-villager: true
    chunks-per-tick: 650
    clear-tick-list: false

    - What I have edited and how I have edited it
    Line 92:
    What is it about: Controls how far away spawned mobs can be.
    We are going to lower how frequently and how many mobs can spawn, so lowering this will create the illusion we haven't lowered mob spawns.
    Default: 4
    I am using it in: 3
    Line 94, 95 and 96:
    What is it about: Entities outside these ranges will be ticked less frequently. Animals generally don't need much. "misc" is stuff like item drops. Setting it to 1 may prevent item drops from i.e. flowing in water.
    Default: animals:32 monsters:32 misc:16
    I am using it in: animals:6 monsters:24 misc:2
    Line 104, 105 and 106:
    What is it about: This will make hoppers tick three times slower, but move three items at a time. This can break some vanilla behavior, especially stuff like redstone clocks depending on hopper times. Can be a major player in hopper lag.
    Default: transfer:8 check:8 amount:1
    I am using it in: transfer:24 check:24 amount:3
    Line 110:
    What is it about: How many times an entity can collide with per tick. Setting this to 2 usually has no implications. Helps a lot with mob farms.
    Default: 8
    I am using it in: 2
    Line 126, 127 and 128:
    What is it about: The item merger is a powerful way to prevent item drop lag (no more ClearLag!). Setting the item property to 3.5 means items in a radius of 3.5 blocks will be "merged" into one stack of items. Exp has no real downside to merging at a high radius.
    Default: item:2.5 exp:3.0
    I am using it in: item:3.5 exp:6.0
    Line 131:
    What is it about: How many chunks are sent to the player.
    Default: 10
    I am using it in: 4

    - Section 2: Bukkit.yml

    - This is by default the spigot.yml
    # This is the main configuration file for Bukkit.
    # As you can see, there's actually not that much to configure without any plugins.
    # For a reference for any variable inside this file, check out the Bukkit Wiki at
    # http://wiki.bukkit.org/Bukkit.yml
    # If you need help on this file, feel free to join us on irc or leave a message
    # on the forums asking for advice.
    # IRC: #spigot @ irc.spi.gt
    # (If this means nothing to you, just go to http://www.spigotmc.org/pages/irc/ )
    # Forums: http://www.spigotmc.org/
    # Bug tracker: http://www.spigotmc.org/go/bugs

    allow-end: true
    warn-on-overload: true
    permissions-file: permissions.yml
    update-folder: update
    plugin-profiling: false
    connection-throttle: 4000
    query-plugins: true
    deprecated-verbose: default
    shutdown-message: Server closed
    monsters: 70
    animals: 15
    water-animals: 5
    ambient: 15
    period-in-ticks: 600
    load-threshold: 0
    animal-spawns: 400
    monster-spawns: 1
    autosave: 6000
    aliases: now-in-commands.yml
    username: bukkit
    isolation: SERIALIZABLE
    driver: org.sqlite.JDBC
    password: walrus
    url: jdbc:sqlite:{DIR}{NAME}.db

    - What I have edited and how I have edited it
    Line 25, 26, 27, 28 and 29:
    What is it about: These values are more complicated than just "allowed mobs per player", but they do something in that direction. Setting these lower will grant less maximum mobs spawning around players. The more players you have, the lower you can safely set this.
    Default: monsters:70 animals:15 water-animals:5 ambient:15
    I am using it in: monsters:65 animals:15 water-animals:3 ambient:4
    Line 30, 31 and 32:
    What is it about: This feature is disabled by default (load-threshold is zero) for no reason, as far as I can tell.
    This option will unload chunks that aren't needed (outside players' view distance), freeing up memory and potential CPU resources.
    Default: period-in-ticks:600 load-threshold:0
    I am using it in: period-in-ticks:300 load-threshold:300
    Line 35:
    What is it about: Controls how often the server should attempt spawning a hostile mob. This accounts for the entire server, not per-player. Setting this high will drastically lower the amount of monsters spawning. I generally recommend 2 unless a server has lots of lag coming from the mobSpawn function or just have too many monsters in general.
    Default: 1
    I am using it in: 2

    End of the guide :)

  • Loading...
  • Loading...