AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Amazon EC2 Linux インスタンスのパフォーマンスメトリクスを監視するために、SAR を設定して使用する方法を教えてください。
System Activity Reporter (SAR) を設定し、SAR コマンドを使用して Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスのパフォーマンスメトリクスを監視したいです。
簡単な説明
SAR モニタリングツールを使用して CPU、メモリ、I/O 使用量のパフォーマンスデータを収集し、過去のメトリクスを収集するように SAR を設定します。
注: SAR は sysstat パッケージに含まれていますが、新しい Linux ディストリビューションでは、デフォルトではツールを使用できない場合があります。詳細については、「Amazon Linux、RHEL、CentOS、または Ubuntu を実行している EC2 インスタンスで、ATOP および SAR モニタリングツールを設定する方法を教えてください」を参照してください。
解決策
設定ファイルを確認し、編集する
設定ファイルには、SAR アクティビティを制御するいくつかのデフォルト値が含まれています。これらの値を確認または編集するには、/etc/sysconfig/sysstat 設定ファイルを開きます。
- HISTORY=28 - このパラメータは、SAR がパフォーマンスログファイルを保持する日数を決定します。デフォルト値は 28 日です。
- COMPRESSAFTER=31 - このパラメータは、ファイルを圧縮するまでに SAR が待機する日数を決定します。デフォルト値は 31 日です。
注: ログファイルを 28 日よりも長く保存するように構成ファイルを設定した場合、SAR は各月のファイルを別々のディレクトリに保存します。 - SA_DIR=/var/log/sa - このパラメータは、SAR がログファイルを保存する場所を決定します。
- ZIP="bzip2" - このパラメータは、圧縮されたログファイルを含むデフォルトの zip ファイルを決定します。ファイルを 31 日よりも長く保存する場合は、必ず圧縮を有効にしてください。
システムアクティビティデータコレクター (sadc) 操作が、データ収集を実行します。詳しい情報については、ArchLinux のウェブサイトで「SADC(8)」を参照してください。収集されたデータはテキストとしてフォーマットされ、/var/log/sa/ ディレクトリの sar## ファイルに記録されます。
sadc 操作は次のコンポーネントで構成されています。
- sa1 - バイナリデータを収集し、システムアクティビティの日次データファイルに保存します。
- sa2 - /var/log/sa ディレクトリに日次レポートを書き込みます。
/var/log/sa/ ディレクトリには、次の 2 種類のファイルが含まれています。
- sa## -システムアクティビティのバイナリデータファイル。
- sar## -システムアクティビティのテキストファイル。
注: sa および sar ファイル名のハッシュタグ文字は、その月の日付を表します。詳細については、ArchLinux のウェブサイトで「ファイル」を参照してください。
パーティションやファイルシステムの統計など、ディスク統計以外のデータも収集できます。
sadc 操作で収集するデータを変更するには、次の手順を実行します。
-
vi テキストエディタを使用して /etc/sysconfig/sysstat ファイルにアクセスするには、次のコマンドを実行します。
vi /etc/sysconfig/sysstat -
SADC_OPTIONS を -S Disk から -S XALL に変更するには、次のコマンドを実行します。
SADC_OPTIONS=" -S XALL"
データ収集間隔を設定する
Amazon Linux 1 および Amazon Linux 2
SAR ユーティリティが crontab で実行してデータを生成するスクリプトを確認するには、次のコマンドを実行します。
cat /etc/cron.d/sysstat
cron はデフォルトで 10 分ごとに実行されるため、SAR も同様に、10 分ごとにデータを生成します。SAR がそれよりも短い間隔または長い間隔でデータを生成できるようにするには、この時間値を編集します。次のコマンド例は、データが 10 分ごとに生成されるように設定されている crontab ファイルを示しています。
*/10 * * * * root /usr/lib64/sa/sa1 1 1
cron を 1 分に 1 回、または 5 分ごとに実行するように変更するのがベストプラクティスです。時間値をそれよりも短い間隔に変更すると、急激な変動 (スパイク) が見られる場合があります。
間隔を変更するには、次の手順を実行します。
-
/etc/cron.d/sysstat ファイルにアクセスするには、次のコマンドを実行します。
vim /etc/cron.d/sysstat -
時間を 10 分から 5 分に変更するには、次のコマンドを実行します。
@reboot /usr/lib64/sa/sa1 --boot */5 * * * * root /usr/lib64/sa/sa1 1 1注: 上記のコマンド例では、@reboot 行が OS の再起動時にカウンタをリセットします。
Amazon Linux 2023
ユニットファイルを編集してドロップインファイル /etc/systemd/system/sysstat-collect.timer.d/override.conf を作成するには、次のコマンドを実行します。
# systemctl edit sysstat-collect.timer
エントリを追加するには、次のコマンドを実行します。
### Editing /etc/systemd/system/sysstat-collect.timer.d/override.conf ### Anything between here and the comment below will become the new contents of the file [Unit] Description=Run system activity accounting tool every 1 minute [Timer] OnCalendar= OnCalendar=*:00/1 ### Lines below this comment will be discarded
上記のコマンドでは、空の "OnCalendar=" 行により以前の設定が削除され、新しい設定が作成されます。
変更をリロードするには、次の systemctl daemon-reload コマンドを実行します。
# systemctl daemon-reload
タイマーの状態を確認するには、次のコマンドを実行します。
# systemctl status sysstat-collect.timer sysstat-collect.timer - Run system activity accounting tool every 1 minute Loaded: loaded (/usr/lib/systemd/system/sysstat-collect.timer; enabled; preset: enabled) Drop-In: /etc/systemd/system/sysstat-collect.timer.d └─override.conf Active: active (running) since Thu 2023-07-20 08:49:55 UTC; 18s ago Until: Thu 2023-07-20 08:49:55 UTC; 18s ago Trigger: n/a Triggers: ● sysstat-collect.service
パフォーマンスレポートを生成する
CPU 使用状況レポート
CPU 使用状況データレポートを生成するには、sar コマンドを使用します。以下のサンプルコマンドは、2 秒ごとに 5 回使用状況データレポートを生成します。
sar 2 5 -P 0
注: 上記のコマンドでは、-P は個々の CPU またはコアを示します。統計情報を生成する CPU またはコアを示す数値を入力します。たとえば、1、2、3 などです。または、-P ALL コマンドを使用して、すべての CPU の統計情報を表示します。
メモリ統計レポート
メモリ統計レポートを生成するには、-r オプションを使用します。次のコマンド例は、2 秒ごとに 5 回メモリ統計情報を生成します。
sar -r 2 5
ブロックデバイス統計レポート
ブロックデバイス統計レポートを生成するには、-d オプションを使用します。次のコマンド例では、ブロックデバイス統計を 2 秒ごとに 5 回生成します。次の例では、-p オプションにより、/dev に表示されるデバイス名を示しています。
sar -d -p 2 5
**ネットワーク統計レポート **
ネットワーク統計レポートを生成するには、-n オプションを使用します。以下のコマンド例は、特定のエンティティの統計情報を生成します。
sar -n TCP 2 5 sar -n UDP 2 5 sar -n ALL 2 5
注: 上記のコマンドでは、TCP、UDP、ネットワークファイルシステム (NFS)、または ALL の統計情報を生成できます。
最新のログファイルを読み込む
/var/log 内の最新のログファイルから詳細を抽出するには、sar コマンドを実行します。次のコマンドでは、-f オプションを使用してファイル全体を読み取ります。
sar -f /var/log/sa
特定の日のログ詳細を抽出する
ログファイルは毎日保存されます。特定の日の詳細を抽出するには、その日付の該当する sa ファイルに対し、-f オプションを使用します。次のコマンドでは、その月の 12 日に生成されたデータを含むログファイルからのすべてのデータを表示します。
sar -f /var/log/sa/sa12
ログファイルから特定の統計を読み取る
メモリ統計
すべてのメモリ統計情報を読み取るには、-r オプションを使用します。次のコマンド例では、その月の 12 日に生成されたログファイルからのすべてのメモリ統計を表示します。
sar -f /var/log/sa/sa12 -r
I/O アクティビティ
すべての I/O アクティビティの組み合わせを表示するには、-b オプションを使用します。次のコマンド例では、その月の 12 日に生成されたログファイルからのすべての I/O アクティビティを表示します。
sar -f /var/log/sa/sa12 -b
ブロックデバイス統計
ブロックデバイスの統計情報を表示するには、-dp オプションを使用します。以下のコマンド例では、その月の 12 日に生成されたログファイルからのブロックデバイス統計を表示します。
sar -f /var/log/sa/sa12 -dp
ネットワーク統計
ネットワーク統計を表示するには、-n オプションを使用します。次のコマンド例では、その月の 12 日に生成されたログファイルからのすべてのネットワーク統計を表示します。
sar -f /var/log/sa/sa12 -n ALL
CPU 統計情報
ネットワーク統計の CPU 統計情報を表示するには、-P オプションを使用します。次のコマンド例では、CPU 0 の CPU 統計情報を表示します。
sar -f /var/log/sa/sa12 -P 0
特定の期間の統計を表示する
開始時間と終了時間を選択するには、-s および -e オプションを使用します。時刻は 24 時間形式で入力する必要があります。デフォルトでは、終了時間は 18:00 です。以下のコマンド例では、その月の 30 日の午前 2:00 から午後 5:00 の間に生成されたログファイルからのブロックデバイス統計を表示します。
sar -f /var/log/sa/sa30 -dp -s 02:00:00 -e 05:00:00
関連情報
sar(1) -Linux man に関するページ (Linux のウェブサイト)
