บทเรียนที่ 1เมื่อไหร่ควร kill รีสตาร์ท หรือ throttle กระบวนการ: การ kill อย่างปลอดภัย systemctl restart และใช้ cgroups nice/reniceเข้าใจเมื่อไหร่ควร kill รีสตาร์ท หรือ throttle กระบวนการและวิธีทำอย่างปลอดภัย เรียนรู้ประเภท signal การ kill แบบปลอดภัย พฤติกรรม systemctl restart และการใช้ cgroups nice หรือ renice เพื่อจำกัดผลกระทบ
เลือก SIGTERM, SIGKILL, และอื่นๆใช้ kill และ pkill ด้วย safeguardsรีสตาร์ทบริการด้วย systemctlจำกัด CPU ด้วย nice และ reniceจำกัดทรัพยากรด้วย cgroupsบันทึกและ automate การแก้ไขบทเรียนที่ 2วิเคราะห์การใช้ swap และ OOM events: dmesg, kernel OOM killer logs, และ /var/log/kern.logตรวจสอบการใช้ swap และ Out Of Memory events โดยใช้ free, dmesg, kernel OOM logs, และ /var/log/kern.log เรียนรู้การจดจำ thrashing ปรับ swappiness และตัดสินใจเมื่อไหร่ควรเพิ่ม RAM หรือปรับ limits
ตรวจสอบการใช้ swap ด้วย free และ /procจดจำอาการ swap thrashingอ่าน dmesg สำหรับ OOM killer entriesแยกวิเคราะห์รายละเอียด /var/log/kern.logปรับ swappiness และ vm overcommitตัดสินใจเพิ่ม RAM หรือปรับ limitsบทเรียนที่ 3ระบุกระบวนการร้อน: ps, ps aux --sort, pgrep, pidstat และการแมป PID ไปยังบริการเรียนรู้การระบุกระบวนการร้อนหรือผิดปกติอย่างรวดเร็วโดยใช้ ps, pgrep, pidstat, และตัวเลือกการเรียงลำดับ แมป PID กลับไปยังบริการ units และ containers เพื่อเชื่อมโยงการใช้ทรัพยากรกับ components ที่รับผิดชอบ
เรียงลำดับ ps output ตาม CPU และหน่วยความจำใช้ pgrep และ pkill name filtersตรวจสอบ stats ต่อกระบวนการด้วย pidstatแมป PID ไปยัง systemd unitsเชื่อมโยง PID กับ containers หรือ cgroupsติดตามกระบวนการระยะสั้นแบบ burstyบทเรียนที่ 4ระบุการพุ่งขึ้นของทรัพยากรซ้ำๆ: ตรวจสอบ cron, systemd timers, at jobs, และ schedulers ของแอปพลิเคชันสำรวจวิธีตรวจจับการพุ่งขึ้นของ CPU หน่วยความจำ และ I/O ซ้ำๆ โดยเชื่อมโยง metrics กับงานที่กำหนดเวลา ตรวจสอบ cron, systemd timers, at jobs, และ schedulers ในแอปเพื่อค้นหาและแก้ไขงานที่รบกวนหรือทับซ้อน
แสดงรายการและอ่าน user และ system crontabsตรวจสอบ systemd timers และ calendar unitsตรวจสอบ at jobs และกำหนดเวลาครั้งเดียวติดตาม schedulers และ workers ระดับแอปเชื่อมโยงการพุ่งขึ้นกับเวลาการทำงานของงานปรับปรุงหรือกระจายงานที่รบกวนซ้ำๆบทเรียนที่ 5แก้ปัญหาหน่วยความจำ: free, /proc/meminfo, smem, pmap และตรวจสอบ memory leaksพัฒนาทักษะแก้ปัญหาหน่วยความจำโดยใช้ free, /proc/meminfo, smem, และ pmap เรียนรู้การแยกแยะ cache จากแรงกดดันจริง ค้นหาการใช้ต่อกระบวนการ และจดจำรูปแบบที่บ่งชี้ memory leaks หรือ fragmentation
ตีความ free และหน่วยความจำที่มีอยู่อ่านฟิลด์สำคัญ /proc/meminfoใช้ smem สำหรับ breakdowns ต่อกระบวนการตรวจสอบ process maps ด้วย pmapตรวจจับรูปแบบการเติบโตของ memory leakแยกแยะ cache จากแรงกดดันจริงบทเรียนที่ 6รวมกับข้อมูล monitoring (Prometheus, Grafana) และใช้ metrics ประวัติศาสตร์เพื่อกำหนดแนวโน้มเรียนรู้การรวมการแก้ปัญหาท้องถิ่นกับข้อมูล Prometheus และ Grafana ใช้ metrics ประวัติศาสตร์ dashboards และ alerts เพื่อระบุแนวโน้ม regressions และการเปลี่ยนแปลงช้า และตรวจสอบผลกระทบของการแก้ไขประสิทธิภาพ
ตรวจสอบ dashboards CPU และ load สำคัญตรวจสอบ panels หน่วยความจำ cache และ swapวิเคราะห์กราฟ disk และ network latencyใช้ PromQL เพื่อ slice metrics ประวัติศาสตร์เชื่อมโยง deploys กับการเปลี่ยนแปลง metricsตรวจสอบการแก้ไขด้วยมุมมองก่อนและหลังบทเรียนที่ 7Load vs CPU saturation: การตีความ uptime, load average และความสัมพันธ์กับ CPU coresชี้แจงความหมายของ system load averages และความสัมพันธ์กับ CPU cores และ run queues เรียนรู้การแยกแยะ load สูงแบบปกติจาก CPU saturation และเชื่อมโยง load กับ I/O wait, context switches, และ latency
อ่าน uptime และ load averagesเชื่อมโยง load กับจำนวน CPU coresแยกแยะงานที่รอรันและงานที่ถูกบล็อกระบุกรณี CPU-bound saturationจดจำ load ที่ขับเคลื่อนด้วย I/O waitใช้ vmstat และ mpstat เพื่อยืนยันบทเรียนที่ 8เก็บ metrics ระบบเรียลไทม์: top, htop, vmstat, mpstat, iostat และการตีความ outputsเรียนรู้การเก็บและตีความ metrics ประสิทธิภาพ Linux แบบเรียลไทม์โดยใช้ top, htop, vmstat, mpstat, และ iostat เข้าใจมุมมอง CPU หน่วยความจำ และ I/O ฟิลด์สำคัญ ช่วง refresh และการตรวจจับ bottlenecks แบบเรียลไทม์
อ่านการใช้ CPU ใน top และ htopตรวจสอบหน่วยความจำและ swap ใน topใช้ vmstat สำหรับ snapshots ระบบทั้งหมดวิเคราะห์ CPU stats ด้วย mpstatตรวจสอบรูปแบบ disk I/O ด้วย iostatเลือก sampling intervals และ filtersบทเรียนที่ 9ใช้ perf, strace, และ ltrace สำหรับการวิเคราะห์กระบวนการลึกและเมื่อไหร่ควรใช้แต่ละตัวเข้าใจเมื่อไหร่และวิธีใช้ perf, strace, และ ltrace สำหรับการวิเคราะห์กระบวนการลึก เรียนรู้การ profile CPU hotspots ติดตาม system calls ตรวจสอบ library calls และลด overhead ขณะเก็บ diagnostics ที่นำไปใช้ได้
Profile CPU hotspots ด้วย perf recordดู perf reports และ call graphsติดตาม syscalls ด้วย strace อย่างปลอดภัยกรอง strace output ที่รบกวนตรวจสอบ library calls ด้วย ltraceเลือกเครื่องมือที่เหมาะสมสำหรับอาการแต่ละแบบบทเรียนที่ 10ใช้เครื่องมือ profiling และ tracing แบบเบา (py-spy, gdb, flamegraphs) สำหรับแอป Pythonเน้น profiling และ tracing แบบเบาสำหรับแอปพลิเคชัน Python โดยใช้ py-spy, gdb, และ flamegraphs เก็บ stack samples ใน production ค้นหา code paths ร้อน และตีความ flamegraphs โดยไม่หยุดบริการ
Sampling Python stacks ด้วย py-spyสร้างและอ่าน flamegraphsติด gdb กับ Python แบบเรียลไทม่อย่างปลอดภัยจัดการ builds ที่ stripped หรือ optimizedProfile code async และ multithreadedลด overhead ของ profiler ใน production