🎯 About this course
You can already run a Linux server. This course teaches you to find out what is wrong with one, and why it is slow, without guessing. You learn a method (state the symptom, look wide, form one guess, change one thing with a way back, check) and then apply it to the faults that really happen: a load average that does not match the CPU graph, a process that eats a processor, a memory leak and the process the kernel ends, a disk that fills and space that will not come back, a disk that is slow, a service that will not start, a pause before every page, and a machine that does not boot. Behind the commands you learn where the numbers come from, how the kernel's managers share the machine, and how monitoring, capacity and runbooks keep the next fault small. Every exercise names who needs it and why, uses a simulated server, and ends with a check of the effective state rather than the command you meant to type.
By the end you will be able to
- Apply a troubleshooting method: state the symptom exactly, look wide first, form one guess, change one thing with a way back and check the result.
- Use /proc, the journal and the kernel log to read what the machine records, and use strace and lsof to follow one program.
- Analyse load, the run queue and the CPU states, and use priorities and signals to share the processors fairly.
- Evaluate memory, cache and swap, recognise a leak by sampling, and read the OOM killer's evidence.
- Use df, du, find and lsof to find what fills a disk and free space in the safest order, including space held by open files.
- Analyse a slow disk with iostat and iowait, and read and raise file-descriptor limits safely.
- Use dig, ping and curl to split a slow request into name lookup, connection and answer, and fix a dead resolver.
- Use systemctl and the journal to repair a service that will not start, and diagnose a boot problem with fstab, mount -a and systemctl --failed.