3 Performance Co-Pilotの使用

Performance Co-Pilot (PCP)は、パフォーマンス問題の診断に使用できる、OSおよびネットワークのメトリックを収集します。PCPは、メトリックおよびログのリクエストを、モニターする各Oracle Linuxシステムにインストールされている1組のコレクタ・ホスト・サービスに送信するために使用できるモニター・ホストを提供します。

ノート:

また、PCPは、Oracle Linux 8: システムのモニタリングおよびチューニングで説明されているように、Oracle OSWatcher Black Box (OSWbb)機能によって以前に提供されたメトリックやその他のパフォーマンス関連情報も提供します。

PCPのインストール

  1. システムでol9_appstream yumリポジトリを有効にします。

    詳細は、Oracle Linux: Oracle Linuxでのソフトウェアの管理を参照してください。

  2. dnfコマンドを使用して、pcppcp-system-tools、およびpcp-guiパッケージをインストールします。

    sudo dnf install pcp pcp-system-tools pcp-gui
  3. Performance Metrics Collector Daemon (pmcd)およびPerformance Metrics Logger (pmlogger)コレクタ・ホスト・サービスを有効にして起動します。

    sudo systemctl enable --now pmcd pmlogger

PCPの停止

データ収集を一時的に停止するには、Performance Metrics Collector Daemon (pmcd)およびPerformance Metrics Logger (pmlogger)のコレクタ・ホスト・サービスを停止します:

sudo systemctl stop pmcd pmlogger

無期限のデータ収集を停止し、システムのブート時にデータ収集が自動的に再開されないようにするには、それらを完全に無効にします:

sudo systemctl disable --now pmcd pmlogger

スクリプトが無効なシステム・サービスを再起動できないようにするマスキングおよびマスキング解除サービスの詳細は、『Oracle Linux 9: コア・システム構成の管理』を参照してください。

PCPによって収集される情報の確認

pcp-oracle-confパッケージがインストールされている場合、pmloggerサービスによって収集されるメトリックは、/var/lib/pcp/config/pmlogger/config.ora構成ファイルにリストされているメトリックのみです。

PCPがpcp-oracle-confパッケージなしでインストールされている場合は、かわりに/var/lib/pcp/config/pmlogger/config.default構成ファイルを確認します。

これらのメトリックが同じ構成ファイルで収集される頻度を変更できます。たとえば、頻度を1分ごとから5秒ごとに増やすには、このファイルを次のように編集します。

...
# It is safe to make additions from here on ...
#

log mandatory on every 5 seconds {
  filesys.free
  filesys.used
  ...
}

pmloggerサービスが生成するアーカイブは、すべて/var/log/pcp/pmlogger/hostnameディレクトリに格納されます。詳細は、pmlogconf(1)マニュアル・ページを参照してください。

pmloggerが特定のパフォーマンス・メトリックを収集した時点でPCP構成を確認するには、pcpコマンドを使用します。

sudo pcp -a 20220321.0.xz

PCPモニター・ホストを使用したパフォーマンス・メトリックの分析

システムのパフォーマンスについてデータを表示するための、様々なコマンドがあります。使用するコマンドは、データをリアルタイムで表示するか、ログから表示するかで異なります。次の項では、パフォーマンス情報を表示するコマンドの例を示します。

パフォーマンス・メトリックの表示に使用するコマンドおよびパラメータの詳細は、それぞれのマニュアル・ページを参照してください。システムの様々なパフォーマンス・メトリックを表示する方法のその他の例について、https://pcp.io/docs/guide.htmlも参照してください。

リアルタイムでのライブ・パフォーマンス・メトリックの確認

eth0ネットワーク・インタフェースからのすべての送信メトリックをリアルタイムで監視するには、pmrepコマンドを使用します。

sudo pmrep -i eth0 -v network.interface.out

2秒間隔で各パーティションのライブ・ハード・ドライブ操作を監視するには、pmvalコマンドを使用します。

sudo pmval -t 2sec -f 3 disk.partitions.write

記録されたパフォーマンス・メトリックの確認

pmloggerサービスが生成するアーカイブは、すべて/var/log/pcp/pmlogger/hostnameディレクトリに格納されます。アーカイブされたパフォーマンス・メトリックを確認するには、このディレクトリに移動します。

pmstatコマンドでは、sarコマンドによって生成されるのと同様の形式でシステム・パフォーマンス・メトリックを提供できます。たとえば、特定の日付の09:00から10:00までの10分間隔で平均化されたパフォーマンス・メトリックを確認するには、次のようにします。

sudo pmstat -t 10m -S @09:00 -T @10:00 -a 20220321.0.xz

2つの期間のメトリックを比較するには、pmdiffコマンドを使用します。たとえば、ある日の02:00から03:00のメトリックを、別の日の09:00から10:00のメトリックと比較するには、次のようにします。

sudo pmdiff -S @02:00 -T @03:00 -B @09:00 -E @10:00 20220321.0.xz 20220320.0.xz

記録されたパフォーマンス・メトリックの詳細の確認

特定のメトリックに関する詳細情報を確認するには、pminfoコマンドを使用します。たとえば、空きメモリーの詳細を確認するには、次のようにします。

sudo pminfo -df mem.freemem -a 20220321.0.xz

パフォーマンス・メトリックが取得されたときのシステム・ステータスの確認

パフォーマンス・メトリックを含むアーカイブに含まれるホスト、タイムゾーンおよび期間を確認するには、pmdumplogコマンドを使用します。

sudo pmdumplog -L 20220321.0.xz

有効なすべてのパフォーマンス・メトリックのリストを確認するには、pminfoコマンドを使用します。

sudo pminfo -a 20220321.0.xz

Performance Co-Pilotによるdstatの実行

以前のOracle Linuxリリースでのdstatユーティリティは、積極的には開発されなくなりました。かわりに、Performance Co-Pilot (PCP)とともに実装されて、基本的に同様の機能を実行してシステム・パフォーマンスを診断できるようになっています。

このツールは、PCPのインストールの説明に従ってPCPパッケージをインストールするとすぐに使用できるようになります。

新しいdstatユーティリティの使用方法について情報を入手するには、次のように入力します。

pcp dstat -h
Usage: pcp-dstat [-afv] [options...] [delay [count]]
Versatile tool for generating system resource statistics

Dstat options:
  -c, --cpu             enable cpu stats
     -C 0,3,total          include cpu0, cpu3 and total
  -d, --disk            enable disk stats
     -D total,sda          include sda and total
...

デフォルトでは、他のオプションを指定せずにこのコマンドを実行すると、CPU、ディスク、ネットワーク、ページおよびシステムの使用状況に関する統計が表示されます。

pcp dstat
You did not select any stats, using -cdngy by default.
----total-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0|   0     0 | 198B  719B|   0     0 | 156   254 
  0   0 100   0   0|   0    12k|  66B  302B|   0     0 | 160   264 
  0   0  99   0   0|   0     0 | 132B  384B|   0     0 | 136   219 
...

前作のツールと同様に、pcp dstatでは、メトリックまたは統計が、リアルタイムで連続的に一覧表示されていきます。このプロセスを停止するには、[Ctrl]を押しながら[C]を押します。

このコマンドで使用できる様々なオプションを指定することで、情報の出力内容を絞り込むことができます。たとえば、CPU 1の統計情報のみを表示するには、次のように入力します。

pcp dstat -c -C 1,total
-----cpu1-usage---------total-usage----
usr sys idl wai stl:usr sys idl wai stl
  0   0 100   0   0:  0   0 100   0   0
  1   0 100   0   0:  0   0  99   0   0
  0   0 100   0   0:  0   0 100   0   0
...

同様に、特定のインタフェース(ens3など)のネットワーク統計情報のみを表示し、合計を示すには、次のように入力します。

pcp dstat -n -N ens3,total
--net/ens3---net/total-
 recv  send: recv  send
  66B  350B:  66B  350B
  66B  190B:  66B  190B
  66B  198B:  66B  198B
  66B  198B:  66B  198B
...

後で確認できるように、収集される統計情報をファイルに格納するには、このコマンドに-o outputfileオプションを含めます。

たとえば、ネットワーク統計情報を収集し、その情報をログに保存するには、次のように入力します。

pcp dstat -n -f -o /tmp/netstat-log

すべての情報を確認するには、-fオプションを使用します。

--net/ens3-----net/lo--
 recv  send: recv  send
  66B  358B:   0     0 
  66B  174B:   0     0 
  66B  190B:   0     0 
 341B  419B:   0     0 
  66B  190B:   0     0 
  66B  190B:   0     0 
  66B  190B:   0     0 ^C

その後、ログを表示するには、次のように入力します。

cat /tmp/netstat-log
...
"Host:","hostname",,,,"User:","user"
"Cmdline:","pcp-dstat -n -f -o /tmp/netstat-log",,,,"Date:","date"
"net/ens3",,"net/lo",
"net/ens3:recv","net/ens3:send","net/lo:recv","net/lo:send"
65.934,357.641,0,0
66.000,173.999,0,0
66.000,190.001,0,0
340.992,418.991,0,0
66.001,190.004,0,0
66,190,0,0
66.000,189.999,0,0

pcp dstatの詳細は、pdp-dstat(1)マニュアル・ページを参照してください。