【Linux Tools】Linuxでトラブルが発生した時に役立つツール一覧

1 インストールしておきたい危機管理ツール一覧

パフォーマンスの問題が原因で障害が発生した場合、
その診断に必要なツールをインストールするためだけに貴重な時間を失いたくないものです。

本記事では、Linuxサーバーに前以ってインストールしておきたいパッケージを
表1-1にリストアップします。

本記事は、下に示すページを参考にして記述しました。

Linux Crisis Tools | Brendan Gregg's Blog
Linuxでトラブルが発生したときの診断に役立つツール一覧、
「事前のインストールを強く推奨」とリストの作者は語る

    【備考】
    の “numactl”、“bpfcc-tools”、“bpftrace”のパッケージは、
    内容のボリュームが大きいので、
    本記事では紹介だけにとどめ、別記事に起こしたいと思っています

なお、表に示す各コマンドのオプション等については、“man”コマンドでご確認ください。

2 procps

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

Linuxの標準パッケージですので、改めてインストールする必要はありません。

2.1 ps

ps”コマンドは、OS内部で現在実行されているプロセス一覧を表示するコマンドです。

プロセスのID(PID)やCPU使用時間、コマンド名、端末番号、ユーザー名などを
確認することができます。

【 ps 】コマンド――実行中のプロセスを一覧表示する

2.2 vmstat

vmstat”コマンドは、仮想メモリやディスクI/Oの統計情報を表示するコマンドです。

【 vmstat 】コマンド――仮想メモリやディスクI/Oの統計情報を表示する

2.3 uptime

uptime”コマンドは、UNIXやLinuxなどのOS上で、
システムがどのくらいの時間稼働し続けているか(連続稼働時間)を表示するコマンドです。

[Linux] システム(OS)の稼働時間を調べる

2.4 top

top”コマンドは、現在実行中のプロセスをCPU利用率が高い順に表示します。
表示はリアルタイムで更新されていき、“q”を入力すると終了します。

【 top 】コマンド――実行中のプロセスをリアルタイムで表示する

3 util-linux

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

Linuxの標準パッケージですので、改めてインストールする必要はありません。

3.1 dmesg

dmesg”コマンドは、Linuxカーネルが起動時に出力したメッセージを表示するコマンドです。

【 dmesg 】コマンド――カーネルが出力したメッセージを表示する

3.2 lsblk

lsblk(list block devices)”コマンドは、
現在利用できるブロックデバイスを一覧表示するコマンドです。

各ブロックデバイスをツリー状に表示するので、パーティションの状態を視覚的に把握でき、
ストレージの構成やデバイス番号を確認したいときに役立ちます。

【 lsblk 】コマンド――ブロックデバイスを一覧表示する  

3.3 lscpu

lscpu”コマンドは、CPUの情報を表示するコマンドです。
sysfs”と“/proc/cpu”を参照することで動作します。

【 lscpu 】コマンド――CPUの情報を表示する

4 sysstat

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

インストールは、下に示すように行います。
sudo dnf install sysstat
あるいは、
sudo apt-get install sysstat

4.1 iostat

iostat”コマンドは、CPUの使用率とI/Oデバイスの使用状況を表示するコマンドです。

【 iostat 】コマンド――I/Oデバイスの使用状況を表示する

4.2 mpstat

mpstat”コマンドは、CPUごとに使用率や割り込みの統計情報を表示するコマンドです。

【 mpstat 】コマンド――CPUごとの使用率を表示する  

4.3 pidstat

pidstat”コマンドは、
プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示するコマンドです。

【 pidstat 】コマンド――プロセスのリソース使用量を表示する

4.4 sar

sar(System Activity Reporter)”コマンドは、システムのパフォーマンス監視に使用される
ユーティリティーです。
さまざまなリソースの使用状況データを収集し、リアルタイムまたは過去の情報を提供します。

sar コマンド【使い方 まとめ】

5 iproute2

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

iproute2は、ルーティング、ネットワークインタフェース、トンネル、帯域制御、
ネットワーク関連のデバイスドライバなど、
Linuxカーネルでのネットワークの制御と監視を行うための
ユーザー空間ユーティリティーの コレクションです。

iproute2のユーティリティーの中には、
同等の機能を提供する古いプログラムから移行することを推奨するものがあります。

インストールは、下に示すように行います。
sudo dnf install iproute
あるいは、
sudo apt-get install iproute2

    【備考】
    RHEL系では、パッケージが“iproute2”であっても、
    インストールする時のパッケージ名が“iproute”であることに注意!

5.1 ip

ip”コマンドは、ネットワークデバイスやルーティング、ポリシーなどの表示と変更を行う
コマンドです。

従来は、ifconfigコマンドやnetstatコマンド、routeコマンドなど、
net-toolsパッケージに収録されているコマンド群を使用していました。

現在は、いずれもipコマンドへの移行が進んでいます。

【ip】コマンド(基礎編)――ネットワークデバイスのIPアドレスを表示する

5.2 ss

ss”コマンドは、ネットワーク通信で利用する「ソケット」についての情報などを出力する
コマンドです。

従来はnetstatコマンドが使用されていましたが、現在はssコマンドへの移行が進んでいます。

【 ss 】コマンド――ネットワークのソケットの情報を出力する

5.3 nstat

ntstat”コマンドは、ネットワークの統計情報を表示するコマンドです。

nstatコマンドの使い方 | hana_shinのLinux技術ブログ

5.4 tc

カーネル(kernel)とドライバ(network device driver)の間に、送信パケットの送信順序の変更、
遅延、廃棄等の機能を提供する“qdisc(Queueing Discipline)”というコンポーネントがあります。

tc”コマンドは、qdiscに対する設定、削除、参照等の操作をするコマンドです。

tcコマンドの使い方 | hana_shinのLinux技術ブログ

6 numactl

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

6.1 numastat

numastat”コマンドは、プロセスおよびオペレーティング システムのNUMAノードごとの
メモリを表示するために使用されるコマンド ライン ユーティリティーです。

CPUを複数持つアーキテクチャNUMAとnumactlの説明 Linux で Numastat コマンドを実行する方法

7 tcpdump

このパッケージには、トラフィックを監視するためのツールが含まれています。
Linuxの標準パッケージので、改めてインストールする必要はありません。

tcpdump”コマンドは、ネットワーク通信の生のデータをキャプチャし、
その結果を出力してくれるキャプチャツールです。

とほほのtcpdump入門

-w”で取得したキャプチャファイルを WireSharkで オープンすれば、
WireSharkで解析することが可能です。
WireSharkは、Windows、Linux、BSD、macOSなどで利用できる
ネットワーク・アナライザーです。

8 linux-tools-common、linux-tools-$(uname -r)

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

8.1 perf

perf”コマンンドは、Linux(主にカーネル)の性能に関する情報を
収集、分析するためのツールです。

Linuxカーネル2.6.31以降で使用可能ですので、改めてインストールする必要はありません。

perf を使った性能分析

8.2 turbostat

turbostat”コマンドは、Intel® 64プロセッサーでのプロセッサートポロジー、周波数、
アイドル時の電力状態の統計値、電力使用量などを報告します。

turbostat”は、“kernel-tools”パッケージで提供されます。

2.5. turbostat | Red Hat Enterprise Linux

9 bpfcc-tools(bcc)、bpftrace

bpfcc-tools(bcc)”、“bpftrace”のパッケージには、
Linuxのカーネルを変更せずにカーネルコードをフックするためのツールが含まれています。

bccbpftraceパッケージには、同じ機能を持つツールが多数重複して存在しています。
bccの方が高機能な一方で、bpftraceはその場で編集可能など長所が異なるとのことです。

10 trace-cmd

trace-cmd”コマンドは、カーネルの動作を追跡するLinuxの機能“Ftrace”を
操作するためのコマンドラインツールです。

インストールは、下に示すように行います。
sudo dnf install trace-cmd kernelshark
あるいは
sudo apt install trace-cmd kernelshark

kernelshark”は、Ftraceのユーザーインターフェースtrace-cmdのフロントエンドです。
いつどのプロセスがどの CPU で実行されたか(コンテキストスイッチトレース)、
いつどのイベントがどの CPU で実行されたか(イベントトレース)、
いつどのカーネル関数がどの CPU で実行されたか(関数トレース)などを
グラフィカルに表示できます。

trace-cmdコマンドの使い方

11 nicstat

nicstat”コマンドは、ネットワークインターフェイスカード(NIC)用のユーティリティーです。
パケット、キロバイト/秒、平均パケットサイズなど、すべてのネットワークカードに
関する情報と統計情報を表示します。

Solaris / Linux: nicstat Command Show Network Interface Card Statistics

12 ethtool

ethtool”コマンドは、ネットワークインターフェースカード (NIC)を設定する
ユーティリティーです。
このユーティリティーを使用すると、多くのネットワークデバイス(特にイーサネットデバイス)
で速度、ポート、オートネゴシエーション、PCI の場所、チェックサムオフロードなどの
設定をクエリーおよび変更できます。

インストールは、Ubuntuでは下に示すように行います。
sudo apt -y install ethtool

ネットワークインターフェイスの状況を調べるには

13 tiptop

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

RHEL系に、バイナリはないのかもしれません。

14 cpuid

cpuid”コマンドは、CPUの詳細な情報を確認するためのツールです。

インストールは、下に示すように行います。
sudo dnf install cpuid
あるいは
sudo apt install cpuid

15 msr-tools

msr-tools”は、ユーザー空間からMSRを読み書きできるようにするユーティリティーの
セットです。

これらのツールが利用できるかどうかについては、
Linuxベンダー/ディストリビューションOSプロバイダーに確認する必要があります。

インストールは、下に示すように行います。
sudo dnf install msr-tools
あるいは
sudo apt install msr-tools

コマンドと使い方には、下に示すページを参考にしてください。

Reading and Writing Model Specific Registers (MSRs) in Linux

以上

本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
少しでも役に立てていただければ、うれしく思います。

このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元著者名は明らかにしてください

なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。

お問い合わせ