Linux

【完全マスター】sarコマンドの基本|実例付きで使い方を解説

(最終更新月:2023年5月)

✔このような方へ向けて書かれた記事となります

「sarコマンドにはどのような機能があるのだろうか?」

「sarコマンドの使い方を学びたい」

「sarコマンドの具体的な使用例を見て理解したい」

✔当記事を通じてお伝えすること

  • sarコマンドの基本的な概念
  • sarコマンドの使い方及び応用法
  • sarコマンドの具体的な使用例

この記事では、sarコマンドの基本からオプションを活用した応用法まで、実際の例を用いてわかりやすく解説します。

最後までお読みいただけると幸いです。

sarコマンドの基本事項5選

sarコマンドとはどのようなものでしょうか?

まずは以下の基本事項を確認したうえで、応用した使い方へ進みましょう。

  • sarコマンドとは?
  • sarコマンドのインストール方法
  • コマンドの構文と基本的なオプション
  • よく使うオプションとその解説
  • sarコマンドの出力とその読み方

sarコマンドとは?

sar(System Activity Reporter)コマンドは、システムのアクティビティ情報を定期的に収集し、報告するためのLinuxコマンドです。

以下のようなシステムのパフォーマンスを詳細に確認するために用いられます。

  • CPUの使用率
  • メモリ使用量
  • I/O活動
  • ネットワーク使用

sarコマンドのインストール方法

sarコマンドは、sysstatパッケージに含まれています。

UbuntuなどのDebian系のLinuxディストリビューションでは次のコマンドでインストールできます。

sudo apt-get install sysstat

CentOSやFedoraなどのRed Hat系では、次のコマンドを使用します。

sudo yum install sysstat

コマンドの構文と基本的なオプション

sarコマンドの基本的な構文は次のようになります。

sar [オプション] [時間間隔 [回数]]

時間間隔は秒単位で指定し、指定した間隔でシステムの情報を収集します。

回数は情報を収集する回数を指定します。

時間間隔と回数を指定しない場合、既に収集された情報が表示されます。

よく使うオプションとその解説

sarコマンドには多くのオプションがありますが、ここでは特によく使われるものをいくつか紹介します。

  • -u: CPU使用率を表示し、出力は%user(ユーザーレベルのタスクによるCPU使用率)、%system(システムレベルのタスクによるCPU使用率)、%idle(CPUがアイドル状態だった割合)を含む
  • -r: メモリ使用状況を表示し、出力はkbmemfree(フリーメモリ量)、kbmemused(使用中のメモリ量)、%memused(使用中のメモリの割合)を含む
  • -b: このオプションはI/O操作に関するもの

sarコマンドの出力とその読み方

sarコマンドの出力はオプションにより異なりますが、一般的には時間(時分)とその時点でのシステムリソース使用状況が表示されます。

例えば、CPU使用率を表示するための-uオプションを使用した場合、以下のような出力が得られます。

08:00:01        CPU     %user     %nice   %system   %iowait    %steal     %idle
08:10:01        all      0.12      0.00      0.03      0.01      0.00     99.84

この出力では、各列が以下を示しています。

  • 時間
  • CPU識別子
  • ユーザーモードでのCPU使用率、
  • ice値の高い(優先度の低い)タスクによるCPU使用率
  • システムモードでのCPU使用率
  • I/O待ちでのCPU使用率
  • 仮想CPUの強制的なアイドル
  • CPUのアイドル時間

全ての値はパーセンテージで表示されます。

 sarコマンドの使い方

sarコマンドで具体的な使い方を見ていきましょう。

以下の項目別に見ることで、さまざまな使い方を理解できます。

  • CPUの状況を確認する方法
  • メモリの状況を確認する方法
  • スワップの状況を確認する方法
  • ネットワーク情報の確認方法
  • ディスクI/Oの確認方法
  • リソース状況確認の実行例

CPUの状況を確認する方法

CPUの状況を確認するには、-uオプションを使用します。

これは、以下を表示し、CPU使用率をパーセンテージで表示するものです。

  • ユーザーモード
  • システムモード
  • I/O待ち

メモリの状況を確認する方法

メモリの使用状況を確認するには、-rオプションを使用

これにより表示されるのは以下のとおりです。

  • 使用中のメモリ量
  • 利用可能なメモリ量
  • バッファに使用されているメモリ量

スワップの状況を確認する方法

スワップ領域の使用状況を確認するには、-Sオプションを使用します。

表示されるものはこちらです。

  • 使用中のスワップ領域の量
  • 空きスワップ領域の量

ネットワーク情報の確認方法

ネットワークの使用状況を確認するためには、-n DEVオプションを使用しましょう。

ネットワークに関する以下の情報が表示されます。

  • 各ネットワークインターフェースの受信パケット数
  • 送信パケット数
  • エラーパケット数

ディスクI/Oの確認方法

ディスクI/Oの状況を確認するためには、-dオプションを使用します。

これにより表示されるのは以下のとおりです。

  • 各ディスクデバイスの読み取り/書き込みの回数や量
  • 平均待ち時間

リソース状況確認の実行例

それでは、具体的にCPUとメモリのリソース状況を確認する例を見てみましょう。

以下のコマンドは、CPUの使用率とメモリの使用状況を5秒ごとに3回表示します。

sar -u -r 5 3

出力は以下のようになります。

Linux 5.4.0-42-generic (ubuntu) 05/15/2023 _x86_64_ (1 CPU)
08:20:01        CPU     %user     %nice   %system   %iowait    %steal     %idle
08:20:06        all      0.00      0.00      0.00      0.00      0.00    100.00
08:20:11        all      0.20      0.00      0.20      0.00      0.00     99.60
08:20:16        all      0.20      0.00      0.00      0.00      0.00     99.80
Average:        all      0.13      0.00      0.07      0.00      0.00     99.80
08:20:01 kbmemfree kbmemused  %memused kbcommit   %commit  kbactive   kbinact
08:20:06   8167000   1605332     16.43   1843656     18.98    895288    562748
08:20:11   8167000   1605332     16.43   1843656     18.98    895288    562748
08:20:16   8167000   1605332     16.43   1843656     18.98    895288    562748
Average:   8167000   1605332     16.43   1843656     18.98    895288    562748

sarコマンドのオプション一覧

sarコマンドのオプション一覧を表にしました。

確認の際に使いましょう。

オプション説明使用例
-uCPU使用率を表示します。sar -u 1 3
-rメモリ使用状況を表示します。sar -r 1 3
-bI/O操作に関する情報を表示します。sar -b 1 3
-n DEVネットワークデバイスの統計を表示します。sar -n DEV 1 3
-n EDEVネットワークデバイスのエラー統計を表示します。sar -n EDEV 1 3
-dディスクI/O統計を表示します。sar -d 1 3
-qシステムの負荷平均値を表示します。sar -q 1 3
-A全てのオプションを有効にします。sar -A
-o [file]バイナリ形式で[file]に出力します。sar -o outputfile 1 3

上記の使用例では、1秒ごとに3回のサンプリングを行います。この数値は任意に調整することができます。

 sarコマンドを活用する具体的なシナリオ

sarコマンドを活用する具体的なシナリオはこちら。

どのような場面で使うかを明確にしておきましょう。

  • 特定の時間間隔でのリソース監視
  • データのグラフ化
  • スクリプトやエイリアスを用いた高度な利用法

特定の時間間隔でのリソース監視

ある特定の時間間隔でシステムのリソースを監視する場合、sarコマンドは非常に役立ちます。

例えば、次のコマンドは1時間ごとにシステムの全体的な状況を調査するものです。

sar -A 3600 > system_status.log

このコマンドは、-Aオプションを使用して全ての情報を収集し、3600秒(1時間)ごとにその情報をsystem_status.logというファイルに出力します。

データのグラフ化

sarコマンドで収集したデータをグラフ化することで、パフォーマンスの傾向やパターンを視覚的に理解することができます。

グラフ化には様々なツールがありますが、その中でも一般的なツールとしてgnuplotがあります

スクリプトやエイリアスを用いた高度な利用法

よく使うsarコマンドの組み合わせは、スクリプトやシェルのエイリアスとして保存しておくと便利です。

例えば、以下のようにエイリアスを設定すると、sarstatsというコマンド一つでCPUとメモリの状況を確認できます。

alias sarstats='sar -u -r 1 1'

このエイリアスは、-uと-rオプションを使用してCPUとメモリの状況を1秒間隔で1回表示します。

 トラブルシューティングとFAQ

sarコマンドを使う上でのトラブルや質問事項をご覧ください。

事前に理解しておけば、回避できるものも多いです。

  • よくあるエラーと対処法
  • sarコマンドの使用上の注意点
  • よくある質問と回答

よくあるエラーと対処法

sarコマンドを使用していて遭遇する可能性のある一般的なエラーはこちら。

annot open /var/log/sysstat/sa18: No such file or directory

このエラーは、sarコマンドがシステムのアクティビティデータを探しに行った際に、そのデータが存在しないことを示しています。

この問題は、sysstatサービスが起動していないか、適切に設定されていない可能性があります

この問題を解決するには、以下の手順を実行します。

  1. sysstatサービスが動作しているかどうかを確認
  2. もしサービスが停止していれば、それを再起動
  3. sysstatの設定ファイル(通常は/etc/default/sysstat)を開き、データ収集が有効になっているか確認

sarコマンドの使用上の注意点

sarコマンドは非常に強力なツールですが、使用する際にはいくつか注意点があります。

理由をまとめると以下のとおりです。

  • データの収集頻度が高すぎると、システムに大きな負荷をかける可能性がある
  • 出力データが非常に大きくなる可能性がある
  • 特定のプロセスやタスクの詳細なパフォーマンスデータを得るには、他のツールの使用が必要な場合がある

システムへの不可やパフォーマンスを考えて、適切にローテーションや削除をおこなってください。

よくある質問と回答

Q: sarコマンドのデータはどのくらいの期間保存されますか?

A: これはsysstatの設定によります。

デフォルトでは、sysstatは7日分のデータを保持しますが、これは/etc/sysstat/sysstatファイル内のHISTORYパラメータで変更可能です。

Q: sarコマンドの出力は時刻順に表示されますか?

A: はい、sarコマンドの出力は時間順(昇順)に表示されます。最初の列は常に時間(HH:MM:SS)を示します。

 まとめ

sarコマンドは、システムのパフォーマンスをモニタリングし、問題の診断に役立つ重要なツールです。

このツールを最大限に活用するためには、さまざまなオプションの意味を理解し、それらを組み合わせて使用する方法を習得することが重要といえます。

まずはいろいろと触りながら、その使い方を実感してみましょう。

それができたら、以下のようなコマンドと組み合わせて、より実践的に使ってみることをおすすめします。