检测客户虚拟机中的 CPU 窃取时间

您的虚拟机是否获得了足够的 CPU 维生素?使用 GNU top 找出导致客户性能问题的原因。
99 位读者喜欢这篇文章。
and old computer and a new computer, representing migration to new software or hardware

Opensource.com

CPU 窃取时间在 GNU top 命令中被定义为“hypervisor 从 [客户] VM 窃取的时间”。当 hypervisor 进程和客户实例试图同时使用同一个 hypervisor 物理核心 (pCPU) 时,就会发生 CPU 窃取时间。这导致客户虚拟 CPU (vCPU) 可用的处理器时间减少,并导致客户性能下降。

在当今的虚拟化环境(随着公有云和私有云的普及,虚拟化环境已变得几乎普遍),客户实例在以下几种情况下可能会遇到 CPU 窃取性能问题

  • hypervisor 超额订阅以及多个客户 VM 的 vCPU 在同一 pCPU 上以高 CPU 利用率运行。
  • 客户 vCPU 及其模拟器线程被绑定到同一个 pCPU,导致 vhost 进程在处理 I/O 时从客户 vCPU 窃取 CPU 时间。
  • hypervisor 进程(如监控、日志记录和 I/O 进程)同时使用也正在被客户 VM vCPU 使用的 pCPU。

通常,被请来调查应用程序或系统性能问题的系统工程师会发现,系统性能下降是由于从客户窃取的 CPU 时间造成的。客户的性能问题通常以磁盘或网络 I/O 性能低下、网络数据包丢失和其他应用程序性能异常的形式变得明显。

即使系统管理员正在观察客户机和 hypervisor,也很难缩小客户实例性能下降的原因,因为 CPU 窃取时间。造成这种困难的原因有几个。首先,CPU 窃取时间不会被任何常用的监控日志文件记录。被观察的 hypervisor 可能预计会处于重负载之下,但窃取时间可能发生在正常负载下的 hypervisor 上。最后,管理员可能不知道可以使用 GNU top 从客户 VM 实例内部观察 hypervisor CPU 争用。

幸运的是,GNU top 确实可以很容易地检测客户 VM 实例上的 CPU 窃取时间。窃取时间显示在 top 输出的第 3 行末尾,该行以 %Cpu(s) 开头,如下面的屏幕截图所示(它是末尾的值,标记为 st。)第一个示例显示了窃取时间很少的客户机

Output of the top command showing low CPU steal time

此屏幕截图显示了客户机正在经历严重的 CPU 窃取时间

Output of the top command showing high CPU steal time

来自客户机的 top 命令输出,该客户机正在经历 9.0 st 的严重 CPU 窃取时间。

在这两个示例中,压力测试工具都使用了四个进程执行,这些进程消耗了客户实例的所有四个 vCPU。在第一个示例中,hypervisor 相对空闲,因此客户机的窃取时间仅为 0.2。但在第二个示例中,压力测试工具同时在 hypervisor 上执行,使用了八个进程,这些进程消耗了 hypervisor 的所有八个 pCPU,从而产生了 9.0 的高 CPU 窃取时间。

第二个示例中还有另一个窃取时间的迹象:压力测试实用程序进程无法消耗客户机 vCPU 的 ~100%;它只能分别消耗 99.3%、99.3%、86.4% 和 74.4%。总计,这相当于客户 vCPU 的 40.3% 被窃取。这是因为 hypervisor 正在消耗与客户 vCPU 进程正在使用的相同 pCPU 上的周期。

使用 top 缓解不良性能

此示例展示了 hypervisor 上客户 VM 实例和其他进程的过度订阅如何与客户机竞争,以及如何使用 GNU top 基于客户 VM 上的 CPU 窃取时间百分比来检测它。

检测客户 VM 中这种类型的性能下降非常重要,这样您就可以缓解系统和应用程序性能不佳的原因。在公有云中,唯一的解决方案可能是迁移实例或更改为具有保证 pCPU 服务级别协议 (SLA) 的实例类型。在私有云中,有更多选择,但同样,最简单的方法可能是将实例迁移到利用率较低的 hypervisor。但是,如果许多客户实例遇到高 CPU 窃取时间,您将需要更改管理客户机和 hypervisor 进程的方式,以达到客户实例的性能 SLA。

接下来阅读什么

GNU Screen 简介

了解如何使用这个有用的终端多路复用器工具来更好地控制您的命令行。

User profile image.
领导者,系统工程师,在云和 HPC 领域拥有超过 10 年的经验,我曾在其中负责管理从数百台到数千台主机的环境。在 Red Hat 担任高级电信顾问是我梦想的职位,我致力于帮助客户和合作伙伴交付云基础设施项目和目标。

评论已关闭。

Creative Commons License本作品根据 Creative Commons 许可协议获得许可,许可协议为署名-相同方式共享 4.0 国际许可。
© . All rights reserved.