1. Linux Crisis Tools (www.brendangregg.com)
文章标题:Linux危机工具(Linux Crisis Tools)
本文核心内容是推荐一系列应预先安装在Linux服务器(特别是企业版)上的性能诊断工具,以便在发生性能危机时能够立即展开调试,避免因临时安装工具而延误排查时间。
主要内容概要:
- 核心主张:在应对性能问题导致的故障时,每一秒都至关重要。因此,作者建议预先安装一套“危机工具”,而非在故障发生时再仓促安装。
- 推荐工具列表:文章以表格形式列出了一套最小化的工具集及其对应的Ubuntu软件包。这些工具涵盖了系统状态监控、网络分析、CPU/内存/磁盘I/O诊断以及基于eBPF的高级跟踪等多个方面。主要包括:
- 基础工具:
procps(提供ps, top)、util-linux(提供dmesg)、sysstat(提供iostat, mpstat)。 - 网络工具:
iproute2、tcpdump。 - CPU与NUMA:
numactl、linux-tools-common(提供perf)、cpuid、msr-tools。 - eBPF工具:
bpfcc-tools(BCC,功能丰富的预置工具集)和bpftrace(灵活的eBPF脚本环境)。两者性能相同,BCC工具功能更全面,bpftrace则便于即时修改。 - 其他:
trace-cmd(Ftrace)、nicstat、ethtool、tiptop等。
- 基础工具:
- 安装的重要性(通过危机场景示例):作者通过一个虚构但基于真实经验的故事,生动地描述了在故障发生时试图临时安装工具所遭遇的一系列障碍:
- 系统响应缓慢,SSH登录和命令执行极慢。
- 软件包安装失败,原因包括软件源配置错误、网络连接超时。
- 外部防火墙规则阻止了软件下载。
- 平台安全策略使文件系统不可写,导致无法安装可执行程序。
- 最终,即便通过重启临时恢复服务,根本问题仍未解决,且故障可能复发。整个过程耗时漫长,严重阻碍了故障诊断。
- 额外考虑:
- 此列表为最小集合,可根据服务器硬件(如GPU)增加特定分析工具。
- 这些工具更新不频繁,列表只需数年更新一次。
- 安装这些工具的磁盘开销很小,对云实例部署时间影响甚微。
- 建议与展望:作者建议Linux发行版在企业版中默认包含这些危机工具,使各类公司都能在性能故障发生时快速响应。同时指出,
bpfcc-tools未来可能会被更轻量的libbpf-tools二进制包替代。
总结:本文强调性能诊断工具预装的关键性,提供了一套实用的工具清单,并通过一个反面案例警示了临时安装工具在危机中的巨大风险,呼吁将这一实践标准化。