変更履歴
- Rev. 0.7 : 2024年05月16日
- 新規作成
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使用時間、コマンド名、端末番号、ユーザー名などを
確認することができます。
2.3 uptime
“uptime”コマンドは、UNIXやLinuxなどのOS上で、
システムがどのくらいの時間稼働し続けているか(連続稼働時間)を表示するコマンドです。
2.4 top
“top”コマンドは、現在実行中のプロセスをCPU利用率が高い順に表示します。
表示はリアルタイムで更新されていき、“q”を入力すると終了します。
【 top 】コマンド――実行中のプロセスをリアルタイムで表示する
3 util-linux
このパッケージには、“dmesg”、“lsblk”、“lscpu”というシステムのログを取得したり
デバイスの情報を出力するツールが含まれています。
Linuxの標準パッケージですので、改めてインストールする必要はありません。
3.2 lsblk
“lsblk(list block devices)”コマンドは、
現在利用できるブロックデバイスを一覧表示するコマンドです。
各ブロックデバイスをツリー状に表示するので、パーティションの状態を視覚的に把握でき、
ストレージの構成やデバイス番号を確認したいときに役立ちます。
【 lsblk 】コマンド――ブロックデバイスを一覧表示する
3.3 lscpu
“lscpu”コマンドは、CPUの情報を表示するコマンドです。
“sysfs”と“/proc/cpu”を参照することで動作します。
4 sysstat
このパッケージには、“iostat”、“mpstat”、“pidstat”、“sar”など
デバイスの状態を 表示するためのツールが含まれています。
インストールは、下に示すように行います。
“sudo dnf install sysstat”
あるいは、
“sudo apt-get install sysstat
4.3 pidstat
“pidstat”コマンドは、
プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示するコマンドです。
【 pidstat 】コマンド――プロセスのリソース使用量を表示する
4.4 sar
“sar(System Activity Reporter)”コマンドは、システムのパフォーマンス監視に使用される
ユーティリティーです。
さまざまなリソースの使用状況データを収集し、リアルタイムまたは過去の情報を提供します。
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.4 tc
カーネル(kernel)とドライバ(network device driver)の間に、送信パケットの送信順序の変更、
遅延、廃棄等の機能を提供する“qdisc(Queueing Discipline)”というコンポーネントがあります。
“tc”コマンドは、qdiscに対する設定、削除、参照等の操作をするコマンドです。
6 numactl
このパッケージには、複数のCPUやメモリを管理するNUMAの状態を表示したり操作したり
するためのツールが含まれています。
6.1 numastat
“numastat”コマンドは、プロセスおよびオペレーティング システムのNUMAノードごとの
メモリを表示するために使用されるコマンド ライン ユーティリティーです。
CPUを複数持つアーキテクチャNUMAとnumactlの説明 Linux で Numastat コマンドを実行する方法
7 tcpdump
このパッケージには、トラフィックを監視するためのツールが含まれています。
Linuxの標準パッケージので、改めてインストールする必要はありません。
“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以降で使用可能ですので、改めてインストールする必要はありません。
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のカーネルを変更せずにカーネルコードをフックするためのツールが含まれています。
bccとbpftraceパッケージには、同じ機能を持つツールが多数重複して存在しています。
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 で実行されたか(関数トレース)などを
グラフィカルに表示できます。
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ファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。