若是你想要部署虚拟环境(例如:Amazon EC2), steal time就是你想要关注的性能指标之一。 若是这个指标的数值很高,那么说明机器状态很是糟糕。什么是steal time?什么会引起高steal time?多少才是警惕值(你须要作什么)?ios
From ibm:web
Steal time is the percentage oftimea virtual CPU waits fora real CPU whilethe hypervisor is servicing another virtual processor.
你的虚拟机(VM)会与虚拟环境的宿主机上的多个虚拟机实例共享物理资源。其中之一共享的就是CPU时间切片。若是你的VM的物理机虚拟比是1/4, 那么它的CPU使用率不会限制于25%的CPU时间切片-它可以使用超过它设置的虚拟比。(有别于内存的使用,内存大小是严格控制的)。数据库
你可使用Linux 的 TOP 命令来看到实时的一些性能指标。CPU相关的其中一行内容以下:
性能
图片加载失败,点击重试spa
top
两个你可能较为熟悉的是 %id(空闲 百分比) 和 %wa(I/O 等待 百分比)。 若是 %id 很低, 那么说明CPU的工做负载很大而且没有多少计算负载能力剩余。 若是 %wa 很高,则说明瓶 CPU 处于等待计算的状态,可是正在等待I/O活动的完成(相似 从数据库中获取存储在 磁盘上 的一行数据)。code
%st(percent steal time) 是CPU展现的最后一个性能指标。blog
假设你打算买了若干张最新的好莱坞大片的电影票,且有两条队伍等待买票和一个售票口:队列
图片加载失败,点击重试图片
Movie Theater内存
若是咱们把 CPU steal time 性能指标 类比成 售票的过程, 那么过程就是以下:
0% Steal Time - 如今是礼拜三下午场:售票口正在工做,先处理第一条队伍的电影观众,而后处理第二条,而后第一条,而后第二条,轮流进行。处理的很快,且没有人在等待。
50% Steal Time - 如今是礼拜五晚上: 在队伍中的一我的有一半的时间须要等待另外一个在售票口的人完成卖票,而不能马上买到票。卖票的时间更长了。
100% Steal Time - 如今是礼拜五晚上而且 现金出纳金 坏了:全部人都在等待。
若是有你在负载未满的物理机器上面运行一个长时间的计算任务,那么它可能会使用超过它额定的CPU切片 时间。过一段时间,可能其余的VMs可能也会须要超过它们额定量的CPU切片 时间,因此这个任务的执行会变慢。对于长时间计算任务而言之,这个状况可能并非不能接受的:它多是会晚点一完成或者也可能更快的完成(因为它可以使用更多的资源)。
而后,这种状况可以时代web应用中止响应。对于实时任务,相似快速响应许多的web请求,性能降低到1/4会对请求队列执行对应备选逻辑—中断请求。
这里有两种可能性:
你须要一个额定更多CPU资源的虚拟机(你的虚拟机是问题)
物理机已经超卖了而且多个虚拟机之间在激烈的竞争资源(你的虚拟机不是问题)
提示:你不能经过看当前被影响的虚拟机实例的CPU性能指标来判断你所遇到的场景。(1 or 2) 当你有不少的虚拟宿主机上分别都部署了相同职责的服务程序(可能做为集群)时,就比较容易知道本身遇到的问题了。
图片加载失败,点击重试
资源图片
是否 %st(CPU Steal Time Percentage) 在全部机器上面都上涨了?
这个意味着你的虚拟机在使用更多的CPU资源。你须要为你的虚拟起增长更多的CPU资源的配额。
是否%st(CPU Steal Time Percentage) 只在一部分机器上面陡峭增加?
这个意味着物理机器被超卖了。把你本身的虚拟机挪到另外一个物理机器去吧。
通常的参考标准-若是steal time 超过了10%而且持续了20分钟,那么虚拟机就可能性能降低了
当这种状况发生:
关闭虚拟机而且挪到另外一台物理机器上面
若是steal time维持在很高的数值, 那么增长CPU资源配额。
若是steal time维持在很高的数值, 联系你的虚拟机提供商。你的虚拟机提供商有可能在超卖物理机。