Netflix 很关注CPU的Steal Time。他们的策略是:如果是当前虚拟机的Steal Time 超过了你们设置的 阈值,他们会关闭这台虚拟机并且在另外一台物理机上面重启。

如果你想要部署虚拟环境(例如:Amazon EC2), steal time就是你想要关注的性能指标之一。 如果这个指标的数值很高,那么说明机器状态非常糟糕。什么是steal time?什么会引发高steal time?多少才是警戒值(你需要做什么)?

CPU Steal Time 的定义

From ibm:

Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor. 

你的虚拟机(VM)会与虚拟环境的宿主机上的多个虚拟机实例共享物理资源。其中之一共享的就是CPU时间切片。如果你的VM的物理机虚拟比是1/4, 那么它的CPU使用率不会限制于25%的CPU时间切片-它能够使用超过它设置的虚拟比。(有别于内存的使用,内存大小是严格控制的)。

哪里可以看到CPU Steal Time?

你可以使用Linux 的 TOP 命令来看到实时的一些性能指标。CPU相关的其中一行内容如下:
top
两个你可能较为熟悉的是 %id(空闲 百分比) 和 %wa(I/O 等待 百分比)。 如果 %id 很低, 那么说明CPU的工作负载很大并且没有多少计算负载能力剩余。 如果 %wa 很高,则说明瓶 CPU 处于等待计算的状态,但是正在等待I/O活动的完成(类似 从数据库中获取存储在 磁盘上 的一行数据)。

%st(percent steal time) 是CPU展示的最后一个性能指标。

CPU Steal Time - 类比售票厅

假设你打算买了若干张最新的好莱坞大片的电影票,且有两条队伍等待买票和一个售票口:

Movie Theater

如果我们把 CPU steal time 性能指标 类比成 售票的过程, 那么过程就是如下:

  • 0% Steal Time - 现在是礼拜三下午场:售票口正在工作,先处理第一条队伍的电影观众,然后处理第二条,然后第一条,然后第二条,轮流进行。处理的很快,且没有人在等待。

  • 50% Steal Time - 现在是礼拜五晚上: 在队伍中的一个人有一半的时间需要等待另一个在售票口的人完成卖票,而不能立刻买到票。卖票的时间更长了。

  • 100% Steal Time - 现在是礼拜五晚上并且 现金出纳金 坏了:所有人都在等待。

为什么高 Steal Time 会对web应用有更大的影响

如果有你在负载未满的物理机器上面运行一个长时间的计算任务,那么它可能会使用超过它额定的CPU切片 时间。过一段时间,可能其他的VMs可能也会需要超过它们额定量的CPU切片 时间,所以这个任务的执行会变慢。对于长时间计算任务而言之,这个情况可能并不是不能接受的:它可能是会晚点一完成或者也可能更快的完成(由于它能够使用更多的资源)。

然后,这种情况能够时代web应用停止响应。对于实时任务,类似快速响应许多的web请求,性能下降到1/4会对请求队列执行对应备选逻辑—中断请求。

Steal Time远高于0的原因

这里有两种可能性:

  1. 你需要一个额定更多CPU资源的虚拟机(你的虚拟机问题)

  2. 物理机已经超卖了并且多个虚拟机之间在激烈的竞争资源(你的虚拟机不是问题)

提示:你不能通过看当前被影响的虚拟机实例的CPU性能指标来判断你所遇到的场景。(1 or 2) 当你有很多的虚拟宿主机上分别都部署了相同职责的服务程序(可能作为集群)时,就比较容易知道自己遇到的问题了。

  • 是否 %st(CPU Steal Time Percentage) 在所有机器上面都上涨了?

    这个意味着你的虚拟机在使用更多的CPU资源。你需要为你的虚拟起增加更多的CPU资源的配额。

  • 是否%st(CPU Steal Time Percentage) 只在一部分机器上面陡峭增长?

    这个意味着物理机器被超卖了。把你自己的虚拟机挪到另一个物理机器去吧。

所有,什么时候你应该担心?

一般的参考标准-如果steal time 超过了10%并且持续了20分钟,那么虚拟机就可能性能下降了

当这种情况发生:

  1. 关闭虚拟机并且挪到另一台物理机器上面

  2. 如果steal time维持在很高的数值, 那么增加CPU资源配额。

  3. 如果steal time维持在很高的数值, 联系你的虚拟机提供商。你的虚拟机提供商有可能在超卖物理机。

出处:https://www.cnblogs.com/menkeyi/p/6732020.html

理解CPU steal time相关推荐

  1. 理解CPU steal time

    Netflix 很关注CPU的Steal Time.他们的策略是:如果是当前虚拟机的Steal Time 超过了你们设置的 阈值,他们会关闭这台虚拟机并且在另外一台物理机上面重启. 如果你想要部署虚拟 ...

  2. 转:理解CPU steal time

    哪里可以看到CPU Steal Time? 你可以使用Linux 的 TOP 命令来看到实时的一些性能指标.CPU相关的其中一行内容如下: top 两个你可能较为熟悉的是 %id(空闲 百分比) 和 ...

  3. 理解CPU steal time(转)

    Netflix 很关注CPU的Steal Time.他们的策略是:如果是当前虚拟机的Steal Time 超过了你们设置的 阈值,他们会关闭这台虚拟机并且在另外一台物理机上面重启. 如果你想要部署虚拟 ...

  4. (转)理解CPU steal time

    转自:https://www.cnblogs.com/menkeyi/p/6732020.html Netflix 很关注CPU的Steal Time.他们的策略是:如果是当前虚拟机的Steal Ti ...

  5. 解决win10cpu使用率100_如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了...

    来自公众号:阿里巴巴中间件 CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理.程序运行的最终执行单元,相当于系统的"大脑".当 CP ...

  6. io密集型和cpu密集型_和小胖一起理解CPU负载和利用率

    作者:小胖前言 凌晨一点,正整着炸鸡的小胖,微信一呼"你的服务器CPU持续超载 - " 麻溜的连上服务器,先把CPU负载摁下来.仔细一想,最近1分钟平均负载很大,但CPU利用率却≤ ...

  7. 【CPU】如何正确理解 CPU 使用率和平均负载的关系?

    什么是 CPU 使用率? CPU 使用率就是 CPU 非空闲态运行的时间占比,它反映了 CPU 的繁忙程度. 比如,单核 CPU 1s 内非空闲态运行时间为 0.8s,那么它的 CPU 使用率就是 8 ...

  8. 阿里程序员工作小技巧:理解CPU分支预测,提高代码效率

    技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,体现也会在优秀程序员在工作效率提升,产品性能优化和用户体验改善等小技巧方面的分享,以提高我们的工作能力 ...

  9. 上帝视角:程序员为什么需要理解 CPU?

    来源 | 码农的荒岛求生(ID:escape-it) 可能有的同学会问,程序员写代码就好了,为什么需要去理解CPU啊?不嫌累啊?啊?啊?你倒是说啊. 计算机系统 != 汉堡包 在之前的文章中我把计算机 ...

最新文章

  1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
  2. torchvision 笔记:transforms.Normalize()
  3. [Python图像处理] 三十四.数字图像处理基础与几何图形绘制万字详解(推荐)
  4. Python中数据类型的操作
  5. android自定义布局实现优惠券效果
  6. 《 FRIDA系列文章 》
  7. Mac插件分享——AE插件、PS插件、FCPX插件【持续更新中】
  8. CSS Grid 网格布局教程
  9. redis热点key解决方案_缓存穿透,缓存雪崩,4种解决方案分析
  10. python读取多个文件夹_如何从python中的文件夹中读取多个NetCDF文件
  11. 鸟哥linux教学怎么样,鸟哥关于学习Linux的一些建议
  12. 罗永浩要造智能音箱;苹果承认bug;微软特制AI曝光 | 极客头条
  13. U-Boot提供的指令
  14. 微任务,宏任务和Event-Loop
  15. Linux集群和自动化维1.1.1 什么是HTTP 1.1
  16. 使用apache mod_env模块保存php程序敏感信息
  17. linux怎么给用户777权限,linux下 chmod 777 中777这个数字是怎么出来的
  18. 针式打印机打印显示传真服务器,针式打印机怎么设置【图文详解】
  19. [SHELL]: ln 命令详解
  20. MMC、SD、TF、SDIO、SDMMC简介

热门文章

  1. 腾讯云安全产品介绍第一章-云安全体系与标准
  2. 【TiDB】一些很有意思的sql调优案例分享
  3. OKGO GLIDE 相机 多布局 geode地图
  4. 【caffe2从头学】:1.2安装(Ubuntu16.04+GTx 1070Ti+cuda9.0+cudnn7.2+anaconda2+Python2.7+caffe2【Python版本】)
  5. 采用java单例模式实现微信AccessToken和Jsapi_ticket缓存支持
  6. 【数据库笔记04】(表间建立联系,多表查询)
  7. 编写五子棋游戏的趣事
  8. 关于maya动力学系统的一些总结
  9. WIN10和Ubuntu共享蓝牙4.0连接配对,鼠标键盘等,罗技M720,小米鼠标
  10. python read三种读法