When a production server starts misbehaving — latency spikes, dropped requests, OOM kills — you don't have time to read man pages. You need a systematic approach that rules out the most common culprits in under a minute, then drills into the root cause with targeted tools. This is exactly how I debug Linux performance issues on production systems, and it works whether you're on a bare-metal box, a VM, or a container host.

This guide covers the full troubleshooting workflow. Here's what we'll walk through: the 60-second checklist (uptime, dmesg, vmstat, mpstat, pidstat, iostat, free, ss, sar), CPU hot-spot analysis with perf and flamegraphs, memory pressure including OOM and swap, disk I/O latency with iostat and blktrace, network troubleshooting with ss, tc, and tcpdump, and finally a decision tree to choose the right tool for any symptom.

1. The 60-Second Checklist

When you first SSH into a struggling box, run these commands in order. Each takes one look at a different subsystem. By the time you're done, you'll know which resource is the problem.

$ uptime # load averages — is the system under pressure?