12-LPIC「level1」

LPIC|level 1【sarコマンド】

目標

  • 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 コマンドの使い方は次の通りです。

Ubuntuでは、sarコマンドはデフォルトではインストールされていません。そのため、sysstatパッケージを手動でインストールする必要があります。

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: キャッシュ領域に使われているメモリの量。

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: 合計で書き込まれたブロックの数。

tps(transactions per second)は「トランザクション数」を示し、1秒あたりにディスクに対する読み書きが行われた回数を表します。もし tps が高い場合、ディスクI/Oが頻繁に発生していることを意味します。

オプション「-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秒あたりにドロップされたパケット数。

drop/s(ブロック読み取り速度) は「1秒あたりにドロップされたパケット数」を示し、ネットワークの輻輳(ふくそう)や過負荷を示す指標となります。これが増加すると、ネットワークに何らかの問題が発生している可能性があります。

sarコマンドのまとめ

  • sarコマンドは、CPU、メモリ、ディスク、ネットワークなどのシステムリソースの利用状況を監視する強力なツールです。
  • 出力内容は、オプションによって異なりますが、リアルタイムおよび履歴データの両方を収集・表示できます。
  • たとえば、sar -uでCPU使用率、sar -rでメモリ使用状況、sar -dでディスクI/O、sar -n DEVでネットワークインターフェースの統計を確認できます。

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

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

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST