Performance & Resource Troubleshooting
What is it?
Performance troubleshooting finds which resource is the bottleneck — CPU, memory, disk I/O or network — using tools like top, free, iostat and vmstat, then ties it to the responsible process.
Why it matters
'The server is slow' has many causes; guessing wastes time and can make it worse. Isolating the actual bottleneck is what turns a vague complaint into a fixable problem.
Where you see it
`top` (CPU/mem per process), `free -h` (memory), `iostat` (disk), `vmstat` (swap/IO) — read together to localize the constraint.
What normal looks like
Load proportional to work, memory used but not swapping heavily, disk I/O not saturated — headroom on the constrained resource.
What suspicious looks like
One process pinning 100% CPU, constant swapping (memory exhausted), or iostat showing the disk at 100% utilization — each a distinct, fixable bottleneck.
How analysts investigate
Localize before acting: which resource is saturated (CPU/mem/disk/net), then which process owns it, then why — never change tuning before you know the bottleneck.
Common beginner mistakes
- Adding CPU when the real bottleneck is memory or disk I/O.
- Reading one tool (top) alone and missing an I/O or swap problem.
Find the bottleneck first
'server is slow' → localize the resource:
top → java pinning 100% CPU? (CPU-bound)
free → 0 free, swap climbing? (memory-bound)
iostat → %util 99 on sdb? (disk-bound)
attribute to the process, then find WHY — don't guess the fixQuick check
A box is slow; free shows swap climbing and 0 free memory. The bottleneck is...
A quick self-check — it doesn't affect your XP or progress.
Sign in to save your progress on the server.