Why are there limits in place?
Resource limits on shared servers are set and enforced with CloudLinux, which is commonly used by webhosts for additional security in partitioning user accounts from one another, and for preventing individual accounts from monopolizing the shared server’s resources.
As all users on the server are sharing resources with other shared hosting customers, it is vital to prevent high resource usage on individual accounts from causing degradation of service for others. Please keep in mind that limits set on the server are in excess of those outlined in the ‘Soft Limits’ section of our terms of service (https://tos.hostrocket.com/), so usage on an account would need to exceed what is allowed on the shared hosting package before it is limited by CloudLinux.
How Can I Tell What Limits Were Reached?
You can review the account's usage history in cPanel in CPU and Concurrent Connection Usage, under the Metrics section.
CPU Usage / Speed:
CPU usage shouldn't cause the '508 Resource Limits Reached' notice, but if the account exceeds the allotted CPU resources, the CPU speed for the account is throttled until the usage drops back below the limits, which may explain slow or inconsistent page load speeds. There are many things that could be contributing to CPU usage; a good place to start is with the Site Optimization resources, linked below.
Input/Output (Disk) Usage:
Input/Output, or read/write, usage would refer to reading and writing data from and to files. This also functions similarly to the Speed limit, where processes are slowed when the account reaches the I/O limit, and return to normal function when they drop back below the limit.
If the account reaches the limit for memory usage, new attempts by processes to allocate more memory will fail, likely causing 500 or 508 errors. Once the usage falls back below the limit, new requests can then be served. There are many things that could be contributing to Memory usage; a good place to start is with the Site Optimization resources, linked below.
Entry Processes would be simultaneously running processes, examples being cron jobs, SSH sessions, or HTTP(S) requests for CGI/PHP. This does not explicitly limit simultaneous visitors on the site(s), as those initial connections should complete nearly instantaneously. Reaching this limit typically indicates an issue with the application / site code, rather than a high volume of traffic (that is to say, a high volume of traffic may highlight an issue on the site that is otherwise not noticeable during periods of low traffic). If your account is consistently hitting Entry Process limits, you'll want to review the traffic on your pages and check for errors in your software's error_log files which may indicate processes failing or timing out.
How can this be avoided?
Ultimately, this notice would only occur if the account is using resources in excess of what is included in the shared hosting agreement, so the two paths to resolve this would be to reduce the resource usage to a level compatible with shared hosting, if possible, or explore options for upgrading to a package more in line with the requirements for the site(s).
In most cases, reaching resource limits can be prevented altogether by reducing the resource usage on the account through website optimization and reducing unnecessary traffic to the site(s).
If you’re seeing issues with resource limits on the hosting package, or slow response times, we highly recommend optimizing the site with the steps in the following article, in addition to reviewing further resources specific to the software you’re using for other helpful information:
Optimizing Your Site
Many instances where resource limits are reached tends to be with sites using WordPress; if this is the case, please refer to the following support article, which will cover the ensuing steps with a more WordPress-specific focus:
Optimizing WordPress Sites