Sometimes your website on shared hosting may become very slow during seconds or pair of minutes. Or your visitors see errors when they visit your website. And you may not even notice that there’s something wrong, because after a short time your website is fine again. Such website instability can affect your business quite a bit. So, I’ve written this article to help you find out what may be wrong with your hosting activity and how to deal with it.
Intro
Your website on a shared hosting may appear to be fast most of the time. When you check your site performance via online services like tools.pingdom.com the speed may be fine. But at times it may slow down tremendously or even give out error instead of showing your great and useful content to your visitors. The tricky thing is that you don’t even notice it until this starts to happen often enough that you eventually stumble upon it
In many cases it may mean that your hosting is just not good and not stable. Perhaps it’s overcrowded (oversold) or not managed well. But in some cases your host is generally fine but you are simply close to exceeding your limits on your current hosting plan.
This article will help you to know whether you are close to exceeding the limits and if it’s time to upgrade the plan. Or whether it’s probably time to look for another host.
From a technical point of view, in this article I will mainly refer to CloudLinux OS which is used on many modern shared hosts. CloudLinux is a server operation system which allows to manage the shared resources among hosting accounts.
In other words, I get a compensation if you click on the links and make a purchase. It does not increase price for you anyway. All such links open in new window/tab; no software/program will be installed to your computer. (This is a standard notice required by affiliate programs terms.) Please note that I mention the products not as an advertisement, but as my recommendation.
Overview of the problem and solutions
The problem is that sometimes your website uses quite a bit server resources, but prorbaly not too much or not too frequently to trigger an alert on a hosting’s side. As a result, you don’t know about the problem. But your website speed suffers or your website becomes very slow or simply unavailable for short but frequent periods of time. And your hosting may be not aware of the performance issues.
Fully managed hosting like WP Engine (read my short review here) takes care of it with especial attention. And you are less likely to experience this kind of performance issues. WP Engine also has a solution based on New Relic that is specifically designed to monitor the performance.
Hosts with strict resource monitoring like SiteGround (read my short review here) also provides your website quite a good protection from such unexpected unstable speed and availability. (By the way, here’s my note on how this host handles traffic limitations.)
After all, in many cases it’s advantegeus to have an option to keep an eye on your website performance yourself.
Using special monitoring services like I use for my Monthly Hosting Performance Contest provides with a quite realisitc insight how your website performance is going on.
For example, here’s below a screenshot of the performance of one of my test websites that I monitor 7/24/365. This is uptime and the speed (full page load time) performance during a continuous hosting failures:
By the way, this host is not in my recommended list.
This kind of monitoring is a great and very convenient option. But it may be too expensive for some users.
That’s why having a free option to monitor your hosting account resource usage that I describe in this article is great. You can watch whether usage of CPU, RAM, Input/Output operations and processes are close to the limits. But not all shared hosts offer this free option. Read more on all of that below.
How you can monitor the server allocated resources for your account
You can monitor the usage of the resources on your hosting account using a special functionality which can available via your cPanel (or some other control panels). It’s called CPU and Concurrent Connection Usage.
Here are the screenshots I’ve taken from my A2Hosting account (this is one of the hosts I recommend, by the way):
After clicking “Details” you will see the following (you can click the image to enlarge):
The screenshot represents a normal state of all the metrics under a not-intensive load on A2Hosting Lite plan that I’m using for one of my websites.
By the way, if you notice some the limits are exceeded, then the following option can be useful for further analysis. Clicking “Snapshots” will bring you to the page where you can look what and when the recorded performance issues happened. You can see an example and some more information here.
You can see it all for free. But unfortunately, not all hosts offer or make this functionality available. I mention the reasons for that in the section below.
Now let’s see what each of the metrics shown on the screenshot above mean.
CPU Usage
If your hosting account (i.e. your website or websites) exceeds CPU usage that has been allocated for you, your website(s) will become very slow and can even time out. And then, when your website’s load decreases, your website may get back to normal again.
Technically, the hosting sets this limit in terms of percent of a single CPU core or as a fixed amount of Hz. And if you exceed 100% usage, it means that you loaded not the whole server, but only your CPU share is exceeded.
High CPU usage is just one of the reasons why you website may slowdown occasionally.
Usually peak CPU usage may last for a short period of time. Otherwise, it means that something is wrong. Hopefully, your website has become simply popular. If it’s not the case, then you need to analyze the cause of the higher CPU usage.
Virtual Memory Usage
Virtual memory is the memory allocated for processes which run run on your account. Usually this is a file that is stored on a disk.
Here’s a simple example of using virtual memory. When your website page gets opened it eats up some virtual memory. So, the more visitors are on your site and the more they are active,the more virtual memory will be consumed during this period of time. If your virtual memory limit is exceeded, then your visitors will get Out of Memory errors (HTTP 500 and 503 errors in the browser).
Another example is that you publish a huge post. And if it goes out of your physical memory, the virtual memory is used to finish the operation.
The reasons for exceeding virtual memory are similar to the reasons for high CPU usage. In short, the heavier your website is and the more visitors it currently has, the higher the virtual memory usage is.
Physical Memory Usage
Physical memory is usually several times less than virtual memory since it corresponds to actually used memory by end user processes.
Physical memory is a more important limitation compared to virtual memory. In other words, hosts with higher physical memory is a way more beneficial than hosts with fewer physical memory but higher virtual memory.
For example, some plugins consume a lot of physical memory. And hosts with little physical RAM simply make it impossible to use heavy themes or plugins. And of course, physical memory is an important metrics that limits the number of visitors your website can serve simultaneously.
In case of exceeding RAM, the browser gives out an error (HTTP 500 and 503 errors).
A practical note: Some hosts show you in cPanel the shared RAM which is allocated among many users, not the RAM dedicated just to you. Please note it and keep in mind that buying a shared host judging only by the advertised or allocated RAM (as well as other advertised resources) is wrong.
Input/Output Usage
This limit (KB/s) restricts how much data is written per second to the disk. If there are highly intensive disk writing processes running on your account (e.g. you are generating a backup) and you go over the limit, the running processes are postponed to get you back to the limit. In other words, it means that your website becomes slower until your I/O usage gets back within the allowed limit.
Here’s a short case from my experience:
One day on one of my websites I noticed that the website speed fluctuated quite a bit by suddenly slowing down for a short period of time. It happened rarely, and most of the time the website sped was good.
I quickly analyzed the IO Usage chart and I found out that IO Usage was close to the limit. And periodically it peaked out. By raising the IO Usage limit (i.e. upgrading the plan) the performance issues ended.
Input/Output Operations
This metric is similar to the precious one. But this one regards not the amount of data written to the disk, but the number of disk writing operations per second. This limit let a shared hosting to avoid situations when users abuse the server resources by running a lot of simultaneous processes that write to the disk.
You will not notice any performance issues until you exceed this limit. If you exceed the number of IO operations, the excessive processes will be postponed. It will result in slowing down the performance of your website.
Entry Processes (Concurrent Users)
This metrics is used by hosting to prevent DDoS attacks on a server by limiting the number of concurrent processes on a server.
By the way, this is not about concurrent visitors that you can have on your website. For example, when a visitor opens a page on your website a new entry process is registered. But after a very short time the process gets unregistered. So, even if many visitors will access your website simultaneously from a human point of view, technically it’s very unlikely that the entry processes will be increased more than by one at a single moment.
Not only page views initiate entry processes, but also other process (e.g. scheduled operations, aka cron jobs). Technically these are PHP, SSH or cron jobs.
If it happens that the limit number of entry processes is exceeded, then your website visitors will not be able to access your website (they will get HTTP 508 error in the browser, i.e. Resource Limit Reached error). When a nubmer of entry processes goes below the limit, your website will get back to normal.
Processes
This metrics is very similar to the above one, but includes any other processes. Comparing between these two metrics, the number of Entry Processes is more likely to be a bottle neck in case a website gets an error (HTTP 500 or 503 error).
Faults
If you see faults, then it’s time to check out what went wrong. Especially this matters if faults are frequent. In many cases the chart with faults chart represents exceeding limits presented on other charts. But in some cases you amy need to analyze it on a deeper level (e.g. logs). Probably contacting your hosting support is the best idea, at least as a starting point.
How the problem may look like
Here are some examples of issues that you can diagnose when monitoring the charts. I’ve taken these screehshots from my experience.
On the chart below the CPU usage is quite below the limits which is fine. But there are CPU faults which you can see as thin light green bars. From a visitor point of view this looks like a website is slow:
The same faults are displayed on the faults chart:
Here’s an example of using Input/Output Operations number above the limit. And at the moments of exceeding the limit the website slows down significantly. And after a short period time it is fine again:
Please note that if there are no issues displayed on the charts, it does not mean that there are no issues on the server or on your website. In other words, there can be issues with yourwebsite perfromance even if there are no issues on the charts. But if there are issues on the charts, there are issues on your website.
Possible reasons for your hosting account resources exhaustion and how to solve them
Here are the reasons of high usage of the server resources from an ordinary user’s point of view:
- You are using a lot of intensive cron jobs. In human terms it means that you use a software which runs scheduled task on a server which take too much resources. For example, it may happen if you use a backup plugin that backups your website too frequently, or if you have a large website. If backup plugin is the cause of the performance issues, I recommend using a less resource-intensive solution, e.g. an incremental backup service (you can read about backup solutions here).
- You use resource-consuming plugins which run in the backyard of your website. For example, such plugins can gather your visitors information writing logs etc. What you can do is to find out such plugins (for example, by deactivating the plugin one by one and analyzing the load on the charts), and either changing the settings to avoid intensive tasks or to replace/remove the plugin(s). By the way, some fully managed hosts like WP Engine don’t allow using heavy plugins (and have their own alternative solutions).
- You run very intensive processes on your hosting account. For example, you host media streaming on your website. Many shared hosts simply forbid in their terms of services to run highly intensive processes. Make sure you comply with the terms.
- You use a plugin which is extremely inefficient. You can find the heavy plugin(s) by deactivating your plugins one by one like in the previous case. And in general, I suggest using plugins only from the trusted resources or developers.
- You use a lot of plugins. It’s easy to get a huge collection of the plugin you use. This may affect really badly on your website performance especially with combination with significant traffic. That’s why it’s important to minimize the number of plugins without waiting till your website becomes a heavy monster.
- You use a bloated theme. Well, there are no many options you have in this case. Either change a theme, or choose a hosting with more allocated resources. By the way, here’s one of the experiments I’ve run with a heavy theme.
- You have a lot of visitors. On the one hand, it’s obviously a good thing. On the other hand, even the most affordable shared hosting plans should allow getting at least 10,000 visits per month. So, just make sure you don’t exceed the number of users that you are allowed to get. If you have less than this amount, then something else is wrong. By the way, using a caching solution may help you significantly decrease the load caused by the traffic.
- Web bots crawl your website too often. Whereas you should allow search engines to crawl your website to let them index and re-index your website, you are not really interested in other bots to access your website. Read this article for more information.
- Your website is under a DDoS attack. In some cases this situation is not easy to distinguish from a normal situation when you have a lot of visitors. Read more this article to know about DDoS attacks and how to protect from them.
- Your hosting is under a DDoS attack. The difference with the previous case is that you can’t do much about it. Either simply wait or change the host.
- Your hosting account or website has been hacked. And the malicious software loads the server CPU eating out your limits (here’s an example). You may suspect that it’s your case if you don’t use any heavy plugins or theme and you don’t have a lot of visitors. If you suspect this is your case if other reasons don’t apply. I suggest reading this article about website protection and this section particularly.
- You website gets a lot of comment spam. On a local level you can use a free Invisible Captcha plugin. On a more substantial level it’s advised to use a firewall (I use Sucuri WAF, you can read about it in my article about website security).
- There are technical or management problems on a hosting side. You can diagnose it if your website is very slow or gives out errors for no apparent reason. And hosting support can’t either do anything about it or can’t give you a hint where the problem comes from. Switching host is the best way to do in this case. As a practical solution, you can sign up for a new hosting, clone your website and see how it performs. No issues on a new hosting will mean that moving your site from your previous host is the right option.
Why not all hosts show you the resource monitoring option
Here are the most obvious reasons:
- The hosts don’t use the server software (CloudLinux OS) that mke it possible to get individual limits like this and you simply can’t see these stats.
- Installing other software to let users monitor the performance does not make sense for some hosts as the hosting technical support prefers to keep it private (for the support only).
- Looking at this stats may be resource intensive and hosts prefer not making it available for users.
- Other motives why hosts hide this information from users.
Please note that some hosts make a similar metrics available but not with the user interface described in this article. For example, SiteGround (the hosting I also recommend) offers its users 1H Sofware for free to see resources usage statistics. You can find it in your control panel:
Some more practical points
Monitoring resource usage is not a performance monitoring. In other words, the metrics described in this article do not show you whether you website is fast.
But they can show you whether your website has performance issues. If you can see there’s something wrong in CPU and Concurrent Connection Usage metrics, it’s a clear sign of performance issues on your hosting account.
Please note that these metrics can be fine, but your website can be slow or give out temporary errors anyway. This can be so in case of the issues on a hosting side which can not be monitored by CPU and Concurrent Connection Usage functionality.
That’s why third party monitoring services (like the one I use 24/7 all year round for my hosting contests can be a good option for watching for your website performance.
If you feel like analyzing your current issues with your website performance, then in addition to the information in this article you can look at P3 (Plugin Performance Profiler) plugin. However, it requires some diving into technical matters. Alternatively, a beginner user friendly hosting like SiteGround or fully managed host like WP Engine will let you avoid the technical hassle like that.
One of the things you need to remember is that allocated resoruces (CPU, RAM etc) is not the most solid metrcis you should pay attention to when choosing a hosting for better performance. I’ve encountered situations multipletimes when hosts with more resources perfrom way to bad compared to hosts with fewer allocated resources. This is all due to the whole server management. That’s why it’s advised to consider the hosts which have not only good performance but also earned love from clients. The hosts which simply advertise a lot of resources is a risky option.
Conclusion
Being able to monitor your hosting account performance is great. Although some hosts don’t allow doing it because of different reasons including making it a backend service thing, rather than something that is available for end users.
So, if this is too technical for you, then I can suggest using a fully managed hosting like WP Engine or LiquidWeb.
Anyway, hosts with enough server resources allocated for your account make it possible to run heavy WordPress theme with a lot of plugins (by the way, I’ve got a test for a heavy Avada theme on A2 Hosting here). Whereas on weaker hosts visitors get slow website or get errors, and WordPress administrators can’ use dashboard because it becomes unbelievably slow or simply times out.
At the same time buying a shared host judging only by the advertised or allocated resources is wrong because this is a shared hosting, not a dedicated server. The nature of a shared hosting is that many users share the same server resources regardless of what is allocated to your account.
However, with monitoring the allocated resources you can easier understand that something is going wrong or forecast a bad performance of you website.
After all, you need to keep in mind that hosts with equal allocated resources do not provide you with equal performance. If you are choosing a hosting, it would be wrong if you look only at the advertised resources. It’s much more important to look at practical hosting performance and hosting support capabilities. By the way, you are welcome to check out the hosts I recommend here.
BTW, I respect your privacy, and of course I don't send spam, affiliate offers or trade your emails. What I send is information that I consider useful.
Hey Michael,
Sound Good! Really this is very advanced thing I learn from blog. Most of the people are struggling on website speed.
I think it is enough guide to make a website as good perfomance.
Thanks for sharing the wonderful article man.
Actually this is not the guide to make website fast. It’s more like hints where to look at.
Anyway, I’m glad that it was helpful.
Hey Michael,
First of all immense thanks to you for declaring this post. I have one doubt about it. our self we can rebuild the system performance? like CPU, RAM, and IO please be informed of your suggestion kindly here I am waiting to moderate it. apart from that best compilation. Thank you.
Hi Sai,
If you have shared hosting, the no, you can not specify how much CPU RAM etc you want to have. Only if you go with a plan which offer more server resources (CPU/RAM etc calculated per user, which actually means simply less accounts per shared server).
And if you go with VPS or dedicated server, then you have a wider choice (or even you can customize how much you need server resources), and you can take as much CPU/RAM as you can afford it.
Hey Michael,
Thanks for such a great article, I am having trouble with my website speed, So I losing my visitors and returning visitors also. Really this article helpful for all.
Thanks for a detailed article man
Glad you found the article useful, Tricia. Feel free to ask any questions.
Hey Michael,
Very informative article. I have been using Siteground shared hosting for one year.
The usage of CPU time is much more important when selecting web hosting company.
Thanks for the helpful article.
You are welcome, Ajgori.
CPU management is indeed often the reason why the host is freaking slow.
Hi,
Nicely explained.
I’ve a question. I’ve shared hosting with 2 hosts. I’m hosting mid-to-high traffic wordpress sites (with cache plugin).
One Host configuration is:
AMD Ryzen 3900x 3.8 Ghz 12 core 24 Threads cpu.
Cloudlinux limits:
1Cpu
1gb RAM
1024 IOPS
25 MB/s IO
20 EP
100 total processes
The CPU load is 10 to 12 (on 24 thread cpu)
______
2nd Provider is:
Intel e3 1275v3 3.6 ghz 4 core 8 threads.
Cloudlinux limits:
1cpu
1gb ram
80 MB/s IO
15000 IOPS
220 EP
200 Total processes
But their cpu load is always beyond 10. (This is 8 thread cpu).
So which host is better ? Can you please advise me.
Jason, the truth is that server specifications have almost nothing to do with how fast or reliable your websites can be on a SHARED hosting. A host can put a lot of clients/websites on the same server, and however strong the server can be, your site can be slow there. Everything depends on a hosting policy how it distributes clients and how the hosts monitors and manages/allocates server resources.
I’d suggest using a uptime monitor service and full page load monitor to see how really well this or that hosting provider performs in your case at the moment.
RAM is the resource that temporarily stores that data and its command instructions, and then passes it along for computation or other purposes. RAM is the “middle man” for these processes because much of the data processing required to run a web site is highly repetitive, and RAM stores this repetitive data in a way that makes it possible to deliver it at very high speeds.
Yes, Addy. Thanks for your addition.
Great article, very informative stuff Michael. I am beginer in website development and i your article really helps me alot in understanding the facts that can cause the website performance down. This is my first time in your post. Thanks.
Hey Malik,
Glad that you liked the article. Feel free to let me know if you have any questions.
Sure, i’ll ask. Thanks
Thank you for such a great article!
You are welcome, Liam. Glad you liked it.
great article and information you mentioned on this article that is good. Thanks for the helpful article.
Hi Jina,
Glad that my article was helpful to you. Feel free to let me know if you have any questions.
Hey Michael,
Sure. Thanks!
Hey Michael,
Probably, I felt the technical terms mentioned are totally unfamiliar to me. As a blogger, I have not paid much attention to these factors. Thanks for letting me know and making me aware of such terms. Not upfront, but these are also the major deciding factors of a successful blog. Hope I am right.
Thanks a lot! Keep rocking!
Hi Sathish,
The technical terms mentioned in this article are quite essential. Feel free to ask me any questions if you feel puzzled.
statistic virtual memory usage problem in my website. now my website is erorr 503. please help me.
Sakhawat,
I suggest you contacting your hosting technical support.