The best optimization for your family (or Personal) Minecraft server

If you run a small “family and friends” Minecraft server, you might still be cursing the 1.14 update.

With that update, my old box that used to run a 1.12 and 1.13 server just fine was suddenly struggling. The server “can’t keep up” and would quickly crash when the tick interval grew too large.

I tried all sorts of Java optimizations, increasing the RAM Java could use, using JDK instead of JRE, and trying both Java 8 and 11. (Note: As of this writing, the Technic launcher does NOT like Java 11.)

I tried them all, and none of them were sufficient to get it running well.

Until I tried putting the world on a RAM disk.

It is currently working a LOT better (not perfect, but better – one core is completely slammed) using half the RAM I allocated to it during my testing. It’s using just a simple three gigs and a 512 megabyte RAM disk which holds (only) the world directory… far less than I was giving it before, and with a lot of RAM left over on the machine.

I have it backing up every twenty minutes (I use cp, but others have written guides using rsync instead) and a full-on compressed backup once a day in a cron job, so if it crashes I’m not losing much data at all. I’ve been testing it for a few days while waiting for the server I normally play on to upgrade, and it’s been running pretty smoothly.

It’s also not on a dedicated system – my video stuff is also on that box – but the graphics card seems to pick up most of that load.

So if you’re running a small server – or if you are running SSP and your computer has RAM but is choking after the update – for a few friends and are having problems, quit screwing around with Java variables and put the /world on a RAMdisk. Guides for all operating systems are here and a streamlined Linux guide is here. If you’re feeling very squirrely, you can put the whole thing in a RAMdisk, as outlined here.

You can see the full scripts I use (I’m putting the whole install on a RAMdisk at this point, because why not?) at https://github.com/uriel1998/minecraft-server-scripts. The commandline I use to launch the server (I’m using Fabric and Oracle Java JDK) is:

java -server -Xms3G -Xmx3G -XX:ParallelGCThreads=2 -jar fabric-server-launch.jar nogui --forceUpgrade

Featured Photo by Nina PhotoLab on Unsplash