目標
- sarコマンドについて理解する
sarコマンド
sarコマンドは、Linux/Unixシステムで使用されるパフォーマンス監視ツールで、システムのリソース使用状況(CPU、メモリ、ディスク、ネットワークなど)を収集し、報告するために使用されます。sarはSystem Activity Reportの略です。
sar コマンドの利用準備
sysstatパッケージ:
- sysstatは、sar、iostat、mpstat、pidstatなどのパフォーマンス監視ツールを含むパッケージです。
- これらのツールはシステムのリソース使用状況をリアルタイムで監視したり、過去のデータを表示したりするために使用されます。
sysstatサービス
- sysstatサービスは、システムのパフォーマンスデータを定期的に収集し、ログとして保存する役割を持っています。通常、データは /var/log/sa/ 以下に保存されます。
- このサービスが動作していないと、sarコマンドで過去のパフォーマンスデータ(例えば、CPU使用率やメモリ使用率など)を表示することができません。
sarの動作
- sarコマンドは、過去のデータを表示するために、sysstatサービスが定期的に収集したデータに依存します。
- サービスが無効または停止していると、sarは実行時のデータ(リアルタイムデータ)しか表示できず、過去のデータを表示することはできません。
sar コマンドの使い方
sar コマンドの使い方は次の通りです。
sudo apt update
sudo apt install sysstat
sysstatパッケージをインストール後、デフォルトではリソース情報の収集が無効になっています。/etc/default/sysstatファイルを編集して、収集を有効にする必要があります。これにより、sysstatサービスがシステムのパフォーマンスデータを定期的に収集し始めます。
sudo vi /etc/default/sysstat
ENABLE=”false”をENABLE=”true”に変更します。
sysstatサービスを起動します。
sudo systemctl start sysstat #サービスを起動
sudo systemctl enable sysstat #サービスを自動起動
現在のリソース使用状況の表示
sar
このコマンドは、システムのパフォーマンスに関する基本的な情報を表示してくれます。出力には、CPUの使用状況やシステムの負荷などが含まれます。
ただし、上記のコマンドでデータが表示されない場合は、sysstatサービスが動作していないか、データ収集の設定が無効になっている可能性があります。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
11:03:20 AM CPU %user %nice %system %iowait %steal %idle
11:04:20 AM all 10.00 0.00 5.00 2.00 0.00 83.00
11:05:20 AM all 15.00 0.00 6.00 3.00 0.00 76.00
11:06:20 AM all 20.00 0.00 7.00 4.00 0.00 69.00
11:07:20 AM all 18.00 0.00 6.00 3.00 0.00 73.00
11:08:20 AM all 22.00 0.00 8.00 3.00 0.00 67.00
Average: all 17.00 0.00 6.00 3.00 0.00 74.00
- %user: ユーザーモードで動作しているプロセスのCPU使用率(計算中のプロセス)。
- %nice: 優先度の低いプロセス(nice)のCPU使用率。
- %system: カーネルモードで動作しているプロセスのCPU使用率。
- %iowait: 入出力操作を待っている時間の割合。
- %steal: 他の仮想マシンに奪われたCPU時間(仮想化環境の場合)。
- %idle: CPUがアイドル状態で過ごしている割合。
オプション「-q」:システム全体の統計(ロードアベレージなど)を表示
sar -q
sar -q は、システムのロードアベレージ(1分、5分、15分の平均負荷)や、待機しているプロセスの状態、システムの負荷状況に関する情報を表示します。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
08:15:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
08:16:01 AM 2 100 0.12 0.10 0.09 0
08:17:01 AM 3 102 0.08 0.12 0.10 1
08:18:01 AM 1 101 0.09 0.11 0.10 0
08:19:01 AM 0 100 0.06 0.08 0.09 0
Average: 1 101 0.09 0.10 0.09 0
具体的には、以下の情報が表示されます。
- runq-sz: システムが実行可能と認識しているプロセスの数。値が高い場合、システムはリソースを待っているプロセスが多いことを示します。
- plist-sz: システムのプロセスリストのサイズ。システム内で現在管理されている全プロセスの数。
- ldavg-1, ldavg-5, ldavg-15:
- 1分、5分、15分のロードアベレージ(平均負荷)。これらは、システムに対する要求の平均負荷を示します。
- ロードアベレージがシステムのCPU数より高い場合、システムが過負荷である可能性があります。
- blocked: 現在ブロック状態にあるプロセスの数。プロセスがリソースを待っている場合、この数が増加します。
オプション「-u」:CPU使用率の表示
sar -u 1 5
「-u」 は CPU 使用率を表示するオプションです。「1」 はデータを 1 秒ごとに取得する間隔を指定します。「5」 はデータの取得回数(ここでは 5 回)を指定します。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
08:15:01 AM CPU %user %nice %system %iowait %steal %idle
08:16:01 AM all 20.00 0.00 10.00 5.00 0.00 65.00
08:17:01 AM all 18.00 0.00 8.00 4.00 0.00 70.00
08:18:01 AM all 25.00 0.00 12.00 3.00 0.00 60.00
08:19:01 AM all 22.00 0.00 10.00 4.00 0.00 64.00
08:20:01 AM all 24.00 0.00 11.00 3.00 0.00 62.00
Average: all 21.80 0.00 10.20 3.80 0.00 64.20
- %user: ユーザーモードで動作しているプロセスのCPU使用率(計算中のプロセス)。
- %nice: 優先度の低いプロセス(nice)のCPU使用率。
- %system: カーネルモードで動作しているプロセスのCPU使用率。
- %iowait: 入出力操作を待っている時間の割合。
- %steal: 他の仮想マシンに奪われたCPU時間(仮想化環境の場合)。
- %idle: CPUがアイドル状態で過ごしている割合。
オプション「-r」:メモリ使用状況の表示
sar -r 1 5
「-r」 は メモリの使用状況を表示するオプションです。「1」 はデータを 1 秒ごとに取得する間隔を指定します。「5」 はデータの取得回数(ここでは 5 回)を指定します。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
08:15:01 AM kbmemfree kbmemused %memfree %memused kbbuffers kbcached
08:16:01 AM 1024000 2097152 32.00 68.00 10240 51200
08:17:01 AM 1000000 2120000 31.50 68.50 10500 52000
08:18:01 AM 1100000 2100000 34.00 66.00 10600 53000
08:19:01 AM 1030000 2110000 32.50 67.50 10800 54000
08:20:01 AM 1040000 2105000 33.00 67.00 10700 53500
Average: 1030800 2108400 32.80 67.20 10568 52760
- kbmemfree: 空いているメモリの量(KB)。
- kbmemused: 使用中のメモリの量(KB)。
- %memfree: 空いているメモリの割合。
- %memused: 使用中のメモリの割合。
- kbbuffers: バッファ領域に使われているメモリの量。
- kbcached: キャッシュ領域に使われているメモリの量。
オプション「-d」:ディスクI/O統計の表示
sar -d 1 5
「-d」 は ディスクI/O統計を表示するオプションです。「1」 はデータを 1 秒ごとに取得する間隔を指定します。「5」 はデータの取得回数(ここでは 5 回)を指定します。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
08:15:01 AM DEV tps blk_read/s blk_wrtn/s blk_read blk_wrtn
08:16:01 AM sda 100.0 1000.00 500.00 5000 2500
08:17:01 AM sda 120.0 1100.00 600.00 5500 3000
08:18:01 AM sda 110.0 1050.00 550.00 5250 2750
08:19:01 AM sda 105.0 1020.00 510.00 5100 2550
08:20:01 AM sda 115.0 1070.00 580.00 5350 2900
Average: sda 110.0 1068.00 548.00 5340 2700
- tps: 1秒間に処理されたI/O要求の回数。
- blk_read/s: 1秒あたりに読み込まれたブロックの数。
- blk_wrtn/s: 1秒あたりに書き込まれたブロックの数。
- blk_read: 合計で読み込まれたブロックの数。
- blk_wrtn: 合計で書き込まれたブロックの数。
オプション「-n DEV」:ネットワークインターフェースの統計表示
sar -n DEV 1 5
「-n DEV」 は ネットワークインターフェースの統計を表示するオプションです。「1」 はデータを 1 秒ごとに取得する間隔を指定します。「5」 はデータの取得回数(ここでは 5 回)を指定します。
Linux 5.8.0-53-generic (ubuntu) 07/08/2025 _x86_64_ (4 CPU)
08:15:01 AM IFACE rbytes/s tbytes/s rpack/s tpack/s errs/s drop/s
08:16:01 AM eth0 1000.00 2000.00 500.00 300.00 0.00 0.00
08:17:01 AM eth0 1200.00 2100.00 550.00 320.00 0.00 0.00
08:18:01 AM eth0 1100.00 2050.00 530.00 310.00 0.00 0.00
08:19:01 AM eth0 1150.00 2150.00 540.00 330.00 0.00 0.00
08:20:01 AM eth0 1250.00 2200.00 560.00 340.00 0.00 0.00
Average: eth0 1140.00 2100.00 536.00 320.00 0.00 0.00
- rbytes/s: 1秒あたりに受信したバイト数。
- tbytes/s: 1秒あたりに送信したバイト数。
- rpack/s: 1秒あたりに受信したパケット数。
- tpack/s: 1秒あたりに送信したパケット数。
- errs/s: 1秒あたりに発生した受信エラーの数。
- drop/s: 1秒あたりにドロップされたパケット数。
sarコマンドのまとめ
- sarコマンドは、CPU、メモリ、ディスク、ネットワークなどのシステムリソースの利用状況を監視する強力なツールです。
- 出力内容は、オプションによって異なりますが、リアルタイムおよび履歴データの両方を収集・表示できます。
- たとえば、sar -uでCPU使用率、sar -rでメモリ使用状況、sar -dでディスクI/O、sar -n DEVでネットワークインターフェースの統計を確認できます。
今回は以上になります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

