Utilizzo della CPU di KVM


9

Ho un host Linux con 4 guest Linux KVM. Tutti gli ospiti sono praticamente inattivi, con un carico di <0,1 all'interno dell'ospite.

Ora, se faccio un tophost, ogni processo KVM utilizza circa il 30% della CPU.

È un comportamento normale? Mi aspetto che l'host abbia bisogno di molta meno CPU solo per ospitare un ospite inattivo.

Se è normale, qual è la ragione di ciò?

Se non è normale, quale potrebbe essere il problema?


Quali distro Linux stai usando? Debian, Ubuntu, CentOS o qualcos'altro?
slm

L'host esegue un fedora corrente, gli ospiti un vecchio SLES 11.2. Il kernel è 3.6.10-4.fc18.x86_64 sull'host e 3.0.13-0.27-default sul guest.
Michas,

Risposte:


6

Essendo cinico potrei dire che è "normale" per gli ospiti Windows ma non per gli ospiti Linux (almeno non ho mai visto uno comportarsi così).

Con Windows dipende molto dalle applicazioni in esecuzione (quasi inattive). Un semplice XP o W2K (non ho ancora esperienza con le versioni più recenti in KVM) causa dal 10% al 20% sull'host (mostrato circa lo 0% all'interno), ma MS SQL Server lo supera facilmente del 30%. Questo sembra essere in qualche modo correlato all'accesso con il timer e / o ACPI. Ma anche in una VM non ACPI non ho mai avuto Windows inferiore al 10% sull'host.

Modifica 1 (integrazione dei commenti)

Qual è l'output di cat /sys/devices/system/clocksource/clocksource0/current_clocksource(nel guest)? Questo dovrebbe essere kvm-clock. Controlla la configurazione del tuo kernel (/proc/config.gz) per CONFIG_PARAVIRT_CLOCK e CONFIG_KVM_CLOCK.

Questo è un elenco di opzioni di configurazione del kernel relative a KVM .


Nel mio caso ci sono solo guest Linux. (domanda aggiornata)
michas

2
@michas Oh ragazzo, hai rovinato il mio amato pregiudizio ... Sono macchine virtuali in modalità testo o hanno X? Qual è l'output di cat /sys/devices/system/clocksource/clocksource0/current_clocksource?
Hauke ​​Laging,

current_clocksource è acpi_pmnel guest e tscnell'host. Nessuna X ma un server applicazioni Java e un DB Oracle è in esecuzione in ciascun guest.
michas,

@michas Quello dovrebbe essere kvm-clockinvece ( nell'ospite ). Non ho mai dovuto configurarlo esplicitamente. Controlla il tuo kernel config ( /proc/config.gz) per CONFIG_PARAVIRT_CLOCKe CONFIG_KVM_CLOCK.
Hauke ​​Laging,

1
Entrambi sono impostati su y. L'impostazione di current_clocksource per kvm-clockmigliorare le cose. Ora ogni processo KVM è di circa il 20 percento. Il sistema è stato migrato su KVM da una precedente configurazione di virtualbox. Sembra che alcune impostazioni siano ancora dalla vecchia configurazione ...
Michas,

0

Verificherei che i guest KVM siano sottoposti a provisioning in modo che possano utilizzare tutte le risorse dell'host (CPU, RAM, ecc.). In genere i guest KVM sono allocati, ad esempio, 1-2 CPU (core) su un sistema che può contenere molti altri.

Ciò significherebbe che non stai confrontando la stessa identica cosa quando guardi le risorse dell'host rispetto agli interni di un determinato ospite KVM.

Per esempio

L'host ha il seguente:

$ 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

Mentre uno degli ospiti di KVM ha questo:

$ 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
Simile qui: 8 core sull'host e 4 core su ogni ospite. - Ma non vedo come questo si traduca in un sostanziale carico di un ospite inattivo.
michas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.