win10打印机共享来宾_检测来宾虚拟机中的CPU窃取时间

win10打印机共享来宾

GNU top命令中,CPU窃取时间定义为“系统管理程序从[a] VM窃取的时间”。 当虚拟机管理程序进程和来宾实例试图同时利用同一虚拟机管理程序物理核心(pCPU)时,就会发生CPU窃取时间。 这将减少来宾虚拟CPU(vCPU)可用的处理器时间,并降低来宾性能。

在当今的虚拟化环境中(通过采用公共云和私有云已变得几乎普遍),来宾实例可以在以下几种情况下体验性能CPU窃取时间:

  • 虚拟机监控程序的超额预订和具有较高CPU使用率的多个来宾VM的vCPU在同一pCPU上运行。
  • 来宾vCPU及其仿真器线程固定到同一pCPU,导致虚拟主机进程在处理I / O时从来宾vCPU窃取CPU时间。
  • 虚拟机监控程序进程(如监视,日志记录和I / O进程)同时使用了来宾VM vCPU也在使用的pCPU。

通常,请来调查应用程序或系统性能问题的系统工程师会发现,由于来宾窃取了CPU时间,导致系统性能下降。 来宾的性能问题通常以低磁盘或网络I / O性能,网络数据包丢失以及其他应用程序性能异常的形式表现出来。

即使系统管理员正在观察来宾和系统管理程序,也可能很难缩小由于CPU占用时间而导致来宾实例性能下降的原因。 有一些困难的原因。 首先,任何经常监视的日志文件都不会记录CPU窃取时间。 可以预期观察到的虚拟机管理程序处于重负载下,但是在正常负载下的虚拟机管理程序上可能会发生窃取时间。 最后,管理员可能不知道可以使用GNU top从来宾VM实例中观察到管理程序CPU争用。

幸运的是,GNU top确实使检测来宾VM实例上的CPU窃取时间非常容易。 第3行结尾处top的输出中显示了窃取时间,其中包含%Cpu(s) ,如以下屏幕截图所示(结尾处的值,标记为st 。)第一个示例显示了一个访客,几乎没有偷时间:

cpu-steal-time_1.png

win10打印机共享来宾_检测来宾虚拟机中的CPU窃取时间

来宾的top命令输出经历了0.2 st。的低CPU窃取时间。

此屏幕快照显示来宾正在经历大量CPU窃取时间:

cpu-steal-time_2.png

win10打印机共享来宾_检测来宾虚拟机中的CPU窃取时间

来宾的top命令输出经历了9.0 st的大量CPU窃取时间。

在两个示例中,压力工具都是用四个进程执行的,这些进程消耗了来宾实例的所有四个vCPU。 在第一个示例中,系统管理程序相对闲置,因此来宾的窃取时间仅为0.2。 但是在第二个示例中,压力工具是同时在虚拟机管理程序上执行的,有八个进程消耗了虚拟机管理程序的所有8个pCPU,这产生了9.0的高CPU窃取时间。

在第二个示例中,还有另一个窃取时间的迹象:Stress Utility进程无法消耗约100%的来宾vCPU; 它只能分别消耗99.3%,99.3%,86.4%和74.4%。 总共等于来宾vCPU被盗的40.3%。 这是因为管理程序在来宾vCPU进程使用的同一pCPU上消耗了周期。

使用top缓解性能不佳

此示例显示了如何在虚拟机管理程序上与来宾VM实例和其他进程进行超额预订,以及如何根据来宾VM上的CPU窃用时间百分比使用GNU top检测到它。

重要的是要在来宾VM中检测这种类型的性能下降,以便减轻系统和应用程序性能不佳的原因。 在公共云中,唯一的解决方案可能是迁移实例或更​​改为具有保证的pCPU服务级别协议(SLA)的实例类型。 在私有云中,存在更多选择,但同样,最简单的方法可能是将实例迁移到利用率较低的虚拟机监控程序。 但是,如果许多来宾实例经历了很高的CPU窃取时间,则您将需要更改来宾和管理程序的管理方式,以实现来宾实例的性能SLA。

翻译自: https://opensource.com/article/20/1/cpu-steal-time

win10打印机共享来宾