VPS Is Slow: How to Diagnose
Short answerWhen a VPS feels slow, check CPU, RAM/swap, disk I/O, and network/bandwidth in that order. Identify the hot process or saturated resource, mitigate (restart/tune), then optimize or upgrade if usage stays high.
Overview
Use this guide when SSH/RDP works but everything feels laggy, websites time out, or services restart unexpectedly. VPSGrid plans are unmanaged — you tune workloads inside the guest OS. If the VPS is completely unreachable, see VPS Is Running but Website Is Down (web-only issues) or SSH/RDP/console recovery articles.
1) Confirm access and baseline
- Connect via SSH (Linux) or RDP (Windows), or use noVNC if remote login is sluggish
- Note when slowness started (deploy, cron, backup, traffic spike)
- Check client area status is Active
2) Quick resource checklist
| Resource | Linux checks | Windows checks | Common symptom |
|---|---|---|---|
| CPU | top, htop, uptime | Task Manager → Performance | SSH lag, high load average |
| RAM | free -h, swap usage | Task Manager → Memory | OOM kills, swapping, 502 errors |
| Disk I/O | iostat -x 1 5, df -h | Resource Monitor → Disk | Everything slow despite low CPU |
| Bandwidth | vnstat, interface counters | Task Manager → Ethernet | Slow downloads, rate limits |
3) Linux diagnosis commands
# CPU + memory snapshot
top -c
free -h
uptime
# Top CPU consumers
ps aux --sort=-%cpu | head -20
# Top memory consumers
ps aux --sort=-%mem | head -20
# Disk wait (needs sysstat on some images)
iostat -x 1 5
df -hLoad average should generally stay near or below your vCPU count for CPU-bound workloads. Sustained high %iowait often means disk saturation or a full filesystem.
4) Windows diagnosis
- Task Manager → Performance — CPU, memory, disk graphs
- Task Manager → Processes — sort by CPU or memory
- Resource Monitor — per-process CPU, disk, and network detail
- PowerShell:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 15
5) Common causes by symptom
- One process at 80–100% CPU: runaway app, cron job, build, or malware — investigate and restart/tune
- RAM near zero / heavy swap: reduce PHP-FPM workers, MySQL buffers, or add swap temporarily — Configure Swap on Linux
- Disk 100% full: clear logs, old backups, package cache — full disks cause broad slowness
- High disk I/O, normal CPU: database maintenance, backup job, or NVMe saturation
- Web timeouts only: may be app/backend — Website Shows 502 or 504 Error
6) Mitigate, then optimize or upgrade
- Restart the offending service (web server, database, app worker)
- Disable unused daemons/services
- Apply caching, query tuning, or reduce concurrency
- Schedule heavy jobs off-peak
- If usage stays high, upgrade the plan — How to Upgrade Your VPS Plan
Transfer limits vs port speed: Understanding Bandwidth and Transfer Limits.
7) When to open a ticket
Contact support if the VPS is Active, you rebooted, resource checks look normal, and slowness affects multiple unrelated services on the same account simultaneously (possible platform issue). Include service ID, primary IP, OS, and output from top/free -h/df -h or Task Manager screenshots.
Frequently Asked Questions
Is high CPU always bad?
Short spikes during builds or backups can be normal. Sustained high CPU with user-facing lag needs tuning or a larger plan.
Can disk slowness look like CPU problems?
Yes. High I/O wait makes the system feel hung even when CPU graphs look moderate. Check iostat and disk free space.
Should I add swap instead of upgrading RAM?
Swap helps short spikes only. Constant swapping means you need more RAM or fewer memory-hungry processes.
Related Articles
Need More Help?
Open a ticket at billing.vpsgrid.net with service ID, symptoms, and resource-check output.
Was this answer helpful?