HomeDownloadsJoin Discord

Top 10 Things You Missed Optimizing Your Minecraft Survival Server (that work with 1.17)

By Paul
Published in Configuration
July 01, 2021
4 min read

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!

10. Use Airplane

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.

9. Tighten Up Your GC with Aikar Flags

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.

8. Pregenerate Your Chunks

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:

  1. Download Chunky from Chunky
  2. Set the desired size of the world with /chunky radius <size>
  3. Set a world border with /chunky worldborder (this is optional, but prevents players from generating new chunks as they explore further)
  4. Start generating chunks with /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.

7. Disable Hoppers Triggering Move Events

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!

6. Reduce the Frequency and Count of Mob Spawns

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!

5. Tune Your View-Distance with No-Tick

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!

4. Faster Redstone? Faster Redstone.

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.

3. Limit Block Entities like Hoppers

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!

2. Get a Better Server

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!

1. Learn How to Read Spark

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
  • Wait 3-5 minutes, or longer if possible.
  • /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.


Finished

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!


Tags

#airplane#optimization#configuration
Previous Article
Mojang Cutting Off Blacklisted Servers - Airplane Newsletter for March 2021

Paul

Lead Developer

Topics

Airplane
Configuration

Related Posts

Optimizing Your Minecraft Server with Aikar Java Flags
June 14, 2022
1 min
© Technove LLC 2022, All Rights Reserved.

Legal Stuff

Privacy NoticeCookie PolicyTerms Of Use

Social Media