Como interpretar a utilização da CPU no convidado / host KVM

Sep 08 2020

Eu tenho um host Ubuntu 18.04 sistema operacional de 64 bits em execução em um sistema Xeon de 24 núcleos. Aloquei 2 vCPUs para o convidado, que é Ubuntu 18.04 de 32 bits, e ele está executando um aplicativo que normalmente requer uma pequena quantidade de CPU. No entanto, não consigo entender essas métricas de glances. No convidado, vejo isto:

e eu não posso dizer por que a CPU total é 4,4% quando os poucos principais processadores individuais de processo chega a 27,3%.

E no host, a utilização total da CPU para o qemu-system-x86_64é mais alta novamente (cerca de 35% –40% do estado estável e há 2 convidados em execução no momento), mas o uso geral da CPU também é muito baixo (ou seja, 4,9% neste instantâneo ):

Tentei alternar entre os modos de CPU IRIX e não IRIX, e os números ainda não parecem somar. Top fornece valores semelhantes incompatíveis (alto para processos individuais, baixa utilização geral no convidado e no host).

Então, minhas 2 perguntas:

  1. Como entender esses números e obter uma visão geral da carga sobre o convidado e o anfitrião?
  2. Se a discrepância entre o total (cerca de 27,7%) no convidado e a utilização ainda maior no host desse processo (39,6%) significa que há algo mal configurado na configuração do kvm ou quase certo para a sobrecarga esperada.

Em relação à configuração kvm, esta é a definição da CPU do convidado:

  <cpu mode='host-passthrough' check='partial' migratable='on'>
    <numa>
      <cell id='0' cpus='0-1' memory='4194304' unit='KiB' memAccess='shared'/>
    </numa>
  </cpu>

e estou usando montagens virtio e virtio-fs.

Respostas

2 MichaelHampton Sep 08 2020 at 20:39

A porcentagem de CPU fornecida para processos individuais é por núcleo , portanto, seu processo qemu está usando 39% de um núcleo. Esse número obviamente pode exceder 100% e será suficiente quando o processo usar mais CPU.

A porcentagem geral da CPU fornecida na parte superior é para todos os núcleos / threads juntos, então todo o seu sistema está usando 4,9% de 24 núcleos / threads.


Quanto aos dados do seu convidado, certamente não parecem fazer sentido. Mas a utilização geral da CPU e a utilização do processo são amostradas em momentos diferentes, portanto, se o uso da CPU for altamente variável, é possível ver esse tipo de discrepância rapidamente.