Understanding Server LoadsWritten by Tim Sisson
Why We Monitor Servers
InMotion Hosting’s system administrators monitor our servers 24 hours a day 7 days a week to ensure the health of all of our servers being used by our customers. This is to ensure the best quality of service for each customer and overall health of the server.
Think of it this way:
- When you live in an apartment with roommates and one uses all the hot water, everyone else has to take a cold shower.
In a shared environment where all customers on the server share and utilize system resources, a customer that is over-using system resources can cause problems for other users on the server. These problems are embodied by slow loading sites, and sometimes even downtime.
What we look for when monitoring servers
Understanding CPU Load/ Usage
Many websites, like WordPress for example, run off of php. When your WordPress site is called by a user, the server executes WordPress’ php code and creates your web page. The CPU on the server executes the php code.
Load can be thought of as how hard the CPU is working to execute everyone’s php scripts. When we refer to high cpu / load average, what we mean is that the CPU is unable to keep up with all the requests it has to execute php scripts.
There are several reasons that the CPU cannot keep up with all of the requests. It may be that there are too many requests. For example, if you get a surge of web traffic to your site, the CPU is then going to need to process all of those php scripts. There are also cases in which the php code is not written efficiently. For example, figuring out what 7 + 2 equals is a lot faster than figuring out what 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1. If you have to count each “1”, it’s going to take more time than simply adding 7 + 2. Sometimes it’s a combination of both too many requests and inefficient code.
Think of your CPU usage like a lane of traffic on a bridge. If you are the bridge operator monitoring the traffic on the bridge sometimes you may see the traffic get backed up. It would be important to know how many cars are waiting at a particular time. If no cars are waiting the cars can cross the bridge quickly. But if the cars are backed up – then there’s a delay. This is a great analogy of what CPU load is. The “cars” are PHP scripts using a piece of CPU time or “crossing the bridge.” The cars waiting to cross the bridge are like other scripts waiting in line to use the CPU.
Understanding Memory Usage
Memory usage is a lot like reading a story in the newspaper and answering questions about it later. Once you’ve read the story, you have to retain that information in your head for later use when answering questions about it. PHP scripts work the same way. Certain information may be retained in memory for later use. This is great if the right information is being stored in memory.
Think about it this way, if we memorized our entire story we read, word for word and then the question we answered was only about the color of a car in the story. We wasted time and memory retaining the rest of the information. If your scripts store information that is not being used, it can cause excessive memory usage.
Data Transfer Usage
Data transfer is the amount of data your server uses. Normally this is tracked per month. Overall, it is the measure of how much data is going to and from your server to a person requesting information. At InMotion, we monitor data transfer our customers use so that we can keep an eye out for people who use too much, thereby pulling resources from other users. If we didn’t track data transfer usage, then a server slow-down could occur. This is also a reason why InMotion does not offer unmetered data transfer. Click here to read more about the cons of unmetered data transfer.