KVMコア0の高いCPU盗用

KVMコア0の高いCPU盗用

私のKVM設定の1つで、2つのゲストのうちCore 0のCPU使用率が高いことがわかりました。 CPUスチリングに関するセーブラルWebの結果を見てみましたが、コアスチリングの説明はありません。

平均してみると悪くないようです。 40/8~5%。しかし、シングルコアの場合は非常に高いです。

Threads: 815 total, 4 running, 811 sleeping, 0 stopped, 0 zombie %Cpu0 : 18.4 us, 0.8 sy, 0.0 ni, 35.2 id, 0.0 wa, 0.0 hi, 6.4 si, 39.2 st %Cpu1 : 38.6 us, 6.9 sy, 0.0 ni, 48.5 id, 5.9 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 31.0 us, 20.0 sy, 0.0 ni, 47.0 id, 2.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 22.0 us, 14.0 sy, 4.0 ni, 48.0 id, 12.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu4 : 31.7 us, 18.8 sy, 0.0 ni, 48.5 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu5 : 41.0 us, 13.0 sy, 0.0 ni, 46.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu6 : 8.1 us, 7.1 sy, 0.0 ni, 84.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu7 : 35.3 us, 24.5 sy, 0.0 ni, 39.2 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu8 : 3.0 us, 5.1 sy, 0.0 ni, 91.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu9 : 5.9 us, 6.9 sy, 0.0 ni, 87.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu10 : 6.1 us, 2.0 sy, 0.0 ni, 91.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu11 : 10.4 us, 13.5 sy, 0.0 ni, 24.0 id, 52.1 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu12 : 50.0 us, 10.0 sy, 0.0 ni, 40.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 48966980 total, 13622884 free, 25813260 used, 9530836 buff/cache

ホストにCPU分離があり、ホストごとに2つのゲストVMしかありません。猫/proc/cmdline

BOOT_IMAGE=/vmlinuz-3.10.0-693.el7.x86_64 root=/dev/mapper/VolGrp-Vol1 ro crashkernel=auto rd.lvm.lv=VolGrp/Vol1 rd.lvm.lv=VolGrp/Vol0 console=ttyS0,115200n8 isolcpus=2-15,18-31 nohz_full=2-15,18-31 rcu_nocbs=2-15,18-31 intel_idle.max_cstate=1 intel_pstate=disable nosoftlockup=0 audit=0 mce=ignore_ce transparent_hugepage=never

また、virsh dumpxmlの2つのVM間で同じカーネルは共有されません。

仮想マシン1

<vcpu placement='static' cpuset='2,4,6,8,10,12,14,18,20,22,24,26,28,30'\>13</vcpu>

仮想マシン2

<vcpu placement='static' cpuset='3,5,7,9,11,13,15,19,21,23,25,27,29,31'\>13</vcpu>

ホストNUMA情報:

NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

ホストオペレーティングシステム:CentOS 7.4

ゲストOS:CentOS 7.4

qemu KVMバージョン:1.5.3

なぜそんなに高い盗難価値を持っているのかを知るための提案はありますか?

答え1

仮想化された環境を超過購読しています。たとえば、そのホストの仮想マシンがホスト全体よりも多くのCPUリソースを使用したいとします。

複数の VM を 1 つの CPU に固定すると、デバッグの方が良く、犯人をすばやく見つけることができます。 CPU/I/O/メモリを注意深く見てください。 1つのリソースが不足すると、通常は他のリソースにも影響します。

バラよりiostat - フィールドを「盗む」とはどういう意味ですか?

この質問からの抜粋:

man vmstatによると:

st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

....

これは、ハイパーバイザーが仮想マシン内にあるもの以外のものを実行するようにスケジュールする場合です。これは、他のVMまたはハイパーバイザーホスト自体の時間です。時間を奪われない場合、その時間は CPU ワークロードまたはアイドルスレッドを実行するために使用されます。

PS長期的には、グローバルポリシーで特定のVMを特定のCPUに固定しないことをお勧めします。ハイパーバイザーは、CPUリソース/負荷を割り当てるよりも優れた決定を下すことができます。

関連情報