AWSのEC2(RHEL 7.4)にsysstatをインストールしてLinuxの稼働統計を収集
目次
概要
AWSのEC2インスタンスでサーバを構築した場合、利用料金を削減するために インスタンスタイプにt2.microやt2.mediumを選ぶことが多いです(個人的に)。 これらのインスタンスタイプは安い分、決して性能が良いとは言えないので、 利用者が増えるとレスポンスが悪くなってきます。 この時、CPUやメモリなど、どのハードウェアリソースが逼迫しているのかを調査するために sysstatパッケージをインストールしてLinuxの稼働統計情報を収集しておくと、 レスポンスが悪かった時間帯の調査ができて便利です。 というわけで、EC2インスタンス(RHEL 7.4)に sysstat パッケージをインストールします。
構成
想定環境
今回利用したのはAWS(Amazon Web Services)のEC2インスタンスで、サーバのスペックは以下のとおりです。 なお、このスペックがないとインストールできないわけではありません。
項目 | 内容 |
---|---|
インスタンスタイプ | t2.medium |
vCPU | 2 |
メモリ | 3GB |
ディスク | SSD 10GiB |
リージョン | 日本 |
サーバ構成
OSバージョン
Red Hat Enterprise Linux 7.4 x86_64
ソフトウェア・パッケージ一覧
- sysstat-10.1.5-12.el7.x86_64.rpm
- lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm
環境構築
インストール
yumでsysstatパッケージをインストール
yumコマンドでsysstatパッケージをインストールします。 yumリポジトリの追加は必要ありません。
$ sudo su - Last login: Thu Sep 21 00:32:06 JST 2017 on pts/1 # yum install -y sysstat Loaded plugins: amazon-id, rhui-lb, search-disabled-repos rhui-REGION-client-config-server-7 | 2.9 kB 00:00:00 rhui-REGION-rhel-server-releases | 3.5 kB 00:00:00 rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00 (1/2): rhui-REGION-rhel-server-releases/7Server/x86_64/updateinfo | 2.3 MB 00:00:00 (2/2): rhui-REGION-rhel-server-releases/7Server/x86_64/primary_db | 43 MB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package sysstat.x86_64 0:10.1.5-12.el7 will be installed --> Processing Dependency: libsensors.so.4()(64bit) for package: sysstat-10.1.5-12.el7.x86_64 --> Running transaction check ---> Package lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: sysstat x86_64 10.1.5-12.el7 rhui-REGION-rhel-server-releases 310 k Installing for dependencies: lm_sensors-libs x86_64 3.4.0-4.20160601gitf9185e5.el7 rhui-REGION-rhel-server-releases 41 k Transaction Summary ======================================================================================================================== Install 1 Package (+1 Dependent package) Total download size: 351 k Installed size: 1.2 M Downloading packages: (1/2): lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm | 41 kB 00:00:00 (2/2): sysstat-10.1.5-12.el7.x86_64.rpm | 310 kB 00:00:00 ------------------------------------------------------------------------------------------------------------------------ Total 1.4 MB/s | 351 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64 1/2 Installing : sysstat-10.1.5-12.el7.x86_64 2/2 Verifying : sysstat-10.1.5-12.el7.x86_64 1/2 Verifying : lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64 2/2 Installed: sysstat.x86_64 0:10.1.5-12.el7 Dependency Installed: lm_sensors-libs.x86_64 0:3.4.0-4.20160601gitf9185e5.el7 Complete!
sysstatサービスの起動
sysstatパッケージのインストールが終わったらsysstatサービスを起動します。 なお、初期設定で自動起動は有効になっていますので、Linuxを再起動しても自動でsysstatサービスが起動し、 Linuxの稼働統計を取得します。
# systemctl status sysstat.service ←状態確認 ● sysstat.service - Resets System Activity Logs Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled) ←自動起動は有効 Active: inactive (dead) ←停止状態 # systemctl start sysstat.service ←sysstatサービス起動 # systemctl status sysstat.service ←状態確認 ● sysstat.service - Resets System Activity Logs Loaded: loaded (/usr/lib/systemd/system/sysstat.service; enabled; vendor preset: enabled) ←自動起動は有効 Active: active (exited) since Thu 2017-09-21 22:45:15 JST; 18s ago ←起動状態 Process: 1279 ExecStart=/usr/lib64/sa/sa1 --boot (code=exited, status=0/SUCCESS) Main PID: 1279 (code=exited, status=0/SUCCESS) Sep 21 22:45:15 ip-172-31-25-154.ap-northeast-1.compute.internal systemd[1]: Starting Resets System Activity Logs... Sep 21 22:45:15 ip-172-31-25-154.ap-northeast-1.compute.internal systemd[1]: Started Resets System Activity Logs.
動作テスト
収集された稼働統計ファイルの確認
sysstatサービスの起動後に自動で収集された稼働統計情報が記録されたファイルは /var/log/sa/ ディレクトリに格納されます。 ファイル名は「sa + 日付」となり、9月21日の統計情報が記録されたファイル名は sa21 となります。 なお、10月21日のファイル名も sa21 となりますので、翌月に前月分のファイルを上書きしてしまいます。 つまり、常に1ヶ月分の稼働統計情報が残されている状態となります。
# ls -l /var/log/sa/ total 4 -rw-r--r-- 1 root root 3152 Sep 21 22:50 sa21
稼働統計情報の閲覧
収集された saXX ファイルはバイナリ形式で保存されていますので、エディタで開いて見ることはできません。 インストールした sysstat パッケージに含まれている sar コマンドでバイナリデータをテキストに変換して表示します。 以下の例では当日のCPU使用率の推移を確認するために、sarコマンドに -u オプションを付与して実行しています。 インストールした直後なので統計情報が溜まっておらず、見ても面白くないですが、11:00:01 で始まる行に 10:50:01~11:00:01の10分間の平均のCPU使用率が表示されています。 つまり、デフォルトでは10分間隔で統計情報の収集・ファイルへの記録を行っています。 Averageで始まる行は当日収集済みデータの平均値が表示されます。
# sar -u Linux 3.10.0-693.el7.x86_64 (ip-172-31-25-154.ap-northeast-1.compute.internal) 09/21/2017 _x86_64_ (2 CPU) 10:45:15 PM LINUX RESTART 10:50:01 PM CPU %user %nice %system %iowait %steal %idle 11:00:01 PM all 0.01 0.00 0.01 0.00 0.00 99.98 Average: all 0.01 0.00 0.01 0.00 0.00 99.98