web-dev-qa-db-ja.com

KVMのコア0で高CPUスティール

私のKVMセットアップの1つで、両方のゲストのコア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ホストごと。cat/ 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_

また、同じコアが2つのVM間で共有されないvirshdumpxmlから

VM1

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

VM2

_<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

ホストOS:CentOS 7.4

ゲストOS:CentOS 7.4

qemu KVMバージョン:1.5.3

なぜ私がそのような高い盗み価値を持っているのかを見つけるための提案はありますか?

2
Hemant

仮想化環境のオーバーサブスクリプションを行っています。まとめると、そのホスト上のVMは、ホストが持っているよりも多くのCPUリソースを使用しようとしています。

いくつかのVMを1つのCPUに固定すると、デバッグに非常に適しているため、原因をすばやく指摘できます。 CPU/I/O /メモリに注意してください。多くの場合、一方のリソースが不足すると、他方に影響を及ぼします。

iostat-'steal 'フィールドはどういう意味ですか? を参照してください。

その質問からの引用:

パーマンvmstatによると:

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

..。

これは、ハイパーバイザーがVM内の何かの代わりに何か他のものを実行するようにスケジュールした時間です。これは、別のVM、またはハイパーバイザーホスト自体の時間である可能性があります。時間が盗まれなかった場合、この時間はCPUワークロードまたはアイドルスレッドを実行するために使用されます。

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

2
Rui F Ribeiro