我在一台具有 4 核的机器上用 1 个 vCPU 运行一个 KVM。
lscpu
在 KVM 中为我提供了 1 个具有 1 个核心的 CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 43 bits physical, 48 bits virtual
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 13
Model name: QEMU Virtual CPU version 2.5+
Stepping: 3
CPU MHz: 2300.000
BogoMIPS: 4600.00
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32 KiB
L1i cache: 32 KiB
L2 cache: 4 MiB
L3 cache: 16 MiB
NUMA node0 CPU(s): 0
Vulnerability Itlb multihit: KVM: Vulnerable
Vulnerability L1tf: Mitigation; PTE Inversion
Vulnerability Mds: Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Meltdown: Mitigation; PTI
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Full generic retpoline, STIBP disabled, RSB filling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16
x2apic hypervisor lahf_lm cpuid_fault pti
但是当我top
在 KVM 中运行时,平均负载有时会超过 2 或 3,就好像我的 KVM 有超过 1 个核心一样。这是为什么?有没有办法纠正 top 显示的负载,使其与 KVM 的 1 个 vCPU 保持一致?
答案1
平均负载与正在运行或准备运行的任务数量成正比。它不反映 CPU 的数量。
间接地,您可以使用它来计算利用率指标。平均负载与 CPU 的比率的含义取决于工作负载。当该比率超过 1 时,一些计算量很大的应用程序的响应时间会很差。其他应用程序可以容忍稍高一点的比率。极端条件下的主机可以达到数十甚至更多,而不会完全卡住。