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 2017, with 32GB of RAM and SSD Harddisks. Detailed specs are: Intel® Xeon® E3-1270 v6, 4 Cores (HT) x 3.8 Ghz 32DDR4 ECC
  • I restart the server completely every 24 hours
  • I try to setup rules that users should follow to reduce lag
  • I basically upgrade to a new system every 2 years – which is costing me 1-2 additional months rent for the server – and a lot of work.

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.
  • Differentiate between low TPS and FPS: FPS is frames per second and caused by your graphics card being not able to render the environment fast enough. This is caused by large areas with transparent blocks. If you look down to a solid ground or build a box around yourself and the problem improves, it’s not the server which is a problem, it’s your computer not being powerful enough for the environment. The server is only slow when you use the /tps command and see a number below 17.
    Also see this post on how to reduce FPS lag.
  • 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.

What you HAVE to do to reduce lag:

  • Do not create areas with large Lava flow. If you build in the nether, make sure that lava is smooth and flat. If you mine in and around lava, replace it with blocks so that it does not flow. See this post for more info.
  • 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 automated kill farms: If you have a mob farm where mobs automatically are killed, there needs to be a switch that can disable mob spawning/killing. The killing method here does not matter (falling, fire, overcrowding). It has to be able to be disabled and when you are not there, it should not operate. If other people than the lot owner goes to the lot, they have to switch it on to operate it.
  • Do not build automated farms such as observer-based cane farms – unless you can switch them off.
  • Do not cover large areas with slabs: Those cause spawn-attempts that are then cancelled
  • Do not cover large ice areas with candles/fire: The ice melts and re-freezes permanently
  • 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.