我有一台主机,Ubuntu 18.04 64 位操作系统,运行在 24 核 Xeon 系统上。我为 Ubuntu 18.04 32 位客户机分配了 2 个 vCPU,它正在运行一个通常需要少量 CPU 的应用程序。但是我无法理解这些指标glances
。在客户机上我看到以下内容:
我无法理解为什么前几个单独进程的 CPU 使用率就达到 27.3% 而总 CPU 使用率只有 4.4%。
在主机上,总 CPU 利用率qemu-system-x86_64
再次升高(稳定状态约为 35%–40%,此刻有 2 个客户机正在运行),但整体 CPU 使用率也非常低(即此快照中为 4.9%):
我尝试在 IRIX 和非 IRIX CPU 模式之间切换,但数字似乎仍然不对。Top 给出了类似的不匹配数字(单个进程的利用率较高,而客户机和主机的总体利用率较低)。
因此,我有两个问题:
- 如何理解这些数字,并全面了解客户和主机的负载?
- 客户机上的总数(约 27.7%)与该进程在主机上的更高利用率(39.6%)之间的差异是否意味着在 kvm 设置中存在某些配置错误,或者对于预期的开销来说是正确的。
关于 kvm 配置,这是客户机 cpu 定义:
<cpu mode='host-passthrough' check='partial' migratable='on'>
<numa>
<cell id='0' cpus='0-1' memory='4194304' unit='KiB' memAccess='shared'/>
</numa>
</cpu>
我正在使用 virtio 和 virtio-fs 挂载。
答案1
各个进程的 CPU 百分比为每个核心,因此您的 qemu 进程使用了 39% 的核心。当进程使用更多 CPU 时,这个数字显然可能会超过 100%。
顶部给出的总体 CPU 百分比是全部核心/线程在一起,所以整个系统使用了 24 个核心/线程的 4.9%。
至于来自客户机的数据,它似乎确实不合逻辑。但总体 CPU 利用率和进程利用率是在不同时间采样的,因此如果您的 CPU 使用率变化很大,那么就有可能在短时间内看到这种差异。