ログを見ても数値が残っていない。こんな悔しい思いをしたことはないでしょうか。
sarコマンドを使えば、CPU・メモリ・ディスク・ネットワークの負荷統計を過去に遡って確認できます。
RHEL 9 / Rocky Linux 9 / Ubuntu 24.04 LTS で動作確認済みです。
この記事では、sarコマンドの基本的な使い方から、実務で役立つ過去データの読み方、よくあるトラブルの対処法まで解説します。
この記事のポイント
・sar -u でCPU使用率を時系列で確認できる
・sar -f /var/log/sa/saXX で過去の統計データを参照できる
・sysstatパッケージのインストールとcron設定が前提条件
・実務では「遅かった時間帯」に絞り込む -s/-e オプションが便利
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
sarコマンドとは?sysstatが提供するパフォーマンス記録の仕組み
sarはSystem Activity Reporterの略で、sysstatパッケージに含まれるコマンドです。Linuxのカーネルが収集しているCPU・メモリ・ディスクI/O・ネットワークなどのパフォーマンス統計を、時系列で記録・参照できます。
iostatやvmstatはその場の瞬間値しか確認できませんが、sarは過去のデータを日付をさかのぼって見られる点が最大の違いです。
サーバー管理の現場では、障害対応の事後調査に欠かせないツールです。「昨日の15時ごろ遅かった」という報告を受けたとき、sarのログを開けばその時間帯の数値がすぐに確認できます。
sysstatをインストールすると、cronが10分おきにシステム統計を収集し、/var/log/sa/ 以下にバイナリ形式で保存します。
sysstatのインストールと有効化
1. sysstatパッケージをインストールする
RHEL系(Rocky Linux / AlmaLinux / RHEL)の場合:# dnf install sysstat -y
# apt install sysstat -y
2. sysstatサービスを有効化する
インストール直後はデータ収集が開始されていないため、サービスを有効化します。# systemctl enable --now sysstat
# /etc/default/sysstatを編集 ENABLED="true" # sysstatサービスを再起動 # systemctl restart sysstat
3. データ収集の確認
インストール後、数分待ってから /var/log/sa/ にファイルが生成されているか確認します。# ls /var/log/sa/ sa25 sa26 sar25 sar26
sarの基本的な使い方
1. CPU使用率をリアルタイムで確認する
# sar -u 1 5 Linux 5.14.0-362.8.1.el9_3.x86_64 (web01.example.com) 2026-04-26 _x86_64_ (4 CPU) 12:00:01 CPU %user %nice %system %iowait %steal %idle 12:00:02 all 5.26 0.00 1.50 0.25 0.00 92.99 12:00:03 all 4.77 0.00 1.25 0.00 0.00 93.98 12:00:04 all 6.52 0.00 2.01 0.00 0.00 91.47 12:00:05 all 5.01 0.00 1.48 0.13 0.00 93.38 12:00:06 all 5.39 0.00 1.56 0.06 0.00 92.99 Average: all 5.39 0.00 1.56 0.09 0.00 92.96
末尾のAverageが平均値です。`%iowait`が高い場合はディスクI/Oがボトルネックになっている可能性があります。
2. 主要オプション一覧
・-u:CPU使用率の統計・-r:メモリ使用状況の統計
・-b:ディスクI/Oの統計(tps・読み書き速度)
・-n DEV:ネットワークインターフェースの統計
・-q:ロードアベレージとプロセス数の統計
・-d:ブロックデバイスごとのI/O統計
・-f ファイルパス:指定したデータファイルを参照
・-s HH:MM:SS:表示開始時刻を指定
・-e HH:MM:SS:表示終了時刻を指定
過去のデータを参照する方法
1. 当日の統計を確認する
引数なしで実行すると、当日の統計が表示されます。# sar -u # または明示的にファイルを指定する # sar -u -f /var/log/sa/sa26
2. 過去の日付のデータを参照する
saファイルを -f で指定することで、過去の日付のデータを確認できます。# 25日のCPU統計を確認する # sar -u -f /var/log/sa/sa25 Linux 5.14.0-362.8.1.el9_3.x86_64 (web01.example.com) 2026-04-25 _x86_64_ (4 CPU) 00:00:01 CPU %user %nice %system %iowait %steal %idle 00:10:01 all 2.13 0.00 0.85 0.05 0.00 96.97 00:20:01 all 2.45 0.00 0.91 0.03 0.00 96.61 ... 15:00:01 all 72.35 0.00 18.42 3.21 0.00 6.02 15:10:01 all 83.12 0.00 14.97 2.88 0.00 0.03 15:20:01 all 25.14 0.00 5.43 0.95 0.00 68.48 ...
3. 時間帯を絞り込んで確認する
-s(start)と -e(end)オプションで表示範囲を絞れます。# 昨日の14:00から16:00のデータだけ確認する # sar -u -f /var/log/sa/sa25 -s 14:00:00 -e 16:00:00
各統計の読み方と実務Tips
1. メモリ統計(-r)
# sar -r -f /var/log/sa/sa25 -s 15:00:00 -e 16:00:00 15:00:01 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit 15:00:01 125440 4250112 3874560 96.89 102400 2048000 8192000 102.40
`kbavail`(実際に利用可能なメモリ)が極端に少なければ、プロセスのメモリリーク調査が必要です。
2. ディスクI/O統計(-b)
# sar -b 15:00:01 tps rtps wtps bread/s bwrtn/s 15:00:01 450.32 0.50 449.82 8.00 14394.50
`bwrtn/s`(1秒あたりの書き込みブロック数)が継続して大きければ、大量書き込み処理を疑います。
3. ネットワーク統計(-n DEV)
# sar -n DEV -f /var/log/sa/sa25 -s 15:00:00 -e 15:30:00 15:00:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 15:00:01 eth0 520.33 480.12 62.45 48.12 0.00 0.00 0.00
NICの上限に近づいている場合は、トラフィック急増かDDoS攻撃の可能性があります。
トラブルシュート・エラー対処
「Cannot open /var/log/sa/saXX」が出た時の対処法
対象日付のファイルが存在しない場合に発生します。以下を確認してください。# sysstatサービスの状態を確認 # systemctl status sysstat # sysstatのcronジョブを確認 # cat /etc/cron.d/sysstat
デフォルトでは28日分のデータが保持されます。それ以前のデータは取得できません。
「Requested activities not available」が出た時の対処法
古いsaファイルのバージョンと現在のsarコマンドのバージョンが合わない場合に発生します。# sysstatのバージョン確認 # sar --version sysstat version 12.5.4
Ubuntuでデータが収集されない時の対処法
# /etc/default/sysstatの確認 # grep ENABLED /etc/default/sysstat ENABLED="false" ← この場合は "true" に変更してサービスを再起動する # sed -i 's/ENABLED="false"/ENABLED="true"/' /etc/default/sysstat # systemctl restart sysstat
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| CPU使用率をリアルタイムで確認する | sar -u 1 10 |
| 当日のCPU統計をすべて表示する | sar -u |
| 25日のデータを確認する | sar -u -f /var/log/sa/sa25 |
| 15時から16時のデータに絞る | sar -u -f /var/log/sa/sa25 -s 15:00:00 -e 16:00:00 |
| メモリ使用状況を確認する | sar -r -f /var/log/sa/sa25 |
| ディスクI/Oを確認する | sar -b -f /var/log/sa/sa25 |
| ネットワーク統計を確認する | sar -n DEV -f /var/log/sa/sa25 |
| ロードアベレージを確認する | sar -q -f /var/log/sa/sa25 |
サーバーの性能問題を調査する際は、iostatやvmstatと並行してsarのログを確認する習慣をつけてください。
継続的なデータ収集がない環境では事後調査ができないため、まずsysstatのインストールと有効化から始めることをおすすめします。
システム管理のコマンドをもっと体系的に学びたい方は、systemd-analyze で起動時間計測やLinux ポート確認の全コマンドの記事も参考にしてください。
「サーバーが遅い」と言われた時に、データで説明できますか?
sarのようなパフォーマンス監視ツールは、障害の事後証明だけでなく予防保全にも使えます。
ネットの古い情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:getoptsコマンドでbashスクリプトの引数を処理する方法|オプション解析と実践例も
- 前のページへ:nohupコマンドでSSH切断後もコマンドを実行し続ける方法|バックグラウンド実行とログ保存の実践例も
- この記事の属するカテゴリ:Linuxtips・システム管理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます