sarコマンドでシステムパフォーマンスを時系列で確認する方法|CPU・メモリ・ディスク統計の読み方と活用も

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, システム管理コマンド > sarコマンドでシステムパフォーマンスを時系列で確認する方法|CPU・メモリ・ディスク統計の読み方と活用も
「サーバーが遅い」と言われたが、今は正常に動いている。あの瞬間、何が起きていたのか調べる手段がない。
ログを見ても数値が残っていない。こんな悔しい思いをしたことはないでしょうか。

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 オプションが便利


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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

Ubuntu / Debianの場合:

# apt install sysstat -y

2. sysstatサービスを有効化する

インストール直後はデータ収集が開始されていないため、サービスを有効化します。

# systemctl enable --now sysstat

Ubuntuではsysstatの有効化設定が別途必要です。/etc/default/sysstatを編集してください。

# /etc/default/sysstatを編集 ENABLED="true" # sysstatサービスを再起動 # systemctl restart sysstat

3. データ収集の確認

インストール後、数分待ってから /var/log/sa/ にファイルが生成されているか確認します。

# ls /var/log/sa/ sa25 sa26 sar25 sar26

「sa日付数字」がバイナリデータ、「sar日付数字」がテキスト形式のレポートです。

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

`sar -u 1 5` は「1秒間隔で5回取得する」という意味です。
末尾の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 ...

15時台に `%user` が急増しているのが確認できます。これが「遅かった時間帯」の証拠になります。

3. 時間帯を絞り込んで確認する

-s(start)と -e(end)オプションで表示範囲を絞れます。

# 昨日の14:00から16:00のデータだけ確認する # sar -u -f /var/log/sa/sa25 -s 14:00:00 -e 16:00:00

報告された障害発生時刻の前後30分を確認するとき、このオプションで素早く絞り込めます。

各統計の読み方と実務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

`%memused` が90%を超えている場合はスワップへの圧力が高まっています。
`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

`tps`(1秒あたりのI/Oリクエスト数)が高い場合はディスクが高負荷です。
`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

`rxkB/s`(受信)と `txkB/s`(送信)で帯域の使用量を確認できます。
NICの上限に近づいている場合は、トラフィック急増かDDoS攻撃の可能性があります。

トラブルシュート・エラー対処

「Cannot open /var/log/sa/saXX」が出た時の対処法

対象日付のファイルが存在しない場合に発生します。以下を確認してください。

# sysstatサービスの状態を確認 # systemctl status sysstat # sysstatのcronジョブを確認 # cat /etc/cron.d/sysstat

cronジョブが無効になっている場合は、sysstatサービスの再有効化が必要です。
デフォルトでは28日分のデータが保持されます。それ以前のデータは取得できません。

「Requested activities not available」が出た時の対処法

古いsaファイルのバージョンと現在のsarコマンドのバージョンが合わない場合に発生します。

# sysstatのバージョン確認 # sar --version sysstat version 12.5.4

OSのメジャーバージョンアップ後にsysstatを再インストールした場合、古いsaファイルは読めなくなることがあります。

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
sarを使いこなせると、「あの時何が起きていたか」を事後に証明できるエンジニアになれます。

サーバーの性能問題を調査する際は、iostatやvmstatと並行してsarのログを確認する習慣をつけてください。
継続的なデータ収集がない環境では事後調査ができないため、まずsysstatのインストールと有効化から始めることをおすすめします。

システム管理のコマンドをもっと体系的に学びたい方は、systemd-analyze で起動時間計測Linux ポート確認の全コマンドの記事も参考にしてください。

「サーバーが遅い」と言われた時に、データで説明できますか?

sarのようなパフォーマンス監視ツールは、障害の事後証明だけでなく予防保全にも使えます。
ネットの古い情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。