我有一个带有4个KVM linux guest虚拟机的linux主机。所有来宾几乎都处于空闲状态,来宾内部的负载小于0.1。
现在,如果我top
在主机上进行操作,则每个KVM进程都使用大约30%的CPU。
这是正常现象吗?我希望主机只需要一个CPU就能容纳一个空闲的访客。
如果正常,这是什么原因?
如果不正常,可能是什么问题?
我有一个带有4个KVM linux guest虚拟机的linux主机。所有来宾几乎都处于空闲状态,来宾内部的负载小于0.1。
现在,如果我top
在主机上进行操作,则每个KVM进程都使用大约30%的CPU。
这是正常现象吗?我希望主机只需要一个CPU就能容纳一个空闲的访客。
如果正常,这是什么原因?
如果不正常,可能是什么问题?
Answers:
出于愤世嫉俗,我可以说这对于Windows guest虚拟机来说是“正常的”,但对于Linux guest虚拟机则不是(至少我从未见过这样的行为)。
在Windows中,它很大程度上取决于正在运行的应用程序(接近空闲)。普通的XP或W2K(我还没有在KVM中使用较新版本的经验)导致主机上出现10%到20%的主机(显示为大约0%),但是MS SQL Server可以轻松地将其提高到30%以上。这似乎与计时器访问和/或ACPI有关。但是,即使在非ACPI VM中,主机上的Windows也不会低于10%。
编辑1(整合评论)
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
(来宾中)的输出是什么?那应该是kvm-clock。检查内核配置(/proc/config.gz)中的CONFIG_PARAVIRT_CLOCK和CONFIG_KVM_CLOCK。
这是与KVM相关的内核配置选项的列表。
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
什么?
acpi_pm
在来宾和tsc
主机中。每个来宾中都没有X,但有一个Java应用程序服务器和一个oracle DB正在运行。
kvm-clock
改为(在来宾中)。我从来没有明确配置它。检查您的内核配置(/proc/config.gz
)中的CONFIG_PARAVIRT_CLOCK
和CONFIG_KVM_CLOCK
。
y
。设置current_clocksource为kvm-clock
更好。现在,每个KVM进程大约占20%。该系统已从以前的Virtualbox设置迁移到KVM。似乎某些设置仍来自旧设置...
我将检查以确保已配置KVM guest虚拟机,以便他们能够利用主机的所有资源(CPU,RAM等)。通常,KVM来宾仅在可能包含更多CPU的系统上分配1-2个CPU(内核)。
这意味着在查看主机的资源与给定的KVM guest虚拟机的内部时,您不会比较完全相同的事物。
主机具有以下内容:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 12
On-line CPU(s) list: 0-11
Thread(s) per core: 2
Core(s) per socket: 6
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 45
Stepping: 7
CPU MHz: 1200.000
BogoMIPS: 6404.04
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 12288K
NUMA node0 CPU(s): 0-11
虽然其中一位KVM来宾拥有以下功能:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 6
Stepping: 3
CPU MHz: 3202.024
BogoMIPS: 6404.04
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0