A slow server is almost always short of one of four things: CPU, memory, disk or network. Diagnosing it means measuring which one before changing anything. The commands below are for a Linux VPS or server you manage yourself; if your website is on shared hosting, the server is ours to look after and your checklist is different.
On your own server, run uptime, top or htop, free -h, df -h and iostat -x 1 5 to see which resource is exhausted, find the process using it, and fix that one thing: a runaway process, a full disk, too little memory for PHP-FPM or the database, or missing caching. On Domain India shared hosting you can't run these tools; check your account's resource usage in the control panel and follow the slow-website guide instead.
Step-by-step checks and fixes for CPU, memory, disk, network, web server and database on your own server are in troubleshooting common performance issues. For a slow website on shared hosting, go to my website is slow.
1. Which guide applies to you?
| Your hosting | Can you run server commands? | Start here |
|---|---|---|
| Shared hosting (cPanel, DirectAdmin, Webuzo) | No, the server is managed by us | Resource usage in your panel, then the slow-website guide |
| Your own VPS or server | Yes, with root access | The quick health check below |
2. On your own server: a quick health check
Take a snapshot before you change anything:
nproc # number of CPU cores
uptime # load averages for 1, 5 and 15 minutes
top -c # press P to sort by CPU, M by memory (or use htop)
free -h # read the "available" column
df -h && df -i # disk space and inodes
iostat -x 1 5 # disk activity, from the sysstat package
journalctl -p err -b # errors since the last boot| What you see | Likely bottleneck |
|---|---|
| Load well above the number of cores, CPU near 100% | CPU: a busy or runaway process |
| Low available memory, swap in use, OOM kills in the kernel log | Memory: too many workers or a leaking app |
A filesystem at 90% or more, or high %util in iostat | Disk: space, logs or slow queries |
| CPU, memory and disk look fine but pages are slow | Network or the application itself |
3. The usual fixes
- CPU. Find the process with
ps aux --sort=-%cpu | head. Stop or fix what shouldn't be running, and check for malware if you don't recognise it. - Memory. Size PHP-FPM
pm.max_childrenand the database buffer pool to the RAM you actually have, and add a small swap file as a safety net. - Disk. Clear old logs and backups, rotate logs, and look for slow database queries behind high I/O. See MySQL performance optimization.
- Network. Tools such as
iftopandss -tnpshow who is using the bandwidth; block abusive bots and IPs at the firewall. - Application. Add page caching and OPcache, and remove heavy plugins.
The old advice to "enable the MySQL query cache" no longer applies: MySQL 8.0 removed it. For logs and failed services, see troubleshooting and managing cPanel and Linux server issues.
4. On shared hosting: what you can check
On shared hosting, your account has its own CPU, memory and process limits. When a site hits them, visitors see errors such as 508 "Resource Limit Is Reached", or 500 and 503.
- Check your resource usage.In cPanel, open the resource usage page to see whether your account is hitting its CPU, memory or process limits. See how to check your hosting resource usage.
- Find the slow pages.Test with a tool such as Google PageSpeed Insights, and on WordPress use the Query Monitor plugin to spot slow plugins and queries.
- Add caching.Our shared hosting runs Apache, so use WP Super Cache or W3 Total Cache on WordPress.
- Open a ticket if it looks like the server.If your usage is low and the site is still slow, tell us the URL and when it happens.
5. Where Domain India fits
Shared hosting keeps the server tuning with us, so you only look after your site. When a site needs its own resources and settings, a VPS gives you root access to run every check above; it is self-managed, so you handle updates, security and backups yourself.
- 1 vCPU
- 2 GB DDR4 RAM
- 64 GB NVMe SSD Storage
- 2 TB Monthly Bandwidth
How do I find what is slowing down my server?
Run uptime, top or htop, free -h, df -h and iostat -x to see whether CPU, memory, disk or network is exhausted, then find the process using that resource. Fix that one thing before changing anything else.
What is a normal load average?
Compare it with the number of CPU cores, which nproc shows. A load that stays above the core count means work is queuing. High load with low CPU use usually points to slow disk.
Can I run top or htop on shared hosting?
No. On shared hosting the server is managed by us and you can't run server tools. Check your account's resource usage in the control panel instead, and open a ticket if the server seems slow.
Why does my shared hosting site show a 508 error?
508 "Resource Limit Is Reached" means your account hit its limit on simultaneous processes. Speed up slow pages, add caching, and check your resource usage in the control panel.
Should I enable the MySQL query cache to speed up my server?
No. MySQL 8.0 removed the query cache, and MariaDB disables it by default. Fix slow queries with indexes and use page or application caching instead.
Ready to speed things up? Work through troubleshooting common performance issues on your own server, or my website is slow on shared hosting. If your site has outgrown shared hosting, compare VPS plans.
Tell us the URL, when it is slow and what you have already checked, and we will help you find the bottleneck.
Open a support ticket