A.3. Systemtap Flight Recorder を使用した定常ベースでのトレースデータのキャプチャー
qemu-kvm パッケージで提供される systemtap initscript を使用して、QEMU トレースデータを常にキャプチャーできます。このパッケージでは、SystemTap のフライトレコーダーモードを使用して、実行中のゲスト仮想マシンをすべて追跡し、結果をホストの固定サイズのバッファーに保存します。古いトレースエントリーは、バッファーが満杯になると新しいエントリーにより上書きされます。
手順A.1 systemtap の設定および実行
パッケージのインストール
以下のコマンドを実行して、systemtap-init スクリプトパッケージをインストールします。# yum install systemtap-initscript
設定ファイルのコピー
以下のコマンドを実行して、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
にすると、フライトレコーダーバッファーサイズや、メモリーのみまたはディスクにもトレースを保存するかどうかを制御できます。サービスを起動します。
以下のコマンドを実行して、systemtap サービスを開始します。# systemctl start systemtap qemu_kvm
システムの起動時に systemtap を有効にして実行できるようにします。
システムの起動時に、次のコマンドを実行して、systemtap サービスを有効にします。# systemctl enable systemtap qemu_kvm
サービスの実行の確認
次のコマンドを実行して、サービスが機能していることを確認します。# systemctl status systemtap qemu_kvm qemu_kvm is running...
手順A.2 トレースバッファーの検証
トレースバッファーダンプファイルの作成
trace.log という名前のトレースバッファーダンプファイルを作成し、次のコマンドを実行して、tmp ディレクトリーに置きます。# staprun -A qemu_kvm >/tmp/trace.log
ファイル名と場所は変更できます。サービスを起動します。
前の手順でサービスが停止した場合は、以下のコマンドを実行してサービスを再起動します。# systemctl start systemtap qemu_kvm
トレースの内容を読み取り可能な形式に変換します。
トレースファイルの内容を読みやすい形式に変換するには、以下のコマンドを実行します。# /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 ファイルがあります。