bazmurphy / immersive-go-course

An immersive, introductory course to backend software engineering using go.
https://systems.codeyourfuture.io/
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

Sprint 2 - Study - Troubleshooting Primer #46

Open bazmurphy opened 7 months ago

bazmurphy commented 7 months ago

Troubleshooting Primer

https://systems.codeyourfuture.io/primers/troubleshooting/

Sections:

1. Troubleshooting Versus Debugging

2. General Troubleshooting Methods

3. Scenarios

4. Tools

5. Related Reading

Key Things To Learn

  1. The difference between troubleshooting and debugging
  2. General troubleshooting methods, including:
    • Defining the problem
    • Understanding the request path
    • Bisecting the problem space
    • Generating and proving/disproving hypotheses
  3. How to examine possible causes and test solutions
  4. The concept of bottlenecks and how they affect system performance
  5. The USE (Utilisation, Saturation, Errors) method for troubleshooting performance problems
  6. How to analyze real-world troubleshooting scenarios to understand the troubleshooting process and methods
  7. Familiarity with basic Linux tooling for troubleshooting, such as:
    • perf, strace, ltrace, top, htop, sar, netstat, lsof, kill, df, du, iotop, ps, pstree, /proc/ filesystem, dmesg, system logfiles, journalctl, cat, less, grep, sed, awk, jq
  8. Tools for debugging network or connectivity issues, such as:
    • dig (for DNS), traceroute, tcpdump and wireshark, netcat, curl
  9. How to use man pages for finding information and options for common Linux tools
  10. Basic understanding of eBPF (Extended Berkeley Packet Filter) and its role in observability tools