Eu tenho um host Linux com 4 convidados Linux KVM. Todos os convidados estão praticamente inativos, com uma carga de <0,1 dentro do hóspede.
Agora, se eu fizer um top
no host, cada processo KVM está usando algo em torno de 30% da CPU.
Esse comportamento é normal? Eu esperaria que o host precisasse de muito menos CPU apenas para hospedar um hóspede ocioso.
Se é normal, qual o motivo disso?
Se não for normal, qual pode ser o problema?
performance
cpu
kvm
virtualization
michas
fonte
fonte
Respostas:
Sendo cínico, eu poderia dizer que isso é "normal" para convidados do Windows, mas não para convidados do Linux (pelo menos eu nunca vi alguém se comportar assim).
No Windows, depende muito dos aplicativos em execução (quase ociosos). Um XP ou W2K simples (ainda não tenho experiência com versões mais recentes no KVM) causa de 10% a 20% no host (sendo mostrado cerca de 0% no interior), mas o MS SQL Server fica facilmente acima de 30%. Isso parece estar relacionado ao acesso ao timer e / ou ACPI de alguma forma. Mas, mesmo em uma VM que não seja da ACPI, nunca obtive o Windows abaixo de 10% no host.
Editar 1 (integrando comentários)
Qual é a saída de
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
(no convidado)? Isso deve ser kvm-clock. Verifique a configuração do seu kernel (/proc/config.gz) para CONFIG_PARAVIRT_CLOCK e CONFIG_KVM_CLOCK.Esta é uma lista de opções de configuração do kernel relevantes para o KVM .
fonte
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
?acpi_pm
no convidado etsc
no host. Nenhum X, exceto um servidor de aplicativos java e um banco de dados Oracle está sendo executado em cada convidado.kvm-clock
lugar (no convidado). Eu nunca tive que configurar isso explicitamente. Verifique o seu kernel config (/proc/config.gz
) paraCONFIG_PARAVIRT_CLOCK
eCONFIG_KVM_CLOCK
.y
. Definir current_clocksource parakvm-clock
melhorar as coisas. Agora, cada processo KVM é de cerca de 20%. O sistema foi migrado para o KVM a partir de uma configuração anterior da caixa virtual. Parece que alguma configuração ainda estão a partir da configuração de idade ...Eu verificaria para garantir que os convidados do KVM sejam provisionados para que possam usar todos os recursos do host (CPU, RAM, etc.). Normalmente, os convidados da KVM são alocados, por exemplo, de 1 a 2 CPUs (núcleos) em um sistema que pode conter muito mais.
Isso significa que você não está comparando exatamente a mesma coisa ao analisar os recursos do host versus os internos de um determinado convidado KVM.
Por exemplo
O host tem o seguinte:
Enquanto um dos convidados da KVM tem isso:
fonte