14.3.4. 仮想化メトリクス
以下のメトリクスの記述には、Prometheus Query Language (PromQL) クエリーのサンプルが含まれます。これらのメトリクスは API ではなく、バージョン間で変更される可能性があります。仮想化メトリクスの完全なリストは、KubeVirt components metrics を参照してください。
以下の例では、期間を指定する topk クエリーを使用します。その期間中に仮想マシン (VM) が削除された場合でも、クエリーの出力に依然として表示されます。
14.3.4.1. 仮想 CPU メトリクス リンクのコピーリンクがクリップボードにコピーされました!
以下のクエリーは、入出力 I/O) を待機している仮想マシンを特定します。
kubevirt_vmi_vcpu_wait_seconds_total- 仮想マシンの仮想 CPU の I/O の待機時間 (秒単位) を返します。タイプ: カウンター。
'0' より大きい値は、仮想 CPU は実行する用意ができているが、ホストスケジューラーがこれをまだ実行できないことを意味します。実行できない場合には I/O に問題があることを示しています。
仮想 CPU メトリクスをクエリーするには、最初に schedstats=enable カーネル引数を MachineConfig オブジェクトに適用する必要があります。このカーネル引数を使用すると、デバッグとパフォーマンスチューニングに使用されるスケジューラーの統計が有効になり、スケジューラーに小規模な負荷を追加できます。
kubevirt_vmi_vcpu_delay_seconds_total- 仮想 CPU がホストスケジューラーによってキューに入れられたが、すぐに実行できなかった累積時間 (秒単位) を返します。この遅延は、仮想マシンには スチールタイム と表示されます。これは、ホストが他のワークロードを実行している間に失われた CPU 時間です。スチールタイムは、パフォーマンスに影響を与える可能性があり、多くの場合、ホスト上の CPU のオーバーコミットメントまたは競合を示します。タイプ: カウンター。
仮想 CPU 遅延クエリーの例
次のクエリーは、5 分間の 1 秒あたりの平均遅延を返します。値が高い場合は、ノード上で CPU のオーバーコミットまたは競合が発生している可能性があります。
irate(kubevirt_vmi_vcpu_delay_seconds_total[5m]) > 0.05
仮想 CPU 待機時間クエリーの例
次のクエリーは、6 分間の任意の全タイミングで I/O を待機する上位 3 の仮想マシンを返します。
topk(3, sum by (name, namespace) (rate(kubevirt_vmi_vcpu_wait_seconds_total[6m]))) > 0