Linux sar コマンド

Linux コマンド大全


一、sar コマンドとは

sar(System Activity Reporter)は Linux システム上の強力なパフォーマンス監視ツールで、sysstat ツールキットの一部です。システムのさまざまなアクティビティ情報を収集、報告、保存できます。以下が含まれます:

  • CPU使用状況
  • メモリ使用率
  • I/Oアクティビティ
  • ネットワーク統計
  • プロセスアクティビティ
  • デバイス負荷など

1.1 sar コマンドの利点

  1. 履歴データ分析:過去の任意の時点のシステム状態を確認できます
  2. 包括的な監視:システムの主要なパフォーマンス指標を網羅します
  3. 低オーバーヘッド:データ収集がシステムパフォーマンスに与える影響はごくわずかです
  4. 自動化:定期的に自動でデータを収集するよう設定できます

二、インストールと基本設定

2.1 sysstat パッケージのインストール

ほとんどのLinuxディストリビューションでは、sarコマンドはsysstatパッケージをインストールすることで入手できます:

# Ubuntu/Debian
sudo apt-get install sysstat

# CentOS/RHEL
sudo yum install sysstat

# Fedora
sudo dnf install sysstat

2.2 データ収集の有効化

インストール後、データ収集サービスを有効にする必要があります:

例

# 設定ファイルを編集
sudo vi /etc/default/sysstat

# ENABLED="false" を次のように変更
ENABLED="true"

# サービスを再起動
sudo systemctl restart sysstat

デフォルトでは、sar は10分ごとにデータを収集し、保存先は/var/log/sysstat/ディレクトリです。


三、基本構文とよく使うパラメータ

3.1 基本構文形式

sar [选项] [间隔时间] [次数]

3.2 よく使うパラメータの説明

パラメータ 説明
-A すべてのレポートを表示
-u CPU使用率を表示
-r メモリ使用状況を表示
-b I/Oおよび転送レート統計を表示
-n DEV ネットワークデバイス統計を表示
-q システム負荷とキューの長さを表示
-d ディスクアクティビティを表示
-P ALL CPUごとの統計を表示
-s 開始時刻を指定
-e 終了時刻を指定
-f 指定したファイルからデータを読み込む

四、実際の応用例

4.1 CPU使用率のリアルタイム監視

例

# 2秒ごとに更新、合計5回表示
sar -u 2 5

出力例:

Linux 5.4.0-91-generic (hostname)  03/15/2023  _x86_64_  (4 CPU)

10:30:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:30:03 AM     all      5.12      0.00      1.02      0.51      0.00     93.35
10:30:05 AM     all      6.23      0.00      1.34      0.23      0.00     92.20

4.2 過去のメモリ使用状況の確認

例

# 今日のメモリ使用状況を確認
sar -r

# 指定した日付のデータを確認(ファイルの指定が必要)
sar -r -f /var/log/sysstat/sa15  # 15日のデータ

4.3 ディスクI/Oアクティビティの監視

例

# ディスクアクティビティを監視、1秒ごとに更新、合計10回
sar -d 1 10

4.4 ネットワークインターフェース統計の確認

例

# ネットワークインターフェースアクティビティを監視
sar -n DEV 1 5

五、高度な使い方とテクニック

5.1 複数の指標を組み合わせた監視

例

# CPU、メモリ、ディスクを同時に監視
sar -urdb 1 5

5.2 特定の時間帯のレポート生成

例

# 午前9時から10時までのCPU使用状況を確認
sar -u -s 09:00:00 -e 10:00:00

5.3 出力をファイルに保存

例

# 監視結果をファイルに保存
sar -A 1 10 > system_report.log

5.4 特定のCPUコアの監視

例

# CPU0の使用状況を監視
sar -P 0 1 5

六、データ解釈ガイド

6.1 CPU指標の解釈

指標 意味 正常範囲
%user ユーザー空間CPU使用率 <70%
%system カーネル空間CPU使用率 <30%
%iowait CPUのI/O待ち時間 <5%
%idle CPUアイドル時間 >20%

6.2 メモリ指標の解釈

指標 意味
kbmemfree 空き物理メモリ(KB)
kbmemused 使用済み物理メモリ(KB)
%memused メモリ使用率
kbbuffers バッファが使用するメモリ(KB)
kbcached キャッシュが使用するメモリ(KB)

6.3 ディスク指標の解釈

指標 意味
tps 1秒あたりの転送回数
rd_sec/s 1秒あたりの読み取りセクタ数
wr_sec/s 1秒あたりの書き込みセクタ数
%util デバイス使用率

七、よくある問題のトラブルシューティング

7.1 CPUボトルネックの特定

もし%user 或 %system80%を超えて継続する場合、次の可能性があります:

  • アプリケーションの計算負荷が高い
  • システムコールが多すぎる
  • コードの最適化またはCPUリソースの追加が必要

7.2 メモリ不足の判断

次の状況が同時に発生する場合、メモリ不足の可能性があります:

  • %memused90%を超えて継続
  • kbcached値が非常に低い
  • スワップパーティション(kbswpused)の使用量が高い

7.3 I/Oボトルネックの特定

%iowait高とディスク%util高は次のことを示します:

  • ディスクI/Oがボトルネックになっている
  • より高速なストレージデバイスが必要かもしれない
  • またはI/O集中型の操作を最適化する

Linux コマンド大全

その他の拡張