Ever wonder what keeps our servers running smoothly and how we ensure that server resources are fairly used and distributed between clients?
What is CloudLinux?
CloudLinux is a special kernel distribution (or Operating System) we run on our servers which is designed to allow us to allocate certain amounts of resources to accounts. Like disk space and bandwidth, we can also restrict the amount of CPU power and RAM each account can use, as well as other resources. It is the ability to set limits on these resources that allow us to ensure that no one account can consume more than their fair share and cause problems for other users on our servers.
Before CloudLinux, it was possible that one or two very busy websites could bring down an entire server – causing problems for potentially hundreds of people or more! In these situations it was not uncommon for hosting companies to simply suspend the problem accounts until the situation was resolved and traffic decreased. Fortunately this is no longer something we have to be concerned about.
You may have noticed that when you login to cPanel there is a bar on the right-hand side that contains lots of information about your account. Typically this shows you the amount of disk space you are using, as well as how much bandwidth you have used for that month so far and more. Some of these values belong specifically to CloudLinux and it’s these values we will look at in further detail.
This value represents how much of your allocated CPU resources you are currently using. The amount of CPU resources we provide to each account is a percentage of the servers resources. For example, we may provide up to 10% of the entire servers CPU resources to each account, depending on which type of package you have with us.
If this value reaches 100% then it means you are using all of the available CPU resources we have allocated to your account. It does not mean that the server is using 100% of its CPU usage. Once this value hits 100%, any additional processes that try to use the CPU are put to sleep and will have to wait until any previous processes have completed. This can cause your website to appear to slow down dramatically and may even time out in extreme cases.
Physical Memory Usage
This value represents how much memory (or RAM) your account is currently using. Every process created by your account will consume memory; so every PHP page that a user accesses, every mail connection you make and so on. Unlike CPU usage where we provide a percentage of the servers resources, we implement a fixed amount here.
If this value reaches 100%, or the advertised limit, you may begin to experience PHP errors (if applicable) on your website, or in very extreme cases may see a CloudLinux error page. These errors are typically only brief and once the usage has reduced to below the limit, will automatically clear.
Entry processes are the number of processes that enter your account. For example, every PHP page that is accessed by a user will usually generate a single entry process. Many people misinterpret this value as “number of visitors you can have on your website at once”. Whilst it is true that each visitor accessing a PHP page will spawn an entry process, these processes usually end so quickly that it is extremely unlikely that 10 will be spawned concurrently and at a single moment unless you had a significantly large number of simultaneous visitors on your website at once. SSH sessions and cron jobs also count towards entry processes.
If the limit for entry processes is met then further processes will be denied. If you are trying to access a PHP page you may receive a 508 (Resource Limit Reached) page.
Number Of Processes
This is very similar to the above but includes all processes generated by the account rather than the specific PHP, SSH or cron jobs. This number is typically very low, even under high activity, as non-PHP tasks execute and complete even more quickly.
This value represents how much I/O (or disk activity) your account is using. Any task which makes use of the servers disk drive (such as reading or writing to the server) will consume I/O. We limit the maximum disk speed of each account to ensure that no single account can saturate the disk drives which will reduce performance for everyone.
Reaching this limit will cause all processes to slow down (to within this limit) and take much longer to complete. Typically you won’t notice this setting ever increase unless you perform something disk intensive like generating a large backup on your account.
While we don’t at present have an inode limit, if we do introduce inode limits, the following information will apply: Every file and folder inside your account will count as 1 inode. We limit the maximum number of inodes to ensure that users try to use the best methods available for structuring their website content. The more files an account has, the longer it subsequently takes for our backups to run and this overall can impact performance of these tasks significantly.
If the inode limit is met, no further files or folders could be created on the account. This can actually be very serious and will result in the inability to receive e-mail and may even prevent your website from working if it needs to generate a cache or temporary files.