CPU load can have a hefty impact on the performance of your server. If you are under too much load, your server will grind to a halt, pages won’t load properly, and basic functions may not work. You can monitor your CPU load through your portal by looking at your Resource Graphs (you can find these by logging into your ServInt Portal, clicking on “Services”, and finding “Resource Graphs”). These graphs will present you a picture of how your server is using its CPU, but what exactly do they mean? And when should you get worried that your CPU usage may cause a problem?
Well, the first thing to do is look at your Cores Allocated, Cores Used, and Cores Guaranteed.
Cores Allocated shows the total number of CPU cores you can possibly use on your server; this includes your burst resources, so this number will not always be what you have access to. Cores Guaranteed shows what minimum number of cores will be; you will always have access to this number of cores. Unless you upgraded your server, these two numbers will be constant straight lines.
Cores Used will be what you are looking at to see your current load and how much you need to worry. For ease of use, we’ll pretend that your server has a 1 guaranteed core (we’ll explain later on how more or less cores affects things).
If your load is between 0.0 and 1.0, your CPU is processing the commands sent to it without any delay. A command is sent, it is processed, and the answer comes out. You can think of this like turning on the tap on your sink. If your CPU usage is under 1.0, the water is going down the drain as fast as it comes from the tap.
If the load goes over 1.0, that means there is some delay in the commands being processed. In this case, the sink would start to fill with water. If you have extra allocated cores, they may pick up the slack. If not, your server will begin to respond sluggishly. If it gets too high, the server will begin backing up. In essence, the sink will begin to overflow.
You don’t want your sever load to go over 1.0 and your sink to back up. If you get an occasional spike over 1.0, that is fine. Your burst CPUs can handle it. But when you’re consistently over 1.0, it’s an indication of a problem.
Ideally, you want your CPU load to stay around 0.7. If it is regularly higher, that means you should look into upgrading your solution. 0.7 does not give you very much leeway; if you suddenly receive a large amount of traffic, your server may fail you. Even if you do have burst resources available,
If your CPU load is significantly lower than 0.7 — say it sits around 0.2 or 0.3 constantly — you may be on a solution that is too large for you. Of course, this also allows you a fairly high amount of growth.
If your load is extremely high, say in the 3.0+ range, you essentially need to upgrade immediately. Not only is your server in danger of failing completely, you’re hogging resources.
Note that if you’re using the terminal on your server, you can use the command
uptime to look at your server’s CPU usage. It outputs three numbers, the 1, 5, and 15 minute load averages. You should normally look at the 5 or 15 minute load averages for your server. However, this program does not give you historic data like your resource graphs do, so it is less useful if you’re looking at your server during a non-peak time.
More or Less than 1.0 Cores
If you have more or less than 1.0 Guaranteed Cores, it is a simple matter to figure out what numbers you should watch out for. Simply multiple the above recommended numbers by the number of cores you have available.
For instance, if you have 2.5 Guaranteed Cores, a constant server load around 1.75 should make you think about upgrading.
Another way to think of it is that the above numbers are percentages. If you’re at 70% of your Guaranteed Cores consistently, you’ll want to think about upgrade. If you’re at 300%, you’re in urgent need of an upgrade.
Image by Dean Hochman.