Linode graphs show 100% CPU usage for my Minecraft server, but top shows low CPU usage. Which one is right?
To answer your question: in this case, you should trust the output of commands such as
There's currently a known bug that occurs when running version 1.14 or newer of Minecraft that seems to always max out 1 CPU from the Linode's host's perspective. This causes external measurements of CPU usage to read as having a constantly baseline of 100%. More info about this bug in general can be reviewed on the Minecraft Issue Tracker by following this link. While it's not clear if the issue is with Minecraft or Java (which Minecraft runs on), what we do know is that when customers check
top to see what's eating up all their CPU resources, they often find that they're not using anywhere close to 100% of their CPU.
The discrepancy in measurements appears to stem in the difference between how the graphs poll data and how programs such as
top poll data: while
top has direct access to system information, the graphs for your Linode are displaying the average utilization from the host's perspective over several minutes. As providing more granular utilization information would require a daemon to be running on your Linode which reports back to us, we do not intend to implement such a feature out of concern for our customers' privacy.
Just to clarify, the 100% utilization being displayed is noting that 100% of 1 CPU on your Linode is (apparently) being used. If you were running Minecraft on a Linode with 2 CPU's, you would still see 100% utilization, but your max would instead be 200%.
At time of writing, the only way to circumvent this issue is to run version 1.13 of Minecraft on your Linode. We actually have a handy docs page on this subject, titled How to Set Up a Minecraft Server on Ubuntu or Debian. If you want to stay on version 1.14, as long as
top continues to show under 100% CPU utilization, you should be good to go!