KVM的CPU使用率


9

我有一个带有4个KVM linux guest虚拟机的linux主机。所有来宾几乎都处于空闲状态,来宾内部的负载小于0.1。

现在,如果我top在主机上进行操作,则每个KVM进程都使用大约30%的CPU。

这是正常现象吗?我希望主机只需要一个CPU就能容纳一个空闲的访客。

如果正常,这是什么原因?

如果不正常,可能是什么问题?


您正在使用哪个Linux发行版?Debian,Ubuntu,CentOS还是其他?
slm

主机正在运行当前的软呢帽,来宾运行的是较旧的SLES 11.2。内核在主机上是3.6.10-4.fc18.x86_64,在来宾上是3.0.13-0.27-default。
2013年

Answers:


6

出于愤世嫉俗,我可以说这对于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相关的内核配置选项列表


在我的情况下,只有Linux guest虚拟机。(问题已更新)
michas,2013年

2
@michas哦,男孩,您毁了我心爱的偏见...是文本模式VM还是X?输出是cat /sys/devices/system/clocksource/clocksource0/current_clocksource什么?
Hauke Laging

current_clocksource acpi_pm在来宾和tsc主机中。每个来宾中都没有X,但有一个Java应用程序服务器和一个oracle DB正在运行。
2013年

@michas应该kvm-clock改为(在来宾中)。我从来没有明确配置它。检查您的内核配置(/proc/config.gz)中的CONFIG_PARAVIRT_CLOCKCONFIG_KVM_CLOCK
Hauke Laging

1
两者都设置为y。设置current_clocksource为kvm-clock更好。现在,每个KVM进程大约占20%。该系统已从以前的Virtualbox设置迁移到KVM。似乎某些设置仍来自旧设置...
michas

0

我将检查以确保已配置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

1
此处类似:主机上有8个核心,每个来宾上有4个核心。-但我看不到,这如何导致空闲的访客负担很多。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.