It’s time for part 4 in our Cloudlinux series. Read part 1, part 2 & part 3.
In previous posts we explained why we use Cloudlinux on our shared hosting service, showed wordpress users on our shared hosting how to easily reduce resource usage and speed up their site with the LSCache plugin and also discussed what resources are being limited.
If you are hitting the Cloudlinux limits, your first thought may be to upgrade. But that is not always needed. We implemented Cloudlinux years ago in order to improve stability and security, not to try and squeeze an upgrade out of clients.
The majority of Cloudlinux issues we see stem from clients running a PHP/MYSQL driven website without a cache plugin/module. Which is why we decided to throw up part 2 of this series right away as that simple step resolves the majority of issues. Seriously, ensure you have a cache plugin installed! Here is a quick walk through on installing LSCache plugin for WordPress.
But sometimes you have a cache plugin and yet you are still hitting the limits without an increase in real website visitors. In these cases you should investigate for any abuse of your site.
So in this post we’ll walk you through tracking down and possibly share a few tricks to reduce your resource consumption.
First thing we should mention is that if your website is currently being limited with the dreaded “508 resource usage” error from Cloudlinux, it can be hard to access cPanel. We’ll need to access cPanel for this post so an easy work around for our clients is to login to your my.ezp.net account, click on the menu item Services, My Services and then select the hosting account you are having issues with. You’ll see the product details screen for that account and it has a handy link to cPanel on the left hand menu. This link will work when your account is being limited by Cloudlinux.
Most often however, you’ll have just received the “Hosting account resources exceeded” email but are not seeing any problems currently and so you can login to cPanel just fine.
Once logged into cPanel, the first thing you want to do is scroll down until you see the “Metrics” menu. Select “CPU and Concurrent Connection Usage”. If your site has been limited, you’ll see a screen with the bold heading “Your site has been limited within the past 24 hours”. It’ll look something like this:
You have the option to look at the “Details” or the “Snapshots”.
First I suggest the snapshots. These show you a list of what processes were running around the time that your account hit a resource limit. This can be very useful in figuring out what site on your account is the culprit if you are running multiple websites under your account. Often times it will show exactly what is causing the problem. Here is an example of what the snapshots show you:
But if that is not enough information to point you in the right direction, there is more we can look at to try and resolve the problem.
If you go back and look at the details link, the most useful take away from these graphs is the time of the resource limit faults. You can simply hover your mouse over the graphs at the time of your fault and see the exact time it occurred. For example:
From there, you can go back to cPanel, go to the “Metrics” section and click the “Errors” icon. This will show you a list of the last 300 errors. Often, the problem is quite obvious here – a plugin that requires some attention or needs to be replaced, or some custom code breaking, etc.
If there is nothing telling in the error logs, you can go back to the “Metrics” section and click on the “Visitors” icon. This will show you the webserver logs in an easy to read format. Valuable information is here. What you should do is cross reference the time when your account reached the resource limit and generated a fault to the timestamps in the logs and look for a pattern.
Some things to look for:
Often you can resolve the resources issue once you can see the pattern of misuse on the site from the logs.
But perhaps you don’t see a pattern of misuse. What do you do? Well, before you push that “Upgrade” link in my.ezp.net, you should do a few things first:
1) Install a cache plugin! It may be a bit repetitive, but so many people build amazingly beautiful websites and yet they forget to implement cache. Caching delivers faster websites, which consume less server resources and make your website visitors happier.
2) Ensure your website software (WordPress, Joomla, Drupal, etc.) is up to date. Newer versions of software are typically shipped with performance enhancements.
3) Review your site to improve performance and page loads. Open your site up in Chrome Developer Tools (open up a chrome browser, press “ctl + shift + i”, type your website url into the address bar and hit enter) and review the network tab. Are there any 404’s you should fix? Do you see any requests to a third party that are taking much longer than the rest to load? If so, investigate those.
Also run your site through a third party tool such as http://www.webpagetest.org. These can be eye opening. Often a simple thing has been overlooked, such as browser cache.
4) Consider implementing a CDN. A CDN will reduce the workload of your account by offloading some content delivery to your visitors. Cloudflare is free. Sucuri offers a CDN in addition to their WAF and DDOS protection. Submit a ticket for more info or just sign up.
If you have gone through all these steps and are still hitting Cloudlinux resource limits, then perhaps you really should be upgrading the account.