Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

A.3. Systemtap Flight Recorder を使用した定常ベースでのトレースデータのキャプチャー

qemu-kvm パッケージで提供される systemtap initscript を使用して、QEMU トレースデータを常にキャプチャーできます。このパッケージでは、SystemTap のフライトレコーダーモードを使用して、実行中のゲスト仮想マシンをすべて追跡し、結果をホストの固定サイズのバッファーに保存します。古いトレースエントリーは、バッファーが満杯になると新しいエントリーにより上書きされます。

手順A.1 systemtap の設定および実行

  1. パッケージのインストール

    以下のコマンドを実行して、systemtap-init スクリプトパッケージをインストールします。
    # yum install systemtap-initscript
  2. 設定ファイルのコピー

    以下のコマンドを実行して、systemtap スクリプトと設定ファイルを systemtap ディレクトリーにコピーします。
    # cp /usr/share/qemu-kvm/systemtap/script.d/qemu_kvm.stp /etc/systemtap/script.d/
    # cp /usr/share/qemu-kvm/systemtap/conf.d/qemu_kvm.conf /etc/systemtap/conf.d/
    有効にするトレースイベントのセットは、qemu_kvm.stp で指定されています。この SystemTap スクリプトは、/usr/share/systemtap/tapset/qemu-kvm-simpletrace.stp で提供されるトレースイベントを追加または削除するようにカスタマイズできます。
    SystemTap のカスタマイズを qemu_kvm.conf にすると、フライトレコーダーバッファーサイズや、メモリーのみまたはディスクにもトレースを保存するかどうかを制御できます。
  3. サービスを起動します。

    以下のコマンドを実行して、systemtap サービスを開始します。
    # systemctl start systemtap qemu_kvm
  4. システムの起動時に systemtap を有効にして実行できるようにします。

    システムの起動時に、次のコマンドを実行して、systemtap サービスを有効にします。
    # systemctl enable systemtap qemu_kvm
  5. サービスの実行の確認

    次のコマンドを実行して、サービスが機能していることを確認します。
    # systemctl status systemtap qemu_kvm
    qemu_kvm is running...
    

手順A.2 トレースバッファーの検証

  1. トレースバッファーダンプファイルの作成

    trace.log という名前のトレースバッファーダンプファイルを作成し、次のコマンドを実行して、tmp ディレクトリーに置きます。
    # staprun -A qemu_kvm >/tmp/trace.log
    ファイル名と場所は変更できます。
  2. サービスを起動します。

    前の手順でサービスが停止した場合は、以下のコマンドを実行してサービスを再起動します。
    # systemctl start systemtap qemu_kvm
  3. トレースの内容を読み取り可能な形式に変換します。

    トレースファイルの内容を読みやすい形式に変換するには、以下のコマンドを実行します。
    # /usr/share/qemu-kvm/simpletrace.py --no-header /usr/share/qemu-kvm/trace-events /tmp/trace.log
注記
以下の注意事項および制限事項が記載されている必要があります。
  • systemtap サービスは、デフォルトでは無効になっています。
  • このサービスを有効にすると、パフォーマンスが低下しますが、これは、どのイベントを完全に有効化するかによって異なります。
  • /usr/share/doc/qemu-kvm-*/README.systemtap に README ファイルがあります。