Quick answer: Run htop and sort by CPU to find the hungry process, check load average with uptime (sustained load above your vCPU count = saturation), then decide: fix the process (runaway script, crypto-miner malware, busy cron), tune the app, or upgrade the plan.
Overview
High CPU has three usual roots: a legitimate workload that has outgrown the plan, a misbehaving process (loops, stuck jobs), or malware. The diagnosis path is the same — find who uses CPU, then why.
Before you start
- SSH access; if the server is too loaded for SSH, use the KVM Console from the service page.
htopandsysstatinstalled (see checking resource usage).
Step-by-step guide
- Measure:
Load average vs vCPU count: on a 4-vCPU VPS a load of 4.0 means fully busy, 8.0 means heavily queued.uptime htop - Identify the top consumers:
ps aux --sort=-%cpu | head -10 - Interpret:
- Web/PHP/db processes under real traffic → workload growth: tune caching or upgrade (Power VPS suits CPU-heavy apps).
- Unknown process names, odd paths (/tmp, /dev/shm), 100% CPU constantly → possible miner/malware: investigate immediately, consider a clean reinstall.
- A stuck script or backup job → kill and fix:
kill -9 PID.
- Check history (was it a spike or constant?):
sar -u 5 12 # from sysstat, recent CPU samples - Check for I/O wait masquerading as load: high
waintopmeans the disk, not the CPU, is the bottleneck — seeiostat -xz 5.
Common issues
- Server so loaded SSH fails? Use the KVM Console, or reboot from the Client Area and investigate right after boot.
- Load high, CPU% low? Disk I/O wait or too many processes in queue — the fix is different (faster disk, e.g. NVMe VPS plans).
- Nightly spikes? Usually cron jobs/backups colliding — spread their schedule.
When to contact support
If CPU steal time (st in top) is consistently high, or load is high with no process explaining it, open a support ticket with htop/sar output — we'll check the platform side.
Frequently asked questions
What load average means overload?
A load average that stays above the number of vCPUs means processes are queuing for CPU time. Short spikes during peaks are normal; sustained queuing means you should investigate or upgrade.
How do I spot a crypto-miner?
An unfamiliar process at constant 100% CPU, often started from /tmp or /dev/shm. Treat the server as compromised and prefer a clean reinstall.
Load is high but CPU% is low — how?
Processes are stuck waiting for disk I/O. Check iostat; a faster NVMe-based plan or query tuning is the fix, not more CPU.
Related articles
- How to check VPS CPU, RAM and disk usage
- How to troubleshoot high RAM usage
- How to install basic server monitoring
- How to upgrade VPS resources
Need a hand? Contact Cloud2Y support →
