はじめに
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サーバの安定運用に役立ちます。


コメント