3 Performance Co-Pilotの使用
Performance Co-Pilot (PCP)は、パフォーマンス問題の診断に使用できる、OSおよびネットワークのメトリックを収集します。PCPは、メトリックおよびログのリクエストを、モニターする各Oracle Linuxシステムにインストールされている1組のコレクタ・ホスト・サービスに送信するために使用できるモニター・ホストを提供します。
ノート:
また、PCPは、Oracle Linux 8: システムのモニタリングおよびチューニングで説明されているように、Oracle OSWatcher Black Box (OSWbb)機能によって以前に提供されたメトリックやその他のパフォーマンス関連情報も提供します。
PCPのインストール
-
システムで
ol9_appstream
yumリポジトリを有効にします。詳細は、Oracle Linux: Oracle Linuxでのソフトウェアの管理を参照してください。
-
dnfコマンドを使用して、
pcp
、pcp-system-tools
、およびpcp-gui
パッケージをインストールします。sudo dnf install pcp pcp-system-tools pcp-gui
-
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
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)
マニュアル・ページを参照してください。