第24章 パフォーマンス

以下の章では、パフォーマンスに関する RHEL 8 と RHEL 9 の間の最も重要な変更点を説明します。

24.1. パフォーマンスに特筆すべき変更

Performance Co-Pilot がバージョン 6.0 にリベースされました。

RHEL 9.2 以降、Performance Co-Pilot (PCP) はバージョン 6.0 に更新されました。以下は、主な改善点です。

  1. バージョン 3 PCP アーカイブのサポート:

    これには、ドメイン変更デルタ、2038 年対応タイムスタンプ、ナノ秒精度のタイムスタンプ、任意のタイムゾーンのサポート、およびより大きな (2GB を超える) 個々のボリューム全体で使用される 64 ビットファイルオフセットのサポートが含まれます。

    この機能は現在、/etc/pcp.conf ファイルの PCP_ARCHIVE_VERSION 設定によってオプトインされています。

    バージョン 2 アーカイブはデフォルトのままです。

  2. PCP 全体では OpenSSL のみが使用されます。Mozilla NSS/NSPR の使用は廃止されました。

    これは、libpcpPMAPI クライアント、および PMCD の暗号化の使用に影響します。これらの要素は、すでに OpenSSL を使用していた pmproxy HTTPS サポートおよび redis-server と一貫して設定および使用されるようになりました。

  3. 新しいナノ秒精度のタイムスタンプ PMAPI は、タイムスタンプを利用する PCP ライブラリーインターフェイスを呼び出します。

    これらはすべてオプションであり、既存のツールに対して完全な下位互換性が維持されます。

  4. 次のツールとサービスが更新されました。

    pcp2elasticsearch
    認証サポートを実装しました。
    pcp-dstat
    top-alike プラグインのサポートを実装しました。
    pcp-htop
    最新の安定したアップストリームリリースに更新されました。
    pmseries
    sumavgstdevnth_percentilemax_instmax_samplemin_instmin_sample 関数が追加されました。
    pmdabpf
    CO-RE (Compile Once - Run Everywhere) モジュールと、AMD64、Intel 64 ビット、64 ビット ARM、および IBM Power Systems のサポートが追加されました。
    pmdabpftrace
    自動起動スクリプトの例を /usr/share ディレクトリーに移動しました。
    pmdadenki
    複数のアクティブなバッテリーのサポートが追加されました。
    pmdalinux
    最新の /proc/net/netstat 変更の更新。
    pmdaopenvswitch
    インターフェイスとカバレッジ統計を追加しました。
    pmproxy
    リクエストパラメーターをリクエスト本文で送信できるようになりました。
    pmieconf
    Open vSwitch メトリック用の複数の pmie ルールを追加しました。
    pmlogger_farm
    ファームロガーのデフォルト設定ファイルを追加しました。
    pmlogger_daily_report
    いくつかの大幅な効率改善。

RHEL 9 以降、sysstat が提供する sadf(1) ツールは、ネイティブの sadc(1) アーカイブから PCP アーカイブを生成できます。

デフォルトでは、- フラグが sadc(1) とともに使用されると、sadc(1) はそのデータを標準のシステムアクティビティーの日次データファイルに書き込みます。このファイルの名前は saDD で、デフォルトで /var/log/sa ディレクトリーにあります。逆に、入力データファイルが指定されていない場合、sadf(1) ツールは標準のシステムアクティビティーの日次データファイルを使用してアーカイブを生成します。指定した日数だけ過去に記録したデータからアーカイブを生成するように sadf(1) に指示を出す引数として数値を渡します。

  • 2 日前に記録した sadc(1) アーカイブから PCP アーカイブを生成する場合は、次のコマンドを実行します。

    # sadf -l -O pcparchive=/tmp/recording -2
  • sadc(1) アーカイブから生成された PCP アーカイブのメトリックのリストを表示するには、次のコマンドを実行します。

    $ pminfo --archive /tmp/recording
    Disk.dev.avactive
    Disk.dev.read
    Disk.dev.write
    Disk.dev.blkread
    [...]
  • sadc(1) アーカイブから生成された PCP アーカイブのタイムスペースとホスト名を表示するには、以下を行います。

    $ pmdumplog --label /tmp/recording
    Log Label (Log Format Version 2)
    Performance metrics from host shard
            commencing Tue Jul 20 00:10:30.642477 2021
            ending     Wed Jul 21 00:10:30.222176 2021
  • その後、PCP コマンドを使用して、sadc(1) アーカイブから生成された PCP アーカイブを分析できます。以下に例を示します。

    $ pmchart --archive /tmp/recording

新しい PCPPMDA: pmdabpf

RHEL 9 は、pmdabpf Performance Co-Pilot (PCP) Performance Metric Domain Agent (PMDA) を提供する pcp-pmda-bpf パッケージを含めて配布されます。

pmdabpf PMDA は、libbpfBTF である BPF CO-RE (Compile Once-Run Everywhere) を利用して eBPF プログラムからライブパフォーマンスデータを抽出します。