Server performance

I am doing all I can to keep the server at a good performance. There are some things I cannot control however. This includes you, as a user and the authors of the software that I am using. There is always a certain risk that poorly written software is causing massive lag. I want to tell you here what I am doing to reduce the lag, and what you can do to reduce it.

Sources of lag

The server is running on 15+ plugins and a so-called wrapper and the main minecraft software, interacting with the clients. All of these parts are in development, most of them in beta or even alpha development stage. Most of the lag can be fixed with a restart. So it is not that the server is having too little power or that there are too many users. But it is very hard to find out which plugin exactly, which type of construction, or which action by a user is causing lag. On top of it, old parts of the map are causing bugs that can be fixed by regenerating parts of the map which is done whenever a user vacates a lot.

What I am doing to reduce lag:

  • I have moved the server specifically for hosting minecraft to a new machine in the middle of 2014, with 32GB of RAM and SSD Harddisks.
  • I restart the server completely every 24 hours
  • I try to setup rules that users should follow to reduce lag
  • I have created a unique heatmap setup that allows us to better trace location where lag is generated

What you can do to reduce lag:

  • Get out of the city. The city has a lot of buildings that cause lag. The further away you are from heavy construction, the better it is.
  • Use the command /tps. This will show you three figures which should all be above 17. If they are below that, the server has a performance issue. If they are above that, the issue is either on the connection or on your PC.
  • Find out where the lag is coming from. Is it the server or your connection? If everyone on the server complains about lag, it can still be a connection issue, not a server issue. To find this out do a traceroute to the server. If there are entries in the list above 350ms, they are causing lag. Do it repeatedly during the lag. If several of the traceroutes show values above 350ms on a server ending on “secureserver.net”, please send me the complete reports by email. Then I can go to my provider and complain about their network being buggy.
  • Do not use containers for construction. Most commonly, do not use chests, furnaces or dispensers for floors etc.
  • Do not mass-mine forests/tree farms. The decaying leaves cause massive lag.
  • Do not build extra-large/complex redstone circuits. I cannot tell you how large “extra-large” is. If you plan to build something big, ask me to come and check on the lag created while it’s running. Anyhow, as per the rules nothing is allowed to have constant activity even while you are not there.
  • Do not build massive lava/water cascades. With massive I mean more than 10 blocks wide, sky to bedrock.
  • Do not build massive animal farms. Farm what you need. It’s not a competition.  Your ability to breed mobs is limited by the server in any event, but don’t make that an excuse to max out your headcount just because.
  • Do not build massive industrial-scale wheat/reed/potato/etc. farms. If your farm produces more than a single chest full of goods in a harvest, it is too much.

Safe vs. volatile storage

On this server, you can store items in different location:

  • Chests
  • Ender Chests
  • User inventory
  • Worlds (as blocks)
  • Deposit
  • Shop

The safest storage places are: Chests & Worlds, Deposits and Shops. Most likely to be damaged are your own inventory and enderchests since they are managed by a plugin. In case of a hard server crash & reboot, those plugins sometimes fail to write the data to the disk and the contents of the user inventory and/or enderchests might be lost. Since I cannot track changes in those inventories, there are no refunds possible. So please do not store all your important belonging in enderchests or carry them around with you. If you need to move stuff, do so in smaller sections to prevent a total loss in case of a crash.