Linuxサーバーやパソコンを使っていて、こんな疑問を持ったことはありませんか?
「今、CPUはどれくらい使われているんだろう?」
「メモリが足りなくなっていないかな?」
「どのプロセスがディスクを使っているの?」
システムの状態をリアルタイムで把握することは、トラブルシューティングやパフォーマンス改善に欠かせません。
「どんな監視ツールがあるの?」
「それぞれ何が見られるの?」
「どうやって使い分ければいい?」
この記事では、Linuxで使えるリアルタイム監視ツールについて、初心者の方にも分かりやすく、基本から実践的な使い方まで詳しく解説していきます。
リアルタイム監視ツールとは?システムの「健康診断」
リアルタイム監視の基本
リアルタイム監視ツールとは、システムの状態を継続的に更新しながら表示するプログラムのことです。
一度だけ情報を表示するコマンドとは違い、1秒ごと、数秒ごとに最新の情報に更新されます。
簡単に言えば、システムの状態を映し出す「モニター」のようなものだと考えてください。
なぜリアルタイム監視が必要なのか
静的な情報だけでは、問題の原因を特定するのが難しいことがあります。
リアルタイム監視でできること:
- CPUやメモリの使用率の変化を追跡
- 問題が発生した瞬間を捉える
- どのプロセスが原因かを特定
- システムの負荷を継続的に把握
- パフォーマンスのボトルネックを発見
つまり、問題が起きている「今」の状況を把握できるのです。
基本的な監視ツール:top
最も基本的で、どのLinuxにも入っているツールです。
topの基本的な使い方
起動方法:
top
これだけで、リアルタイムでプロセス情報が表示されます。
topの画面の見方
上部:システム全体の情報
top - 10:30:45 up 5 days, 2:15, 2 users, load average: 0.15, 0.20, 0.18
Tasks: 235 total, 1 running, 234 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 1.0 sy, 0.0 ni, 96.5 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15872.4 total, 2458.6 free, 8242.3 used, 5171.5 buff/cache
MiB Swap: 8192.0 total, 8192.0 free, 0.0 used. 6894.5 avail Mem
重要な項目:
- load average: システムの負荷(1分、5分、15分の平均)
- %Cpu(s): CPU使用率の内訳
- Mem: メモリ使用状況
- Swap: スワップ使用状況
下部:プロセス一覧
各プロセスのCPU使用率、メモリ使用量、実行時間などが表示されます。
topの便利なキー操作
実行中に押せるキー:
- q: 終了
- k: プロセスを終了(kill)
- M: メモリ使用量でソート
- P: CPU使用率でソート
- 1: CPUコアごとの使用率を表示
- h: ヘルプ表示
- Space: 手動で更新
topのオプション
更新間隔を変更:
top -d 5
5秒ごとに更新されます。
特定のユーザーのプロセスだけ表示:
top -u ユーザー名
より見やすい監視ツール:htop
topの改良版で、カラフルで使いやすいツールです。
htopの特徴
- 色分けされた見やすい表示
- マウス操作に対応
- CPUコアごとの使用率を視覚的に表示
- ツリー表示でプロセスの親子関係が分かる
htopのインストール
多くのディストリビューションでは、標準でインストールされていません。
Ubuntuの場合:
sudo apt install htop
CentOS/AlmaLinuxの場合:
sudo dnf install htop
htopの使い方
起動:
htop
便利なキー操作:
- F1: ヘルプ
- F2: 設定
- F3: プロセス検索
- F4: フィルタ
- F5: ツリー表示切替
- F6: ソート項目選択
- F9: プロセス終了(kill)
- F10: 終了
- Space: プロセスにタグ付け
- 矢印キー: カーソル移動
htopの見やすさ
CPUやメモリの使用状況がバーグラフで表示されるため、一目で状況が把握できます。
各CPUコアの使用率も個別に確認できるので、負荷の偏りも分かります。
ディスクI/O監視:iotop
どのプロセスがディスクを読み書きしているか監視します。
iotopの使い方
起動:
sudo iotop
ディスクの読み書き速度が遅い原因を特定する際に便利です。
iotopの表示項目
- IO: ディスクI/Oの速度
- READ: 読み取り速度
- WRITE: 書き込み速度
- COMMAND: プロセス名
iotopのオプション
累積I/O量でソート:
sudo iotop -a
プロセスだけを表示(スレッドを非表示):
sudo iotop -P
更新間隔を指定:
sudo iotop -d 5
ネットワーク監視:iftop
ネットワークの帯域使用状況をリアルタイムで監視します。
iftopの使い方
インストール:
sudo apt install iftop
# または
sudo dnf install iftop
起動:
sudo iftop
iftopの表示内容
- どのホストと通信しているか
- 送信速度と受信速度
- 累計データ量
矢印の向きで、データの流れる方向が分かります。
iftopの便利なキー操作
- n: ホスト名/IPアドレスの表示切替
- s: 送信元ポートの表示切替
- d: 送信先ポートの表示切替
- p: ポート番号の表示
- q: 終了
iftopのオプション
特定のネットワークインターフェースを監視:
sudo iftop -i eth0
別のネットワーク監視:nethogs
プロセスごとのネットワーク使用量を監視します。
nethogsの特徴
iftopはホスト別ですが、nethogsはプロセス別に表示します。
「どのアプリケーションが帯域を使っているか」を知りたい時に便利です。
nethogsの使い方
インストール:
sudo apt install nethogs
# または
sudo dnf install nethogs
起動:
sudo nethogs
各プロセスの送信速度と受信速度が表示されます。
多目的監視:dstat
CPU、ディスク、ネットワーク、メモリなど、様々な情報を一画面で監視できます。
dstatの特徴
vmstatやiostat、netstatの機能を統合したようなツールです。
カラフルで見やすく、カスタマイズ性が高いのが特徴です。
dstatの使い方
インストール:
sudo apt install dstat
# または
sudo dnf install dstat
基本的な起動:
dstat
詳細な情報を表示:
dstat -cdngy
- c: CPU
- d: ディスク
- n: ネットワーク
- g: ページング
- y: システム統計
dstatのオプション
更新間隔を指定:
dstat 5
5秒ごとに更新されます。
CSV形式で出力:
dstat --output stats.csv
後でExcelなどで分析できます。
包括的な監視:glances
すべての情報を一画面にまとめた、最も包括的なツールです。
glancesの特徴
- CPU、メモリ、ディスク、ネットワークを統合表示
- カラフルで見やすいUI
- センサー情報(温度など)も表示可能
- Webインターフェースも利用可能
glancesの使い方
インストール:
sudo apt install glances
# または
sudo dnf install glances
# または
pip install glances
起動:
glances
glancesの画面構成
上から順に以下の情報が表示されます:
- CPU使用率(コアごと)
- メモリ使用状況
- スワップ使用状況
- 負荷平均
- ディスクI/O
- ネットワークトラフィック
- センサー情報(温度など)
- プロセス一覧
glancesのキー操作
- q: 終了
- a: 自動ソート
- c: CPU使用率でソート
- m: メモリ使用量でソート
- 1: CPUコアごとの表示切替
- h: ヘルプ
glancesのWebモード
glances -w
ブラウザでhttp://localhost:61208
にアクセスすると、Webインターフェースで監視できます。
リモートサーバーの監視に便利です。
システム全体の監視:nmon
IBM製の強力な監視ツールです。
nmonの特徴
- 対話的なインターフェース
- 豊富な統計情報
- パフォーマンスデータの記録機能
nmonの使い方
インストール:
sudo apt install nmon
# または
sudo dnf install nmon
起動:
nmon
nmonの操作方法
起動後、キーを押すことで表示する情報を選択します。
主要なキー:
- c: CPU統計
- m: メモリ統計
- d: ディスク統計
- n: ネットワーク統計
- t: トッププロセス
- r: リソース
- k: カーネル統計
- q: 終了
複数のキーを同時に押すことで、情報を組み合わせて表示できます。
コマンドの定期実行:watch
任意のコマンドを定期的に実行して、結果を表示し続けます。
watchの使い方
基本構文:
watch コマンド
例:ディスク使用量を2秒ごとに表示:
watch df -h
例:メモリ使用状況を表示:
watch free -h
watchのオプション
更新間隔を指定:
watch -n 5 コマンド
5秒ごとに更新されます。
差分をハイライト:
watch -d コマンド
前回から変わった部分が強調表示されます。
ヘッダーを非表示:
watch -t コマンド
用途別おすすめツール
目的に応じて、適切なツールを選びましょう。
総合的に監視したい
おすすめ:glances または nmon
すべての情報が一画面で確認できるため、初心者にも分かりやすいです。
プロセスの負荷を調べたい
おすすめ:htop
topより見やすく、操作も直感的です。
ディスクI/Oの問題を調査したい
おすすめ:iotop
どのプロセスがディスクを使っているか、一目瞭然です。
ネットワークの問題を調査したい
ホスト別で見たい:iftop
プロセス別で見たい:nethogs
用途に応じて使い分けましょう。
長期的なデータを記録したい
おすすめ:dstat
CSV形式で出力できるため、後で分析できます。
リモートサーバーを監視したい
おすすめ:glances(Webモード)
ブラウザからアクセスできるため、リモート監視に最適です。
監視データの記録と分析
リアルタイム監視だけでなく、データを記録することも重要です。
dstatでログ記録
dstat -cdngy --output system_stats.csv 5 > /dev/null &
バックグラウンドで5秒ごとに統計を記録します。
sarコマンドの活用
sysstatパッケージに含まれるsarコマンドは、システム統計を継続的に記録します。
インストール:
sudo apt install sysstat
過去のCPU使用率を確認:
sar -u
過去のメモリ使用状況を確認:
sar -r
sarは自動的にデータを記録するため、後から「あの時何が起きていたか」を調べられます。
トラブルシューティングの実例
実際の問題解決シーンでの使い方です。
CPUが100%になっている
手順:
htop
を起動- CPU使用率でソート(F6キー → CPU%)
- 上位のプロセスを確認
- 必要に応じてプロセスを終了(F9キー)
メモリ不足で動作が遅い
手順:
htop
またはtop
で確認- メモリ使用量でソート
- スワップが使われているか確認
- 不要なプロセスを終了
free -h
でメモリの空き容量を確認
ディスクI/Oが遅い
手順:
iotop
を起動- どのプロセスがディスクを使っているか確認
- 大量のI/Oを発生させているプロセスを特定
- 必要に応じて処理を調整
ネットワークが遅い
手順:
iftop
でネットワークトラフィックを確認- どのホストと大量に通信しているか確認
nethogs
でプロセスを特定- 不要な通信を停止
監視ツールの組み合わせ技
複数のツールを同時に使う方法です。
tmux/screenで画面分割
tmuxやscreenを使えば、一つの画面で複数の監視ツールを同時に表示できます。
tmuxの例:
tmux
# 画面を上下に分割
Ctrl+b → "
# 下の画面に移動
Ctrl+b → 下矢印
# 画面を左右に分割
Ctrl+b → %
こうして分割した画面で、それぞれ異なる監視ツールを起動できます。
- 左上:htop
- 右上:iotop
- 下:iftop
まとめ:適切なツールで効率的に監視しよう
Linuxのリアルタイム監視ツールについて、重要なポイントをおさらいしましょう。
主要な監視ツール:
ツール | 監視対象 | 特徴 |
---|---|---|
top | プロセス全般 | 標準搭載、基本的 |
htop | プロセス全般 | topの改良版、見やすい |
iotop | ディスクI/O | どのプロセスがディスクを使用中か |
iftop | ネットワーク | ホスト別の通信状況 |
nethogs | ネットワーク | プロセス別の通信状況 |
dstat | 総合 | 複数の統計を統合表示 |
glances | 総合 | 最も包括的、Webモードあり |
nmon | 総合 | IBM製、対話的で詳細 |
watch | 汎用 | 任意のコマンドを定期実行 |
用途別の選び方:
- 総合監視 → glances、nmon
- プロセス監視 → htop
- ディスク監視 → iotop
- ネットワーク監視 → iftop、nethogs
- データ記録 → dstat、sar
基本的な使い方:
htop # プロセス監視
sudo iotop # ディスクI/O監視
sudo iftop # ネットワーク監視
glances # 包括的監視
watch コマンド # コマンドの定期実行
トラブルシューティングの流れ:
- 問題の症状を特定
- 適切な監視ツールを起動
- 原因となるプロセスや要因を特定
- 必要な対処を実施
リアルタイム監視ツールは、システム管理者にとって必須のスキルです。
それぞれのツールの特徴を理解して、状況に応じて使い分けられるようになれば、トラブルシューティングやパフォーマンスチューニングが格段に効率的になります。
まずはhtop
とglances
から試してみて、システムの状態を把握する習慣をつけてみてくださいね!
コメント