Linux dstat コマンド
dstat は強力な Linux システム監視ツールで、CPU、メモリ、ディスク、ネットワークなどの主要な指標を含むシステムリソースの使用状況をリアルタイムに表示できます。dstat は従来の vmstat、iostat、netstat などのツールを置き換え、統一された監視インターフェースを提供することを目的としています。
dstat の主な特徴
- 多機能統合:複数のシステム監視ツールの機能を統合
- リアルタイム表示:システム状態を継続的に更新して表示
- カスタマイズ性:監視する特定の指標をユーザーが選択可能
- カラー出力:デフォルトでカラー表示を使用し、異常値を識別しやすい
- CSV エクスポート:監視データを CSV 形式でエクスポート可能
dstat 基本構文
dstat の基本コマンド形式は次のとおりです:
dstat [选项] [间隔时间] [执行次数]
一般的なパラメータの説明
| パラメータ | 説明 |
|---|---|
-c |
CPU使用状況を表示 |
-d |
ディスクの読み書き状況を表示 |
-m |
メモリ使用状況を表示 |
-n |
ネットワーク状態を表示 |
-l |
システム負荷を表示 |
-p |
プロセス状態を表示 |
-s |
スワップパーティションの使用状況を表示 |
-t |
タイムスタンプを表示 |
--output |
出力を CSV ファイルに保存 |
--top-cpu |
最もCPUを消費するプロセスを表示 |
--top-mem |
最もメモリを消費するプロセスを表示 |
一般的な監視シナリオの例
1. 基本的なシステム監視
dstat -cdlmnpsy
このコマンドは以下を表示します:
- CPU使用率
- ディスク読み書き
- システム負荷
- メモリ使用
- ネットワーク状態
- プロセス状態
- スワップパーティション使用状況
2. 特定リソースの監視
例
graph TD
A[監視開始] --> B{監視項目の選択}
B -->|CPU| C[dstat -c]
B -->|メモリ| D[dstat -m]
B -->|ディスク| E[dstat -d]
B -->|ネットワーク| F[dstat -n]
A[監視開始] --> B{監視項目の選択}
B -->|CPU| C[dstat -c]
B -->|メモリ| D[dstat -m]
B -->|ディスク| E[dstat -d]
B -->|ネットワーク| F[dstat -n]
3. タイムスタンプ付きの監視
dstat -t -cdm
出力例:
----system---- ----total-cpu-usage---- -dsk/total- ---memory-usage----
time |usr sys idl wai hiq siq| read writ| used buff cach free
12-05 14:30:01| 2 1 96 0 0 1| 12k 25k| 3.2G 1.1G 5.6G 2.4G
12-05 14:30:02| 3 1 95 0 0 1| 24k 18k| 3.2G 1.1G 5.6G 2.4G
4. 監視結果をファイルに保存
dstat -cdm --output /tmp/dstat_output.csv 5 10
このコマンドは:
- CPU、ディスク、メモリを監視
- 5秒ごとに更新
- 合計10回実行
- 結果を /tmp/dstat_output.csv に保存
高度な使い方
1. 特定プロセスの監視
dstat --top-cpu --top-mem
2. カスタム監視項目
dstat -c -d -n -N eth0,total
このコマンドは以下を監視します:
- CPU使用状況
- ディスクアクティビティ
- ネットワークトラフィック(特定のNIC eth0 と合計)
3. プラグインの組み合わせ
dstat は複数のプラグインをサポートしており、カンマで区切ることができます:
dstat --time,proc,disk,net,tcp,load,sys
よくある質問(FAQ)
1. dstat と top コマンドの違いは何ですか?
| 特徴 | dstat | top |
|---|---|---|
| 表示方式 | テーブル形式 | リスト形式 |
| 監視範囲 | システム全体 | 主にプロセス |
| 更新方法 | 間隔をカスタマイズ可能 | 固定間隔 |
| データエクスポート | CSV サポート | サポートなし |
2. dstat をインストールするには?
ほとんどの Linux ディストリビューションでは、パッケージマネージャーでインストールできます:
例
# Ubuntu/Debian
sudo apt-get install dstat
# CentOS/RHEL
sudo yum install dstat
# Fedora
sudo dnf install dstat
sudo apt-get install dstat
# CentOS/RHEL
sudo yum install dstat
# Fedora
sudo dnf install dstat
3. dstat の出力をどう解釈するか?
- CPU 部分:usr(ユーザー空間)、sys(システム空間)、idl(アイドル)、wai(IO待機)
- メモリ部分:used(使用済み)、buff(バッファ)、cach(キャッシュ)、free(空き)
- ディスク部分:read(読み取り)、writ(書き込み)、単位は通常 KB/s
ベストプラクティスの推奨
- 長期監視:サーバーの場合は、
--outputパラメータを使用して監視データを保存することをお勧めします - 問題診断:システムにパフォーマンス問題が発生した場合は、
dstat -tcdmn各リソースの使用状況をすばやく確認します - ベンチマークテスト:システムチューニングの前後に dstat を使用してパフォーマンスデータを記録し比較します
- カスタムビュー:実際のニーズに応じて独自の dstat 監視の組み合わせを作成し、エイリアスとして保存して使いやすくします
まとめ
dstat は Linux システム管理者と開発者にとって強力なツールであり、包括的なシステム監視機能を提供し、高度にカスタマイズ可能です。dstat を習得することで、次のことができます:
- システムのパフォーマンスボトルネックをすばやく特定
- 主要リソースの使用傾向を監視
- 分析用のパフォーマンスデータを収集
- 単一機能の複数の監視ツールを置き換え
読者は実際の作業でさまざまなパラメータの組み合わせを試し、自分の作業シーンに最適な監視方法を見つけることをお勧めします。
その他の拡張