Optimizing server.properties for a Minecraft Java Edition Server

The server.properties file is the main point of configuration in a vanilla Minecraft server. Here you can change how the server behaves. Some configuration options can affect the performance of the server, and if you are experiencing server lag you may want to check these out.

Here is the default server.properties file.

Performance-Heavy options

KeyDefault ValueRecommended ValueReasoning
view-distance103 (fast)
3-9 (medium)
This is the amount of chunks the server is allowed to render at once around each player. Higher values require more processing power. This is perhaps the single most important value to consider when attempting to increase server performance.
network-compression-threshold25664 (slow internet)
512 (slow CPU)
Networking packets below this number (in bytes) will be compressed. If you have a slow upload speed, decrease it. If you are lacking CPU power, increase it.
max-players205 (low)
10 (medium)
Change the maximum number of players able to log in at once with this option. Fewer players are easier to manage by the server.
max-tick-time60000-1This is the amount of time (in ms) that the server will wait after a freeze before crashing entirely. It may be best to disable this with -1 for a slower server.
max-world-size299999841000 = 2000×2000
4000 = 8000×8000
A server can better handle a smaller world.
player-idle-timeout05 (fast kick)
60 (slow kick)
This feature is disabled by default. When enabled, a player is kicked from the server if idle for X minutes.
generate-structurestruefalseIf you do not require structures like villages and strongholds, disable them with this option.
spawn-animalstruefalseIf you do not require animal spawning, disable it with this option.
spawn-monsterstruefalseIf you do not require monster spawning, disable it with this option.
spawn-npcstruefalseIf you do not require villager spawning, disable it with this option.
max-build-height256A multiple of 8 < 256You can decrease the maximum build height with this option. Less blocks per chunk means faster load times.

That’s about it. There isn’t too much you can do here, but it is worth understanding what you have available to you.

If you’d like to beef up your vanilla Minecraft server even more consider checking out PaperMC, a version that offers unparalleled performance and the ability to add plugins. I will be posting a guide to tweaking those configuration options soon.

I hope this helps!

Is My Computer Good Enough to Run a Minecraft Server?

Want to host a Minecraft server but are unsure of if your computer can handle it? The answer: It probably can!

Small Minecraft servers are fairly easy to run, especially if nothing else is running on that system. I’ve run MC servers on nothing more than a little $5.00 chip in the past. I’ve found that the biggest constraint is often your internet speed – Specifically your upload speed (Here’s a tutorial on getting a Minecraft server working with bad internet).

That said it is worth knowing just how much your computer can handle. Primarily, how many players can be on the server at once. This is hard to estimate because the behavior of players is very random. Some players might travel little, others might travel a lot and very fast. Some players may create entity farms which tend to consume a lot of processing power. Even with all of these variables we can use some tools to make an educated guess as to how many players your server can handle. Let’s get started!


Memory Use

One of the biggest factors we should consider when setting up a Minecraft server is the amount of memory, or RAM, that is in the system. Minecraft is very RAM-hungry, especially if you also have plugins or mods running on the server.

RAM usage scales fairly linearly with the amount of players online, the size of the world, and the amount of plugins or mods being used. This chart from Apex Minecraft Hosting is a good reference for most use cases:

RamPlayer Slots*World Size*Plugin/Mods*
1GBUp to 5Up to 5GB0
2GBUp to 10Up to 8GBUp to 10
3GBUp to 15Up to 10GBUp to 25
4GBUp to 25Up to 15GBUp to 40
5GBUp to 30Up to 20GBUp to 45
6GBUp to 40Up to 30GBUp to 50
8GBUp to 90Up to 60GB50+
10GB150+Up to 100GB50+
15GB150+150+ GB50+
Apex Minecraft Hosting plans

If you’re reading this article you likely have an older/weaker system with a small amount of memory. It will be very beneficial to add more memory for these purposes.

It is worth mentioning that not all RAM is made equal – Older DDR2 memory is much slower than newer DDR3 or DDR4. This is something you will probably not be able to change since your motherboard likely only supports one type.


Storage

The storage device(s) on your server can have a dramatic impact on game performance. These come in a few varieties:

  • Mechanical Hard Drives (HDD)
  • Solid-State Drives (SSD)
    • SATA solid-state drives
    • NVMe solid-state drives

Mechanical hard drives are the cheapest per gigabyte. They are also the slowest and most fragile as they rely on moving parts to operate.

Solid state drives have no moving parts and are by comparison much faster. NVMe SSDs are a relatively newer technology and are even faster. Both are more expensive than HDDs however.

I recommend running your Minecraft server on an SSD if possible. This will allow the machine to access data faster and provide a much smoother experience to players.


CPU Benchmarking

Benchmarking means to “evaluate or check (something) by comparison with a standard.” Here we will benchmark a computer to see how well the processor/CPU performs. Minecraft servers run exclusively on the CPU and perform better on CPUs with a fast core-clock (measured in GHz). They cannot typically take advantage of more than a couple cores. This is worth noting because traditional server-class CPUs like Intel Xeons are usually not preferred for this task as they have many cores but slower core-clocks.

For our testing I’ve chosen the benchmark integrated into 7-Zip as it can be used on both Windows and Linux. We will also use Stress, a Minecraft benchmarking plugin.

7-Zip

This benchmark will test the raw processing power of your computer. Close all other programs before running the test.

Windows

  • Download 7-Zip for Windows
  • Open the program GUI
  • Go to Tools -> Benchmark
  • Use the default dictionary size of 32MB.
  • Run the test with 1, 2, and 4 cores. After each test record the total rating in MIPS.

Linux (Ubuntu)

  • Install 7-Zip with this command:
sudo apt install p7zip-full
  • Run this command, replacing <cores> with 1, 2, then 4. After each test record the total rating in MIPS.
7z b -mmt<cores>

You should end up with data like this:

1 core: 4580 MIPS, 2 core: 10283 MIPS, 4 core: 19493 MIPS

Stress Plugin

I’ve created a Minecraft server specifically for the purpose of benchmarking. The world is empty, which should make the results of the Stress plugin more consistent. Download here:

Now we can start the server and benchmark.

  • Follow the directions in ___readme___.txt to set up the server
  • Connect to the server in-game
  • OP yourself with the console (op <player name>)
  • Run /stress test=chunkgen and record
  • Run /stress test=chunkload and record
  • Run /stress test=entity and record
  • Run /stress test=tps and record the entries under 10s

Your data should look something like this:

chunkgen:	min 2.5, avg 18.4, max 173.9, stdev 29.4
chunkload: 	2750.12ms
entity: 	min 0.5, avg 1.5, max 17.7, stdev 1.5
tps: 		min 0.3, avg 0.7. max 1.0, stdev 0.2

Comparing Data

Now that we have our benchmarking data, we can compare it to data I’ve collected from my own machines as well as data from the web.

My data:

AMD Ryzen 5 3600 6-Core Processor, 3600 Mhz, 6 Cores, 12 Logical Processors w/ 32GB RAM (Windows 10)
7zip:
	1 core: 4580 MIPS
	2 core: 10283 MIPS
	4 core: 19493 MIPS
Stress:
	chunkgen:	min 2.5, avg 18.4, max 173.9, stdev 29.4
	chunkload: 	2750.12ms
	entity: 	min 0.5, avg 1.5, max 17.7, stdev 1.5
	tps: 		min 0.3, avg 0.7. max 1.0, stdev 0.2

MC Server Performance: Exceptional
AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx, 2100 Mhz, 4 Cores, 8 Logical Processors w/ 12GB RAM (Windows 10)
7zip:
	1 core: 5086 MIPS
	2 core: 11088 MIPS
	4 core: 17906 MIPS
Stress:
	chunkgen:	min 3.3, avg 43.5, max 463.8, stdev 65.5
	chunkload: 	4686.09ms
	entity: 	min 1.2, avg 4.8, max 73.7, stdev 7.6
	tps: 		min 0.9, avg 1.2. max 1.7, stdev 0.2

MC Server Performance: Very Good

Other data:

7-Zip benchmark data from various CPUs


Optimization

Perhaps your machine can run a Minecraft server but you are worried that the experience won’t be very good. Not to worry! Here are some steps you can take to optimize the server:

I highly recommend checking out this tutorial on optimizing your server’s internet speed requirements as well.


Thanks for reading! Hopefully this article helped.