了解云中的 CPU 窃取时间

了解云中的 CPU 窃取时间

我正在尝试了解 CPU 窃取时间。这篇文章是最佳结果:

https://scoutapm.com/blog/understanding-cpu-steal-time-when-should-you-be-worried

说实话,我不明白售票亭的比喻。不过,主机上其他客户虚拟机占用的 CPU 时间的概念似乎很容易理解。

我不明白的是两个可能的原因:

  1. 您需要一个具有更多 CPU 资源的更大的 VM(问题出在您身上)。
  2. 物理服务器超卖并且虚拟机正在激烈地竞争资源(问题不在于你)。

对于第 1 点,它进一步指出

Has %st (CPU Steal Time Percentage) increased on every virtual server? 
This means your virtual machines are using more CPU. You need to increase 
the CPU resources for your VMs.

如果虚拟机显示大量窃取时间,那么问题出在我的虚拟机上吗?我的虚拟机的 CPU 周期被占用并分配到其他地方。为什么这是我的虚拟机的错?是我的虚拟机在窃取自己的 CPU 吗?有人能解释一下吗?

此外,如果虚拟机显示 CPU 窃取时间。这是否意味着其他虚拟机会显示负的 CPU 窃取时间,因为它正在窃取其他虚拟机的 CPU?

答案1

如果某个虚拟机正在显示 CPU 窃取时间,是否意味着其他虚拟机也会显示负的 CPU 窃取时间,因为它正在窃取其他虚拟机的 CPU?

偷时间是个百分比虚拟机进程(非自愿地)等待物理 CPU 的时间。这意味着没有负窃取时间,范围从开始到0 %最大值为100 %

不显示窃取时间的虚拟机只会在请求时获取所需的所有 CPU 资源。该虚拟机不会获得更多“超过其(公平)份额”,不超过支付的金额,并且不是“窃取你的 CPU”周期,它根本不会花时间等待分配所需的 CPU 时间。


我不明白的是两个可能的原因:

  • 您需要一个具有更多 CPU 资源的更大的 VM(问题出在您身上)。
  • 物理服务器超卖并且虚拟机正在激烈地竞争资源(问题不在于你)。

但您可能同时是“受害者”以及问题的一部分。

根据经验法则,如果提供商不使用 CPU 过度配置并向客户出售比虚拟机管理程序实际 CPU 核心更多的 vCPU,则不会发生窃取时间的情况。

核心概念是,通过在提供商平台上混合不同客户的不同工作负载,提供商也隐含地(希望)确保一个客户的峰值需求与另一个客户当时的较低资源需求相吻合。尽管峰值和低谷不会完全平衡,但每个人都能获得公平的份额,并在需要时获得大部分(如果不是全部)资源,每个人都或多或少感到满意。

作为客户,您会受益,因为这通常意味着比支付保证资源的费用低得多的价格。

仅当您的工作负载不需要保证和持续的资源时才有效. 你的工作量最大平衡峰值负载和系统大部分时间处于空闲状态的较长时间(其他客户的工作量也是如此。)

当您的虚拟机容量不足或超载,并且 vCPU 利用率长时间接近或处于 100% 时,平衡可能会变得不平衡,并且您的虚拟机无法用足够的空闲时间(在其他客户负载达到峰值时)抵消其 CPU 需求,从而确保均衡和公平的平衡。因此,您的系统会加剧资源争用问题,并且是其中的一部分,您的系统也会看到更多的窃取时间。

当您增加虚拟机的大小时,系统部分空闲的时间将会增加,需要所有分配资源的时间将会增加,并且系统非自愿等待的可能性也会降低。

相关内容