Skip to main content
Linux Troubleshooting — The Complete Guide

Linux Troubleshooting — The Complete Guide

KU
• 4 min read•Updated •22 views

When a Linux box misbehaves, the same dozen problems come up again and again. This is the map: what each symptom means and the fast path to the fix.

Most Linux firefighting comes down to the same handful of symptoms: the box is slow, the disk is full, memory is gone, a service won't start, or something is "permission denied." Each has a cause you can pin down in minutes once you know which command to reach for. This guide is the map: for each common problem it says what the symptom actually means, the command that reveals the cause, and where the full fix lives.

Before diagnosing anything specific, four commands give you the lay of the land:

bash.bash
uptime                 # load average over 1, 5, 15 minutes
free -h                # memory and swap, human-readable
df -h                  # disk usage per filesystem
journalctl -p err -b   # errors since the last boot

Those four answer "is it CPU, memory, disk, or a service?" faster than anything else.

"The box is slow"

"It's out of memory"

"The disk is full"

  • No space left on device: the classic trap is df showing full while du disagrees, usually a deleted-but-still-open file or exhausted inodes. Both are handled in disk full when df says otherwise.

"It won't open, bind, or start"

"The network is acting up"

Connectivity, DNS, and socket-level problems get their own deep dive with packet capture in Linux network debugging with tcpdump, ss, and eBPF.

The mental model

Almost every Linux problem sorts into one of four buckets: CPU/scheduling (load, high CPU), memory (usage, swap, OOM), storage (disk full, inodes, I/O), or a resource limit (file descriptors, ports, permissions). Naming the bucket from uptime, free, and df turns a vague "it's broken" into a short checklist. The tools rarely change from one distro to the next, which is why building these into reflexes pays off for years.

The call we'd make

Run the four orientation commands before you touch anything, because guessing wastes more time than measuring. Learn to read load versus CPU, RSS versus cache, and df versus du, since those three distinctions explain most false alarms. Each linked guide is the fast path for one specific symptom. Linux is not mysterious once you know where it keeps the evidence: the logs, /proc, and a dozen commands tell you exactly what happened, every time.

Explore topics:LinuxDevOps
React
Share this post
KU

Kiril Urbonas

AI Engineer

553 articles
View all articles by Kiril Urbonas

You might have missed

Evergreen posts worth revisiting.