Linuxで動くシステムで何か問題が発生した際の原因分析に役立つツールの一覧をNetflixやIntelでクラウドコンピューティングのパフォーマンス改善に取り組んできたエンジニアのブレンダン・グレッグ氏がブログにまとめています。

Linux Crisis Tools

https://www.brendangregg.com/blog/2024-03-24/linux-crisis-tools.html

◆procps

このパッケージには「ps」「vmstat」「uptime」「top」という基本的なステータス表示に役立つツールが含まれています。



◆util-linux

このパッケージには「dmesg」「lsblk」「lscpu」というシステムのログを取得したりデバイスの情報を出力するツールが含まれています。



◆sysstat

このパッケージには「iostat」「mpstat」「pidstat」「sar」などデバイスの状態を表示するためのツールが含まれています。



◆iproute2

このパッケージには「ip」「ss」「nstat」「tc」などネットワーク関係のツールが含まれています。



◆numactl

このパッケージには複数のCPUやメモリを管理するNUMAの状態を表示したり操作したりするためのツールが含まれています。



◆tcpdump

このパッケージにはトラフィックを監視するためのツールが含まれています。



◆linux-tools-common

このパッケージにはパフォーマンス・モニタリング・ユニット(PMU)を使用してプロセッサの状態をより詳しく調べるためのツールが含まれています。



◆bcc・bpfcc-tools・bpftrace

このパッケージにはLinuxのカーネルを変更せずにカーネルコードをフックするためのツールが含まれています。なお、bccとbpftraceパッケージには同じ機能を持つツールが多数重複して存在していますが、bccの方が高機能な一方でbpftraceはその場で編集が可能など長所が異なるとのこと。

◆trace-cmd

カーネルの動作を追跡するLinuxの機能「Ftrace」を操作するためのコマンドラインツールです。

◆nicstat

ネットワークのトラフィック情報を表示するツールです。



◆ethtool

ネットワークデバイスの情報を表示するツールです。



◆tiptop

パフォーマンス監視ユニットを使用したリアルタイムの性能監視ツールです。

◆cpuid

CPUの詳細な情報を確認するためのツールです。



◆msr-tools

このパッケージにはCPUのレジスタを操作するツールが含まれています。

グレッグ氏はトラブルの発生後にこうした調査用のツールをインストールしようとしてもシステムに高い負荷がかかっていてスムーズにはインストールできなかったという経験を述べた上で、「リストに含まれているツールは合計数MBしか容量を消費しないため事前にインストールしておく価値がある」と訴えました。

なお、記事作成時点でリストに含まれているツールをUbuntuにまとめてインストールするには下記のコマンドを入力すればOKです。

sudo apt install procps util-linux sysstat iproute2 numactl tcpdump linux-tools-common linux-tools-$(uname -r) bpfcc-tools bcc bpftrace trace-cmd nicstat ethtool tiptop cpuid msr-tools