Linuxで取得しておくべきOSの性能情報

Linuxで取得しておくべきOSの性能情報一覧を紹介します。

よくスローダウンした時にサーバ情報を確認しますが、それでは性能調査としては遅いです。

この記事で紹介した方法を予め設定して性能情報を取得おきましょう。

有事の際には取得しておいた性能情報を確認します。

※この記事はRed Hat Enterprise for Linuxを前提に記載しています。

目次

OS全体

OS全体はvmstatを使用して全体を把握しましょう。

私のオススメは↓で、60秒おきに24時間OSの**統計情報を取得します。**

vmstat -nw -S M 60 1440

-n”オプションは、ヘッダーを一度だけ取得します。

-nオプションを付けないとヘッダーが何回も出てしまいます。

後でエクセルファイル化する場合などに不便ですのでオプションを付けましょう。

-w”オプションは、ヘッダーと値を揃えて見出しをきれいに表示してくれます。

-S 単位”オプションは、出力時の単位を指定します。

60”は60秒毎に出力、”1440”は1440回出力します。

個人的には”M”を指定することをオススメします。

↓がログになります。awkとの合わせ技で時間を出力します。

$ vmstat -nw -S m 60 1440 | awk '{print strftime("%F %T") $0}'
2017-10-12 18:36:59procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
2017-10-12 18:36:59 r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st
2017-10-12 18:36:59 1  0            0          322            1         3045    0    0    67    17  577  649   3   1  96   0   0

まず大きく全体を把握してCPUなのか?メモリなのか?ディスクI/Oなのか?トップダウンで確認していくのが定石です。

CPU

CPUはsarコマンドを使用しましょう。

私のオススメは↓で、60秒おきに24時間CPUの統計情報を取得します。

sar -P 60 1440 

-P”オプションは、CPUのコアごとに使用状況を出力します。

60”は60秒毎に出力、”1440”は1440回出力します。

↓がログになります。

$ sar -P ALL 60 144
Linux 3.10.0-514.el7.x86_64 (rhel73-12201.local.com)    2017年10月12日  _x86_64_        (2 CPU)

18時47分07秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
18時48分07秒     all      4.37      0.00      0.65      0.08      0.00     94.89
18時48分07秒       0      4.72      0.00      0.69      0.00      0.00     94.59
18時48分07秒       1      4.02      0.00      0.60      0.17      0.00     95.21

CPUはコアごとにしっかり押さえましょう。

メモリ

メモリはsarコマンドを使用しましょう。

私のオススメは↓で、60秒おきに24時間メモリの統計情報を取得します。

sar -r 60 1440 

-r”オプションは、メモリの使用状況を出力します。

60”は60秒毎に出力、”1440”は1440回出力します。

↓がログになります。

$ sar -r 60 1440
Linux 3.10.0-514.el7.x86_64 (rhel73-12201.local.com)    2017年10月12日  _x86_64_        (2 CPU)

18時49分35秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
18時50分35秒    314260   3732596     92.23      1004   2899104   3822488     47.13   1287928   2233168        40
18時51分35秒    314260   3732596     92.23      1004   2899112   3822488     47.13   1287956   2233156        36

人によってはvmstatで取得する人がいますがsarをオススメします。

ディスクI/O

ディスクI/Oはiostatコマンドを使用しましょう。

私のオススメは↓で、60秒おきに24時間ディスクI/Oの統計情報を取得します。

iostat -xmd -p ALL 60 1440 

-x”オプションは、拡張ディスク統計情報を出力します。

-m”オプションは、出力単位をMBで出力します。

-d”オプションは、デバイスの使用率を出力します。

-p ALL”オプションは、すべてのデバイスの情報を出力します。

60”は60秒毎に出力、”1440”は1440回出力します。

↓がログになります。awkコマンドとの合わせ技がオススメです。

$ iostat -xmd -p ALL 60 1440 | awk '{print strftime("%F %T ") $0}'
2017-10-12 18:57:27 Linux 3.10.0-514.el7.x86_64 (rhel73-12201.local.com)        2017年10月12日  _x86_64_        (2 CPU)
2017-10-12 18:57:27
2017-10-12 18:57:27 Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
2017-10-12 18:57:27 scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
2017-10-12 18:57:27 sda               0.00     0.10    1.54    3.71     0.12     0.03    57.22     0.01    1.92    2.88    1.52   1.06   0.56
2017-10-12 18:57:27 sda1              0.00     0.00    0.04    0.00     0.00     0.00    21.91     0.00    2.04    0.71  200.25   1.12   0.00
2017-10-12 18:57:27 sda2              0.00     0.10    1.49    2.21     0.11     0.03    80.75     0.01    1.91    2.95    1.21   0.76   0.28
2017-10-12 18:57:27 dm-0              0.00     0.00    1.47    3.68     0.11     0.03    57.80     0.01    2.00    3.00    1.61   1.07   0.55
2017-10-12 18:57:27 dm-1              0.00     0.00    0.01    0.00     0.00     0.00    16.69     0.00    8.55    8.55    0.00   8.41   0.01
2017-10-12 18:57:27 dm-2              0.00     0.00    0.01    0.02     0.00     0.00    44.40     0.00    2.91    0.70    4.40   1.10   0.00

Disk I/Oはsarコマンドでも取得できますが どの領域に出力したのかを確認するのはiostatがオススメです。

I/Oはどの領域に対してアクセスが集中しているか?が重要になります。

スワップ領域

スワップ領域はsarコマンドを使用しましょう。

私のオススメは↓で、60秒おきに24時間OS統計情報を取得します。

sar -W 60 1440 

-W”オプションは、スワップ領域の出力状況を出力します。

60”は60秒毎に出力、”1440”は1440回出力します。

↓がログになります。

$ sar -W 60 1440
Linux 3.10.0-514.el7.x86_64 (rhel73-12201.local.com)    2017年10月12日  _x86_64_        (2 CPU)

18時42分29秒  pswpin/s pswpout/s
18時43分29秒      0.00      0.00
18時44分29秒      0.00      0.00
18時45分29秒      0.00      0.00

昨今のシステムではメモリ不足⇒Swap使用は考えにくいです。 スワップ領域は念の取得しておきましょう。

ネットワーク

ネットワークは正常時異常時の2種類取得することをオススメします。 共にsarコマンドで取得します。

正常時

私のオススメは↓で、60秒おきに24時間各ネットワークカードの情報を取得します。

sar -n DEV 60 1440 

-n DEV”オプションは、各ネットワークカードの正常系の使用状況を出力します。

60”は60秒毎に出力、

1440”は1440回出力します。

↓がログになります。

$ sar -n DEV 60 1440
Linux 3.10.0-514.el7.x86_64 (rhel73-12201.local.com)    2017年10月12日  _x86_64_        (2 CPU)

19時11分56秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19時12分56秒    enp0s3      0.05      0.00      0.00      0.00      0.00      0.00      0.00
19時12分56秒    enp0s8      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時12分56秒    enp0s9      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時12分56秒        lo      2.33      2.33      0.40      0.40      0.00      0.00      0.00
19時12分56秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時12分56秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時12分56秒   enp0s10      0.10      0.00      0.01      0.00      0.00      0.00      0.02

異常時

私のオススメは↓で、60秒おきに24時間各ネットワークカードの情報を取得します。

sar -n EDEV 60 1440 

-n EDEV”オプションは、各ネットワークカードの異常系の使用状況を出力します。

60”は60秒毎に出力、”1440”は1440回出力します。

↓がログになります。

Linux 3.10.0-514.el7.x86_64 (rhel73-12201.local.com)    2017年10月12日  _x86_64_        (2 CPU)

19時19分21秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
19時20分21秒    enp0s3      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時20分21秒    enp0s8      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時20分21秒    enp0s9      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時20分21秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時20分21秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時20分21秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
19時20分21秒   enp0s10      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

まとめ

上で説明したOSの統計情報を取得しておきましょう。

普段の情報取得は60秒(1分)に1回情報を取得しておけば大丈夫ですが、

障害発生時には1秒間隔にして取得することでより詳細な調査が可能になります。

取得スクリプトはまたの機会に公開します。

追記:スクリプト化しました。

スクリプト化しましたので、↓の記事も参考にしてください。

あわせて読みたい
LinuxOSの性能情報取得ツール 今回はLinuxOSの性能情報取得ツールを紹介します。 どんな情報を取得するべきなのか?については↓の記事を参考にしてください。 ※この記事はRed Hat Enterprise for Lin...
  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次