"My VPS feels slow" can have many root causes. This guide provides a systematic checklist to narrow down whether the bottleneck is CPU, memory, disk, network, or the application itself.
Step 1 — Check Overall Load
uptime
Compare the load average to your VPS's core count — sustained values above it confirm genuine resource pressure, not just perceived slowness.
Step 2 — Check CPU Usage
top
If a specific process dominates CPU, see How to Diagnose and Fix High CPU Usage on a VPS.
Step 3 — Check Memory Usage
free -h
Low available memory combined with active swap usage strongly suggests memory pressure is the bottleneck — see How to Diagnose and Fix Out of Memory (OOM) Errors.
Step 4 — Check Disk I/O
sudo apt install sysstat -y
iostat -x 2 5
High %util or await values indicate the disk itself is the bottleneck — see How to Fix High Disk I/O Wait Issues.
Step 5 — Check Disk Space
df -h
A nearly-full disk can degrade performance even before hitting 100%, particularly on some storage backends.
Step 6 — Check Network Latency
ping -c 10 8.8.8.8
High or inconsistent latency suggests a network-level issue rather than a server resource problem.
Step 7 — Check Database Performance
For MySQL/MariaDB, check the slow query log:
sudo tail -f /var/log/mysql/slow.log
See How to Tune MySQL/MariaDB Performance for a VPS if queries are consistently slow.
Step 8 — Check for Swap Thrashing
vmstat 1 5
High values in the si/so (swap in/out) columns indicate the server is actively swapping under pressure — a strong performance killer, distinct from simply having swap configured.
Step 9 — Check Web Server Response Time Directly
curl -w "Time: %{time_total}s\n" -o /dev/null -s https://yourdomain.com
Compare this to the time reported by your browser to determine whether the delay is server-side or elsewhere (DNS, CDN, client network).
Step 10 — Check for Too Many Services on One VPS
ps aux --sort=-%mem | head -15
Running a web server, database, and cache all on an undersized VPS is one of the most common root causes of chronic slowness — see How to Choose the Right VPS Plan for Your Workload.
Diagnostic Summary Table
| Symptom | Likely Bottleneck | Where to Look Next |
|---|---|---|
| High load, one process dominates CPU | CPU | How to Diagnose and Fix High CPU Usage on a VPS |
| Low available RAM, active swap | Memory | How to Diagnose and Fix Out of Memory (OOM) Errors |
| High iostat %util/await | Disk I/O | How to Fix High Disk I/O Wait Issues |
| Slow specific database queries | Database | How to Tune MySQL/MariaDB Performance for a VPS |
| Everything moderately slow, nothing maxed out | Undersized VPS for the workload | How to Choose the Right VPS Plan for Your Workload |
Related Articles
- How to Check VPS Resource Usage (CPU, RAM & Disk)
- How to Fix High Disk I/O Wait Issues
- How to Choose the Right VPS Plan for Your Workload
