Top and Htop Process Triage Checklist
top and htop help system admins see what is consuming CPU and memory in real time. They are essential for diagnosing slow servers, traffic spikes, runaway scripts, overloaded PHP workers, MySQL pressure and Docker workload problems.
Core principle
Resource usage becomes useful only when you connect a process to a service, user, workload and recent event.
Checklist
- Check load average.
- Check CPU usage.
- Check memory usage.
- Identify top CPU processes.
- Identify top memory processes.
- Map process names to services.
- Check process owner.
- Look for backup, import, crawler or cron jobs.
- Avoid killing processes until impact is understood.
- Document the resource bottleneck.
Reusable lesson
This applies to WordPress slowness, MySQL load, PHP-FPM overload, Docker containers, n8n jobs, crawlers, video rendering and automation workers.
When to Use This Checklist
Use this checklist when a VPS becomes slow, overloaded, unstable or shows high CPU or memory usage.
Required Tools
SSH access, top or htop, process list, service list, recent incident time
Before You Start
Do not kill the top process before understanding whether it is critical, temporary or safe to stop.
Structured Checklist Steps
- Check load average.
- Check CPU.
- Check RAM.
- Find CPU-heavy processes.
- Find memory-heavy processes.
- Map to services.
- Check process owner.
- Look for jobs.
- Avoid blind kill.
- Document bottleneck.
Verification Steps
- Top resource consumers are known.
- Process owner is identified.
- Service impact is understood.
- Root bottleneck is clearer.
- Next action is safe.
Rollback Plan
If stopping a process breaks production, restart the required service and investigate why the process consumed resources before stopping it again.
Common Mistakes
- Killing MySQL or PHP blindly.
- Ignoring process owner.
- Confusing short spikes with sustained load.
- Not checking cron jobs.
- Upgrading VPS before diagnosis.
Related Commands
top
htop
ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head
uptime
systemctl list-units --type=service --state=running