How much time have you spent optimizing your 1.17 Minecraft Server? Running 1.17 is harder than running 1.16, so you need to get all the optimization you can! Right here is a quick guide to the things you might’ve missed while optimizing!
Obviously, our first recommendation has to be using Airplane! Airplane provides performance improvements to mobs, chunks, and players as well as excellent support. You can find downloads here and get off the ground quickly just by replacing your spigot/paper.jar with Airplane.
The right flags will make a huge improvement to your 1.17 server, which is why we wrote an entire article on it! Garbage Collection can cause lag spikes right in the middle of PVP, or mining, or events that cause the entire server to freeze while the garbage is cleaned up.
The tool found here will automatically generate the flags you need to maximize your 1.17 server’s performance, all based on your server JAR and memory amount! If you haven’t taken the time to find the flags that you need to optimize your 1.17 Minecraft server’s performance, it takes only 2 seconds to get completely customized flags.
Chunk generation is EXPENSIVE. The server takes a lot of time generating chunks, more time generating light, and then finally more time loading the chunk. By pregenerating your chunks you can improve performance on your 1.17 server without losing anything.
The steps are pretty simple with Chunky:
/chunky radius <size>
/chunky worldborder
(this is optional, but prevents players from generating new chunks as they explore further)/chunky start
This may take some time depending on your radius, but that’s it! No longer will you have to worry about chunk generating causing your 1.17 server to lag.
There’s one setting in paper.yml
called hopper.disable-move-event
that disables hoppers from calling an expensive inventory event that a lot of plugins listen to.
Due to this event being called so many times with a large number of hoppers, plugins that are even slightly unoptimized will make a large dent in the server performance.
To change it, just set it like so:
hopper: disable-move-event: true
Then any plugins that listen to Inventory Move Events (such as shop plugins, or region protectors) will no longer lag the server listening to hopper events!
In bukkit.yml
you can change how often mobs are spawned, and how many it tries to spawn.
To learn more about these values, check out our article here about it!
Paper 1.17 further improves this by allowing you to make mob spawns per player!
This will make the number of mobs on the server look more normal to players while keeping the number of entities around each player the same.
You can enable this in paper.yml
by making the following change:
per-player-mob-spawns: true
Then in your bukkit.yml
, some reasonable spawn limits would look like this:
spawn-limits: monsters: 15 animals: 10 water-animals: 4 water-ambient: 5 ambient: 1
However, if you’re already running 1.17 Airplane then the natural mob count won’t impact your performance as much, so you can always raise these values if you need more mobs.
Some reasonable spawn rates in bukkit.yml
would then look like:
ticks-per: animal-spawns: 400 monster-spawns: 10 water-spawns: 40 water-ambient-spawns: 20 ambient-spawns: 80
Once you’ve done that, your server should feel nearly the same, but spend much less time on mob spawning and ticking!
One feature of Paper 1.17 is the ability to have no-tick
chunks, basically chunks the player can use but don’t have entities or get ticked!
This feature is really easy to use all you have to do is set the view-distance you want to be ticked in server.properties
:
view-distance=4
Then inside paper.yml
set the view-distance you want players to see:
no-tick-view-distance: 8
You’re all done! Now players will see 8 chunks, but only 4 chunks will be ticked. Only 81 chunks will be ticked, but the player can see a huge 289 chunks!
Eigancraft Redstone is a reimplementation of the Redstone algorithm that is provided in Paper 1.17. It makes Redstone nearly 10x faster than Vanilla without changing anything!
All you have to do to optimize your Redstone is enable Eigancraft in paper.yml
:
use-faster-eigencraft-redstone: true
If you’re not using Eigancraft Redstone, you’re leaving performance on the table for a survival Minecraft server.
Using the free Insights plugin you can limit how many of certain blocks can be placed in a chunk/area.
For this example limit, it limits players to a total of 64 blocks listed in the materials section:
limit: type: "GROUP" bypass-permission: "insights.bypass.limit.redstone" name: "Redstone" limit: 64 materials: - "REDSTONE_WIRE" - "REDSTONE_BLOCK" - "HOPPER" - "DISPENSER" - "DROPPER" - "TRIPWIRE_HOOK" - "REDSTONE_LAMP" - "STICKY_PISTON" - "PISTON" - "REDSTONE_TORCH" - "TNT" - "NOTE_BLOCK" - "LEVER" - "REPEATER" - "COMPARATOR"
With this plugin, you can reasonably limit large farms without impacting the 1.17 experience too much!
This one might be obvious, but with the recent improvements to CPUs’ IPC, it makes sense that servers with these newer chips will run Minecraft faster. The top of the line option would be the 5950x, which has a 188 €/month price at Hetzner. The 5950x could easily run 6+ servers at the best possible performance, or just 1 really fast one.
If you’re currently on a VPS (shared server) or not using an SSD, upgrading to a dedicated server with an NVME will improve your performance a lot. Both the 1.17 Minecraft server and especially plugins will make reads to the disk on the main thread, causing lag when the server is running. If you’re spending a lot of time optimizing, consider seeing if the value in a faster server is worth it!
For the number one spot, I have to put learning to read Spark. Spark is a free plugin that you can find here. which will tell you what your 1.17 server is spending its precious CPU time doing.
You can use it just by doing the following:
/spark sampler
/spark sampler --stop
It will then give you a link to the profile, which is represented as a tree. Under “Server thread”, you can see all the code that’s being run to make the server work. Expanding branches will show the top users of your tick, which the most expensive stuff listed at the time.
Taking the time to figure out where performance is spent is the most important tool because nothing else (especially timings) will show you where your performance issues lie.
You’ve now optimized your 1.17 Minecraft server! If you need more performance, take a look at those Sparks to figure out what all the time is being spent on. However, if you’d like someone from our team of experts to take a look, join our Discord and our support team will be able to help you out!
Legal Stuff