Fixing Lag and TPS

Spigot has a lot of performance improvements disabled by default, as they often alter the server so it no longer replicates vanilla behavior. This guide is supposed to help you tweak the settings for optimal performance while understanding what you are actually changing. If you do not understand a setting I mention here, don't change it. If you are curious, reply to the thread (make sure to @Tag me) and ask me what it does. If you are still having issues with performance, take timings (2-5 minutes) and reply here, or make a new thread.

I'll list all the config values you can consider tuning to improve performance while doing my best to explain what the setting does and when you do/don't want to change it.

The guide is currently written for 1.9. Most options appear in 1.8 as well. If they don't, just go to the next option.

1. paper.yml

You will need Paper, a fork of Spigot, to have this file available. '''WARNING: Paper is an unofficial version of SpigotMC and not officially supported. It is slightly less stable, but cutting edge / fast. If you get issues while using Paper, they should be reported on Paper's issue tracker, not to SpigotMC. Additionally, linking to any Paper-related projects in replies to this thread is NOT allowed and will be removed / get the thread locked!  optimize-explosions''' Default: false Suggested: true

mob-spawner-tick-rate Default: 1 Suggested: 2 - 3

disable-chest-cat-detection Default: false Suggested: true

use-hopper-check Default: false Suggested: true

container-update-tick-rate Default: 1 Suggested: 3 - 4

queue-light-updates Default: false Suggested: true

fire-physics-event-for-redstone Default: true Suggested: false

grass-spread-tick-rate Default: 1 Suggested: 2 - 4

2. spigot.yml

late-bind Default: false Suggested: true

mob-spawn-range Default: 4 Suggested: 3

entity-activation-range Default: animals:32, monsters:32, misc:16 Suggested: animals:6, monsters:16, misc:2

hopper-transfer, hopper-check, hopper-amount Default: transfer:8, check:8, amount:1 Suggested: transfer:24, check:24, amount:3

max-entity-collisions Default: 8 Suggested: 1 - 2

merge-radius Default: item:2.5, exp:3.0 Suggested: item:3.5, exp:6.0

view-distance Default: 10 Suggested: 3 - 5

3. bukkit.yml

spawn-limits Default: monsters:70, animals:15, water-animals:5, ambient:15 Suggested: monsters:50, animals:10, water-animals:3, ambient:4

chunk-gc Default: period-in-ticks:600, load-threshold:0 Suggested: period-in-ticks:300, load-threshold:300

ticks-per.monster-spawns Default: 1 Suggested: 2 - 5

4. server.properties

network-compression-threshold Default: 256 Suggested (standalone server): 512 Suggested (behind local Waterfall/BungeeCord): -1