Linux性能監視に必須!sarコマンドの使い方と見方を徹底解説【CPU・メモリ・I/O分析】

はじめに

Linuxサーバのパフォーマンスに関する調査を行う際、瞬間的な状況だけでなく「どの時間帯に負荷が高かったのか」を把握することが重要です。そのようなときに役立つのが sar(System Activity Reporter) です。sar は CPU 使用率、メモリ使用量、ディスク I/O、ネットワークトラフィックなど、システム全体のパフォーマンスを定期的に記録・出力することができます。
本記事では、sar コマンドの基本から、sysstat パッケージの設定方法、実際のトラブルシューティングでの活用例を解説します。

sarによる取得情報

パフォーマンス関連のトラブルが発生した場合、リアルタイムのリソース状況であれば top コマンドなどを使って確認できますが、一時的なCPUやメモリの急上昇など、過去に発生したリソース異常を調査することはできません。そこで有効なのが sar による情報取得です。

sar はシステムの稼働データを一定間隔で自動収集し、CPU使用率やメモリ、I/O、ネットワークなどの情報を時系列で記録します。これらのデータは通常、/var/log/sa/ ディレクトリ以下に日付ごとのファイル(例:sa24)として保存されます。デフォルトでは10分間隔で情報を取得しています。

sar によって確認可能な情報をご説明します。sysstatのバージョン12.5で取得できる情報をご紹介します。

CPU使用率

直近のCPU使用率

sar -u コマンドでCPUコア全体のCPU使用率を取得することができます。

[root@quiz ~]# sar -u
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/25/2025      _x86_64_        (4 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:00 AM     all      0.17      0.00      0.17      0.01      0.00     99.65
12:20:01 AM     all      0.13      0.00      0.14      0.01      0.00     99.72
12:30:01 AM     all      0.14      0.02      0.15      0.03      0.00     99.65
12:40:02 AM     all      0.13      0.00      0.12      0.01      0.00     99.74
12:50:02 AM     all      0.15      0.00      0.14      0.01      0.00     99.71
01:00:02 AM     all      0.13      0.00      0.13      0.01      0.00     99.73
  • %user
    ユーザプロセス(アプリケーション)でCPUを使用している割合。通常のアプリによるCPU使用率は主に本値に含まれる。
  • %nice
    優先度(nice値)を変更して実行されているユーザプロセスのCPU使用率。本値が高くなっている場合は、バックグランド処理の負荷が高くなっている可能性がある。
  • %system
    カーネル空間(システムコール)でCPUを使用している割合。ファイルI/O、ネットワーク処理、割り込み処理などが含まれる。
  • %iowait
    CPUがI/O(ディスクやネットワークなど)の完了を待っている時間の割合。本値が高い場合、ストレージ性能やI/Oスケジューリングが原因の可能性がある。
  • %steal
    仮想環境で、他の仮想マシンにCPU時間を奪われている割合。高い場合はホスト側のCPUリソース不足の可能性がある。オーバコミット(※)していなければ、基本的に %steal は発生しない。
    ※オーバコミット:実際の物理リソース(CPUやメモリ)より多くの仮想リソースを割り当てること
  • %idle
    CPUがアイドル状態(何も処理していない時間)の割合。下記の通りCPU使用率を確認することができますので、まずは本値を確認しましょう
    CPU使用率(%) = 100 – %idle

過去日のCPU使用率

sarファイルを指定することで、過去日のCPU使用率を確認することもできます。下記コマンドを実行することで、25日の情報を確認することが可能です。

[root@quiz ~]# sar -u -f /var/log/sa/sa25
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/25/2025      _x86_64_        (4 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:00 AM     all      0.17      0.00      0.17      0.01      0.00     99.65
12:20:01 AM     all      0.13      0.00      0.14      0.01      0.00     99.72
12:30:01 AM     all      0.14      0.02      0.15      0.03      0.00     99.65
12:40:02 AM     all      0.13      0.00      0.12      0.01      0.00     99.74
12:50:02 AM     all      0.15      0.00      0.14      0.01      0.00     99.71
01:00:02 AM     all      0.13      0.00      0.13      0.01      0.00     99.73

リアルタイムのCPU使用率

sarコマンドを用いることで、リアルタイムでCPU使用率を把握することも可能です。取得間隔を短くすることで、より詳細な分析をすることが可能です。

一例として、CPUに関する情報を1秒ごとに10回取得した結果を記載します。

[root@quiz ~]# sar -u 1 10
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/25/2025      _x86_64_        (4 CPU)

10:35:59 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:36:00 PM     all      0.00      0.00      0.25      0.00      0.00     99.75
10:36:01 PM     all      0.00      0.00      0.25      0.00      0.00     99.75
10:36:02 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
10:36:03 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
10:36:04 PM     all      0.00      0.00      0.25      0.00      0.00     99.75
10:36:05 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
10:36:06 PM     all      0.25      0.00      0.00      0.00      0.00     99.75
10:36:07 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
10:36:08 PM     all      0.25      0.00      0.25      0.00      0.00     99.50
10:36:09 PM     all      0.00      0.00      0.25      0.00      0.00     99.75
Average:        all      0.05      0.00      0.18      0.00      0.00     99.77
[root@quiz ~]#

各コアのCPU使用率

また、sar -P all コマンドを実行することで、各CPUコアの使用率を取得することができます。特定のコアに負荷が偏っていないか、といった観点で確認することが可能です。

[root@quiz ~]# sar -P ALL
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/25/2025      _x86_64_        (4 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:00 AM     all      0.17      0.00      0.17      0.01      0.00     99.65
12:10:00 AM       0      0.16      0.00      0.16      0.01      0.00     99.67
12:10:00 AM       1      0.17      0.00      0.16      0.01      0.00     99.65
12:10:00 AM       2      0.18      0.00      0.18      0.01      0.00     99.63
12:10:00 AM       3      0.17      0.01      0.17      0.02      0.00     99.64

12:10:00 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:20:01 AM     all      0.13      0.00      0.14      0.01      0.00     99.72
12:20:01 AM       0      0.13      0.00      0.13      0.00      0.00     99.74
12:20:01 AM       1      0.13      0.00      0.15      0.01      0.00     99.70
12:20:01 AM       2      0.14      0.00      0.13      0.01      0.00     99.72
12:20:01 AM       3      0.14      0.00      0.13      0.01      0.00     99.72

メモリ使用量

直近のCPUメモリ使用量

sar -r コマンドでメモリ使用量を取得することができます。

[root@quiz ~]# sar -r
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/25/2025      _x86_64_        (4 CPU)

12:00:01 AM kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
12:10:00 AM   2705276   2643628    789396     21.09      7132    182664   4760420    127.19    843148     15296        76
12:20:01 AM   2706400   2645520    786740     21.02      8440    182856   4760424    127.19    843180     16788        80
12:30:01 AM   2713580   2647868    789064     21.08      3716    178204   4760240    127.18    839680     10584        92
12:40:02 AM   2710588   2646392    789180     21.08      4620    180172   4759880    127.17    841300     11692        24
12:50:02 AM   2709444   2645756    789280     21.09      5408    180376   4758212    127.13    840904     12680        44
01:00:02 AM   2709976   2646812    787708     21.05      6168    180632   4757288    127.10    840004     13612        76
  • kbmemfree
    空きメモリ容量(kB単位)。実際に何も使用されていないメモリ量を示す。
  • kbavail
    利用可能なメモリ容量(kB単位)
  • kbmemused
    使用中のメモリ容量(kB単位)
  • %memused
    メモリ使用率。kbmemused / (kbmemused + kbmemfree) × 100 で計算。
    ※再利用可能なバッファ、キャッシュの使用量も含んだ使用率となりますので、数値が高くても必ずしも問題ではありません。むしろkbavailを考慮した下記の使用率を確認して下さい。
    実際のメモリ使用率(%) = (1 – kbavail / (kbmemfree + kbmemused)) × 100
  • kbbuffers
    カーネルがバッファとして使っているメモリ量(KB単位)。ディスクブロックI/Oバッファに使用されているメモリ。ファイルシステムメタデータ(inodeやディレクトリ情報など)のキャッシュ領域。
  • kbcached
    カーネルがキャッシュ(ページキャッシュやファイルキャッシュ)として使っているメモリ量(KB単位)。ファイルシステムから読み込まれたデータや、将来再利用される可能性のあるデータが格納される領域。
  • %commit
    コミット済みメモリ(OSが割り当てを確約したメモリの総量)が、物理メモリ+スワップに対してどれだけの割合かを示す。100%を超えるとオーバーコミット状態(リソース不足のリスク)。
  • kbactive
    アクティブ(頻繁に使用中)のメモリ領域。最近参照されており、スワップアウトされにくい領域。
  • kbinact
    インアクティブ(しばらく使われていない)メモリ領域。必要に応じてスワップアウトされる可能性がある。
  • kbdirty
    ディスクへの書き込み待ちデータ(未フラッシュページ)。これが増え続ける場合、I/O遅延やディスクボトルネックが疑われる。

CPUと同様に、リアルタイムの情報取得や過去日の情報取得も可能です。

スワップ使用量

sar -S コマンドによって、スワップ使用量を確認することができます。

[root@quiz ~]# sar -S
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)    2025-10-26  _x86_64_    (4 CPU)

12:00:01 AM kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
12:00:11 AM   2097148     1024      0.05        512     50.00
12:00:21 AM   2096124     2048      0.10       1024     50.00
12:00:31 AM   2096124     2048      0.10       1024     50.00
Average:      2096465     1700      0.08        853     50.00
  • kbswpfree
    現在未使用のスワップ領域量(KB単位)
  • kbswpused
    使用中スワップ領域(KB)
  • %swpused
    スワップ使用率 = (kbswpused / (kbswpfree + kbswpused)) × 100
  • kbswpcad
    キャッシュ済みスワップ領域(KB)
  • %swpcad
    キャッシュ済み割合 = (kbswpcad / kbswpused) × 100

ディスクI/O

sar -d コマンドでディスクI/O関連の情報を取得することができます。

[root@quiz ~]# sar -d
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/26/2025      _x86_64_        (4 CPU)

12:00:01 AM       DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
12:10:05 AM       sda      1.41     13.14      6.11      0.00     13.61      0.00      3.13      0.30
12:20:06 AM       sda      1.01      0.00      7.24      0.00      7.18      0.00      0.86      0.04
12:30:02 AM       sda      1.65     15.50      7.62      0.00     14.01      0.00      0.80      0.07
12:40:07 AM       sda      5.69    220.58      8.65      0.00     40.31      0.00      0.67      0.27
12:50:08 AM       sda      1.26      0.01      9.93      0.00      7.88      0.00      0.80      0.03
01:00:09 AM       sda      1.01      0.01      8.83      0.00      8.74      0.00      0.88      0.04
  • DEV
    デバイス名
  • tps
    I/O転送数(transactions per second)。1秒あたりに完了したI/Oリクエストの回数(読み書き両方を含む)。
  • rkB/s
    読み込み速度(read KB per second)。1秒あたりにディスクから読み込まれたデータ量(KB単位)。
  • wkB/s
    書き込み速度(write KB per second)。1秒あたりにディスクへ書き込まれたデータ量(KB単位)。
  • dkB/s
    古いカーネルで使われていた項目。RHEL9では通常0固定です。
  • areq-sz
    平均リクエストサイズ(average request size)。1回のI/Oリクエストあたりの平均データ量(KB単位)。
  • aqu-sz
    平均キューサイズ(average queue size)。I/O待ちの平均リクエスト数。高いとディスクキューに詰まりがある。
  • await
    平均I/O待ち時間(ms)。I/O要求の送信から完了までの平均時間(ミリ秒)。高いとI/O遅延の可能性。
  • %util
    デバイス利用率。ディスクがI/O要求を処理していた時間の割合。100%に近いとI/Oボトルネックの可能性大。

CPU、メモリと同様に、リアルタイムの情報取得や過去日の情報取得も可能です。

ネットワーク

sar -n DEV コマンドでネットワークインタフェースごとの通信状況を取得することができます。

[root@quiz ~]# sar -n DEV
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/28/2025      _x86_64_        (4 CPU)

12:00:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
12:10:00 AM        lo      0.06      0.06      0.03      0.03      0.00      0.00      0.00      0.00
12:10:00 AM      eth0      3.49      3.28      0.51      0.67      0.00      0.00      0.00      0.00
12:20:01 AM        lo      0.36      0.36      0.07      0.07      0.00      0.00      0.00      0.00
  • IFACE
    監視対象のネットワークデバイスを示します。
  • rxpck/s
    秒間に受信したパケット数。高すぎる場合、受信処理がCPU負荷の原因になることもあります。
  • txpck/s
    秒間に送信したパケット数。アプリケーションやクライアントの通信頻度を把握できます。
  • rxkB/s
    1秒あたりの受信データ量(KB単位)、つまりネットワークの受信スループットです。継続的に高い場合は受信帯域の確認が必要です。
  • txkB/s
    1秒あたりの送信データ量(KB単位)、つまりネットワークの送信スループットです。大量送信が続くとネットワーク負荷の原因になります。
  • rxcmp/s
    圧縮された受信パケット数(/秒)。圧縮転送をサポートするインタフェースでのみ利用。通常は常に0です。
  • txcmp/s
    圧縮された送信パケット数(/秒)。圧縮転送をサポートするインタフェースでのみ利用。通常は常に0です。
  • rxmcst/s
    マルチキャストパケット受信数(/秒)。ネットワーク内でのマルチキャスト通信(例:監視・配信系)がある場合に増加します。
  • %ifutil
    インタフェース使用率(帯域利用率)。ネットワークカードの理論帯域に対する利用率(%)。高い場合は帯域不足を疑います。

CPU、メモリ、ディスクI/Oと同様に、リアルタイムの情報取得や過去日の情報取得も可能です。

sysstat の設定

sarによる情報取得を行うためのsysstatの導入および設定について説明します。RHEL9、AlmaLinux9を対象とした手順となります。

sysstatのインストール

dnfコマンドでsysstatをインストールします。ここではsysstat12.5がインストールされています。

[root@quiz ~]# dnf install -y sysstat
Last metadata expiration check: 0:22:53 ago on Fri 24 Oct 2025 06:30:32 AM JST.
Dependencies resolved.
=========================================================================================================================================================================================================================================
 Package                                                     Architecture                                       Version                                                      Repository                                             Size
=========================================================================================================================================================================================================================================
Installing:
 sysstat                                                     x86_64                                             12.5.4-9.el9                                                 appstream                                             465 k
Installing dependencies:
 avahi-libs                                                  x86_64                                             0.8-22.el9_6.1                                               baseos                                                 66 k
 libuv                                                       x86_64                                             1:1.42.0-2.el9_4                                             appstream                                             146 k
 lm_sensors-libs                                             x86_64                                             3.6.0-10.el9                                                 appstream                                              41 k
 pcp-conf                                                    x86_64                                             6.3.7-1.el9_6                                                appstream                                              31 k
 pcp-libs                                                    x86_64                                             6.3.7-1.el9_6                                                appstream                                             644 k

Transaction Summary
=========================================================================================================================================================================================================================================
Install  6 Packages

Total download size: 1.4 M
Installed size: 3.8 M
Downloading Packages:
(1/6): libuv-1.42.0-2.el9_4.x86_64.rpm                                                                                                                                                                   1.4 MB/s | 146 kB     00:00
(2/6): pcp-conf-6.3.7-1.el9_6.x86_64.rpm                                                                                                                                                                 291 kB/s |  31 kB     00:00

~~Omitted~~                                                                                                                                                                                4/6

  Verifying        : sysstat-12.5.4-9.el9.x86_64                                                                                                                                                                                     5/6
  Verifying        : avahi-libs-0.8-22.el9_6.1.x86_64                                                                                                                                                                                6/6

Installed:
  avahi-libs-0.8-22.el9_6.1.x86_64        libuv-1:1.42.0-2.el9_4.x86_64        lm_sensors-libs-3.6.0-10.el9.x86_64        pcp-conf-6.3.7-1.el9_6.x86_64        pcp-libs-6.3.7-1.el9_6.x86_64        sysstat-12.5.4-9.el9.x86_64

Complete!
[root@quiz ~]#
[root@quiz ~]# rpm -q sysstat
sysstat-12.5.4-9.el9.x86_64
[root@quiz ~]#

自動処理の有効化設定

下記コマンドを実行して、sar コマンドのデータ収集を自動化するための systemd タイマーを有効化・即時起動します。systemd タイマーを有効にすることで、デフォルト10分ごとにsarコマンドで参照できるデータが /var/log/sa 配下にsaXXファイルが蓄積されていきます。

[root@quiz ~]# systemctl enable --now sysstat-collect.timer
[root@quiz ~]#
[root@quiz ~]# systemctl status sysstat-collect.timer
● sysstat-collect.timer - Run system activity accounting tool every 10 minutes
     Loaded: loaded (/usr/lib/systemd/system/sysstat-collect.timer; enabled; preset: disabled)
     Active: active (waiting) since Fri 2025-10-24 06:54:50 JST; 11s ago
      Until: Fri 2025-10-24 06:54:50 JST; 11s ago
    Trigger: Fri 2025-10-24 07:00:00 JST; 4min 57s left
   Triggers: ● sysstat-collect.service

Oct 24 06:54:50 quiz.eeengineer.com systemd[1]: Started Run system activity accounting tool every 10 minutes.
[root@quiz ~]#

続いて下記コマンドを実行して、sar コマンドのデータ収集結果を集計するスクリプトを有効化、即時起動します。深夜0時過ぎに本スクリプトが起動し、/var/log/sa 配下にsarXファイルが作成されます。本ファイルはテキストファイルになりますので、catやviewコマンドで内容を確認することができます。

[root@quiz ~]# systemctl enable --now sysstat-summary.timer
[root@quiz ~]#
[root@quiz ~]# systemctl status sysstat-summary.timer
● sysstat-summary.timer - Generate summary of yesterday's process accounting
     Loaded: loaded (/usr/lib/systemd/system/sysstat-summary.timer; enabled; preset: disabled)
     Active: active (waiting) since Fri 2025-10-24 06:54:54 JST; 12s ago
      Until: Fri 2025-10-24 06:54:54 JST; 12s ago
    Trigger: Sat 2025-10-25 00:07:00 JST; 17h left
   Triggers: ● sysstat-summary.service

Oct 24 06:54:54 quiz.eeengineer.com systemd[1]: Started Generate summary of yesterday's process accounting.
[root@quiz ~]#

情報取得間隔の変更

sysstat-collector.timer のデフォルト設定は下記の通りとなっており、情報取得の間隔は10分間となっています。[Timer] の項目で情報取得間隔を設定可能です。

[root@quiz ~]# systemctl cat sysstat-collect.timer
# /usr/lib/systemd/system/sysstat-collect.timer
# /usr/lib/systemd/system/sysstat-collect.timer
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-12.5.4 systemd unit file:
#        Activates activity collector every 10 minutes

[Unit]
Description=Run system activity accounting tool every 10 minutes

[Timer]
OnCalendar=*:00/10

[Install]
WantedBy=sysstat.service
[root@quiz ~]#

ここでは、情報取得間隔を1分間隔に変更してみましょう。

ディレクトリを作成して、設定ファイル override.conf を作成します。
「onCalendar=」でデフォルト設定のリセットをした後に、「OnCalendar=*:00/1」の設定で情報取得間隔を1分間隔に変更します。

[root@quiz ~]# mkdir -p /etc/systemd/system/sysstat-collect.timer.d
[root@quiz ~]#
[root@quiz ~]# vi /etc/systemd/system/sysstat-collect.timer.d/override.conf
[root@quiz ~]# cat /etc/systemd/system/sysstat-collect.timer.d/override.conf
[Timer]
OnCalendar=
OnCalendar=*:00/1
[root@quiz ~]#

続いて、追加した設定を反映します。

[root@quiz ~]# systemctl daemon-reload
[root@quiz ~]# systemctl restart sysstat-collect.timer
[root@quiz ~]# systemctl cat sysstat-collect.timer
# /usr/lib/systemd/system/sysstat-collect.timer
# /usr/lib/systemd/system/sysstat-collect.timer
# (C) 2014 Tomasz Torcz <tomek@pipebreaker.pl>
#
# sysstat-12.5.4 systemd unit file:
#        Activates activity collector every 10 minutes

[Unit]
Description=Run system activity accounting tool every 10 minutes

[Timer]
OnCalendar=*:00/10

[Install]
WantedBy=sysstat.service

# /etc/systemd/system/sysstat-collect.timer.d/override.conf
[Timer]
OnCalendar=
OnCalendar=*:00/1
[root@quiz ~]#
[root@quiz ~]# systemctl list-timers sysstat-collect.timer
NEXT                        LEFT     LAST                        PASSED  UNIT                  ACTIVATES
Wed 2025-10-29 06:07:00 JST 27s left Wed 2025-10-29 06:06:05 JST 26s ago sysstat-collect.timer sysstat-collect.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.
[root@quiz ~]#

下記の通り、NEXT の時刻が LAST の1分後になっていれば設定が正しく反映されています。

[root@quiz ~]# systemctl list-timers sysstat-collect.timer
NEXT                        LEFT     LAST                        PASSED  UNIT                  ACTIVATES
Wed 2025-10-29 06:07:00 JST 27s left Wed 2025-10-29 06:06:05 JST 26s ago sysstat-collect.timer sysstat-collect.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.
[root@quiz ~]#

実際に取得した情報を確認してみましょう。途中から1分間隔のリソースが記録されているはずです。

[root@quiz ~]# sar -f /var/log/sa/sa29
Linux 5.14.0-570.19.1.el9_6.x86_64 (quiz.eeengineer.com)        10/29/2025      _x86_64_        (4 CPU)

12:00:03 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:03 AM     all      0.24      0.08      0.21      0.05      0.00     99.42
12:20:00 AM     all      0.29      0.00      0.19      0.01      0.00     99.51
12:30:02 AM     all      0.31      0.00      0.20      0.02      0.00     99.48
~~Omitted~~
05:10:07 AM     all      0.04      0.00      0.06      0.00      0.00     99.89
05:20:03 AM     all      0.06      0.00      0.06      0.00      0.00     99.88
05:30:08 AM     all      0.06      0.00      0.07      0.01      0.00     99.87
05:40:09 AM     all      0.04      0.00      0.05      0.00      0.00     99.90
05:50:03 AM     all      0.05      0.02      0.07      0.02      0.00     99.84
06:00:00 AM     all      0.13      0.00      0.13      0.02      0.00     99.72
06:06:01 AM     all      0.09      0.00      0.09      0.01      0.00     99.82
06:06:05 AM     all      0.16      0.00      0.21      0.00      0.00     99.63
06:07:01 AM     all      0.05      0.00      0.06      0.00      0.00     99.89
06:08:01 AM     all      0.04      0.00      0.07      0.00      0.00     99.88
06:09:01 AM     all      0.07      0.00      0.08      0.00      0.00     99.85
06:10:01 AM     all      0.04      0.00      0.07      0.00      0.00     99.89

[root@quiz ~]#

情報保存期間の変更

sarファイルの情報は、デフォルトでは28日保存の設定となっています。下記の通り設定ファイル sysstat におけるHISTORYの項目の値を編集してください。ここでは14日を設定しています。

[root@quiz ~]# vi /etc/sysconfig/sysstat
[root@quiz ~]# grep HISTORY /etc/sysconfig/sysstat
HISTORY=14
[root@quiz ~]#

設定を読み込んでサービスを再起動します。

[root@quiz ~]# systemctl daemon-reexec
[root@quiz ~]# systemctl restart sysstat-collect.timer
[root@quiz ~]# systemctl status sysstat-collect.timer
● sysstat-collect.timer - Run system activity accounting tool every 10 minutes
     Loaded: loaded (/usr/lib/systemd/system/sysstat-collect.timer; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/sysstat-collect.timer.d
             └─override.conf
     Active: active (waiting) since Wed 2025-10-29 06:45:25 JST; 14s ago
      Until: Wed 2025-10-29 06:45:25 JST; 14s ago
    Trigger: Wed 2025-10-29 06:46:00 JST; 20s left
   Triggers: ● sysstat-collect.service

Oct 29 06:45:25 quiz.eeengineer.com systemd[1]: Stopping Run system activity accounting tool every 10 minutes...
Oct 29 06:45:25 quiz.eeengineer.com systemd[1]: Started Run system activity accounting tool every 10 minutes.
[root@quiz ~]#
[root@quiz ~]# systemctl restart sysstat-summary.timer
[root@quiz ~]# systemctl status sysstat-summary.timer
● sysstat-summary.timer - Generate summary of yesterday's process accounting
     Loaded: loaded (/usr/lib/systemd/system/sysstat-summary.timer; enabled; preset: disabled)
     Active: active (waiting) since Wed 2025-10-29 06:45:45 JST; 5s ago
      Until: Wed 2025-10-29 06:45:45 JST; 5s ago
    Trigger: Thu 2025-10-30 00:07:00 JST; 17h left
   Triggers: ● sysstat-summary.service

Oct 29 06:45:45 quiz.eeengineer.com systemd[1]: Started Generate summary of yesterday's process accounting.
[root@quiz ~]#

kSarによりsar情報をグラフ化する方法

sar で取得した情報は、数値だけで確認するとわかりにくいことがあります。そこで、グラフ化して視覚的に確認する方法をご紹介します。ここでは、kSar というツールを使った手順を説明します。

kSar は、Linux/Unix 系システムで収集した sar データ を視覚的にグラフ化するための Java製ツール です。kSar を使うことで、CPU・メモリ・ディスクI/O・ネットワークなどの統計情報を、折れ線グラフや棒グラフで簡単に可視化できます。

本記事では、Linuxサーバで取得した sar ファイルを Windows端末にダウンロード し、その Windows 環境上で kSar を使ってグラフ化する方法をご説明します。

kSar のダウンロード

下記URLより kSar の jar ファイルを をダウンロードして、適当なフォルダに保存してください。
https://github.com/vlsi/ksar/releases

kSar の起動

コマンドプロンプトを起動して、ダウンロードしたjarファイルを以下の通り実行します。

Microsoft Windows [Version 10.0.26100.6899]
(c) Microsoft Corporation. All rights reserved.

C:\Users\user>cd C:\Users\user\Documents\kSar

C:\Users\user\Documents\kSar>
C:\Users\user\Documents\kSar>java -jar ksar-6.0.0.jar
08:34:59.944 [main] INFO  net.atomique.ksar.Main - ksar Version : 6.0.0
08:34:59.955 [main] INFO  net.atomique.ksar.Main - Java runtime Version : 17.0.2+8-86
08:34:59.955 [main] INFO  net.atomique.ksar.Main - Java runtime architecture : amd64

※kSarを起動するにはバージョン17以降のJavaが必要となりますので、事前にインストールしておいてください。

以下の通りkSarのGUI画面が表示されるはずです。

kSarによるグラフ化

それでは、sarファイルをグラフ化してみましょう。Linuxサーバにて作成されたsarファイルをロードしていきます。
Data > Load from a file… を押下します。

対象のsarファイルを指定して、Open を押下します。

date formatの選択画面が表示されるので、OK を押下します。

以下の通り、各種リソースの項目が表示されたら成功です。

各種リソース項目をクリックすると、以下のようにグラフを表示させることができます。

Exportタブを押下することでpdfやcsvでデータを出力させることもできるので、非常に便利です。

まとめ

本記事では、Linuxサーバのパフォーマンス監視に便利な sar コマンドの基本と活用方法を解説しました。ポイントを整理すると以下の通りです。

  • sarの役割:CPU、メモリ、ディスクI/O、ネットワークなどのリソース状況を定期的に記録し、過去の負荷状況も確認可能。
  • 情報の確認方法
    • sar -u:CPU使用率(全体・過去日・リアルタイム)
    • sar -r:メモリ使用量、sar -S:スワップ
    • sar -d:ディスクI/O、sar -n DEV:ネットワーク
    • sar -P ALL:各CPUコアの負荷確認
  • sysstatの設定:sysstat パッケージをインストールし、systemdタイマーで自動収集と集計を有効化。収集間隔や保存期間の調整も可能。
  • データの可視化:取得したsarファイルは kSarを使うことでグラフ化でき、CPU・メモリ・I/O・ネットワークの状況を視覚的に把握可能。

sarを活用することで、過去のリソース状況の分析やボトルネックの特定が容易になり、Linuxサーバの安定運用に役立ちます。

コメント