Linuxシステム監視の定番ツール:sarコマンドの実践的活用法

sar(System Activity Reporter)は、Linux環境における包括的なシステムパフォーマンス分析ツールです。sysstatパッケージに含まれ、CPU負荷、メモリ使用量、ディスクI/O、ネットワークトラフィック、スワップ動作、プロセス状態など、多角的なリソース指標を時系列で収集・報告できます。本稿では、CentOS 7以降およびRHEL系ディストリビューションを想定し、実務で即活用可能なsarの使い方を再構成して解説します。

CPU使用率の詳細分析

リアルタイムでCPUの稼働状況を確認するには:

sar -u 2 5

出力項目の意味:

  • %usr:ユーザープロセスが消費したCPU時間の割合
  • %sys:カーネル空間での処理(システムコールなど)に要した時間
  • %iowait:I/O完了を待機中のCPU時間 — 10%を超えるとディスクボトルネックの可能性が高い
  • %idle:アイドル状態の時間 — 持続的に5%未満ならCPUリソース逼迫のサイン

マルチコア環境では、各論理CPU単位の負荷を可視化するために-P ALLを併用:

sar -P ALL 1 3

メモリとスワップの健康診断

物理メモリの利用状況を把握するには:

sar -r 3 4

主なカラム:

  • kbmemfree:空きメモリ(KB)
  • %memused:使用率(推奨上限:85%)
  • kbcached:ページキャッシュとして使われているメモリ量
  • kbcommit:現在のワークロードを維持するために必要な最小メモリ(物理+SWAP)

スワップ領域の過剰な読み書きを検知するには:

sar -W 2 6

pswpin/s(スワップイン)とpswpout/s(スワップアウト)が共に継続的に1.0以上であれば、メモリ不足によるページングが発生している可能性があります。

ディスクI/Oのパフォーマンス評価

デバイス単位のI/O特性を分析するには:

sar -d -p 1 4

-pオプションにより、dev8-0のような抽象名ではなくsdaといった実際のデバイス名が表示されます。注目すべき指標:

  • %util:デバイスのI/O使用率 — 100%に近い値が続く場合、I/O待ちが発生しており、ストレージがボトルネック
  • await:I/O要求の平均応答時間(ms)— ディスク種別に応じた基準値(HDD: <15ms, SSD: <2ms)を上回ると遅延が顕著
  • avgrq-sz:1回のI/Oで転送される平均セクタ数(512バイト単位)

ネットワークインタフェースのトラフィック監視

主要なインターフェースの通信状況を取得:

sar -n DEV 2 3

代表的な列:

  • rxkB/s, txkB/s:受信/送信帯域(KB/秒)
  • rxpck/s, txpck/s:パケット数(個/秒)
  • rxmcst/s:マルチキャストパケット受信数 — 異常な増加はネットワークスパムや設定ミスの兆候

エラー統計を同時に確認したい場合は、-n EDEVを併用:

sar -n EDEV 2 3

rxerr/s(受信エラー)、rxdrop/s(受信破棄)、coll/s(衝突数)が非ゼロである場合、物理層(ケーブル、NIC、スイッチポート)の問題を疑います。

データの永続化と履歴分析

監視結果をバイナリ形式で保存し、後から解析する手順:

# 現在時刻から30秒間、2秒間隔でCPU情報を記録
sar -u -o /var/log/sar/cpu-$(date +%s).sardb 2 15

# 保存されたデータを再読込(テキスト形式で出力)
sadf -d /var/log/sar/cpu-1715823456.sardb | head -20

※ 注意:-oで生成されるファイルはバイナリであり、直接catvimで開けません。解析にはsadfコマンドまたはsar -fを使用します。

負荷とプロセス活動の関連性把握

システム全体の負荷状況を俯瞰するには:

sar -q 3 5

重要な指標:

  • runq-sz:実行待ちキュー内のプロセス数 — CPUコア数を超えるとコンテキストスイッチが頻発
  • ldavg-1, ldavg-5, ldavg-15:1分・5分・15分の平均負荷 — ldavg-1 > ldavg-5 > ldavg-15の傾向は負荷上昇中を示唆

さらに、特定PIDのリソース消費を追跡するには:

sar -x 1234 1 10

対象プロセスのCPU使用率、実行CPU、ページフォールト数などが時系列で得られます。

カーネルリソース制限の確認

ファイルハンドルやinodeの枯渇リスクを事前に検知するには:

sar -v 2 4

特に以下の2項目を注視:

  • file-nr:現在使用中のファイルハンドル数(第1値)と最大許容数(第3値)の差分が小さい → システム全体のファイルオープン上限に近づいている
  • inode-nr:使用中のinode数 — ファイル数が極端に多いアプリケーション(例:ログローテーション不備)で注意

カーネルパラメータの調整は/proc/sys/fs/file-maxを編集、またはsysctl.conffs.file-max = 65536を追加して永続化します。

タグ: sar sysstat linux-monitoring performance-tuning system-administration

5月15日 05:03 投稿