Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.
Steal Time是虚拟机进程在物理CPU上等待其CPU时间的时间百分比。您可以通过在 Linux 服务器上运行“top”命令来监控进程和资源使用情况。在使用指标中,Steal Tim被标记为“st”。
在现代托管环境中,少量Steal Time通常是不可避免的,尤其是在共享云托管上运行时。
你的虚拟机(VM)会与虚拟环境的宿主机上的多个虚拟机实例共享物理资源。其中之一共享的就是CPU时间切片。如果你的VM的物理机虚拟比是1/4, 那么它的CPU使用率不会限制于25%的CPU时间切片-它能够使用超过它设置的虚拟比。(有别于内存的使用,内存大小是严格控制的)。
最常用的方式就是:运行top,从st列可以看到
这里有两种可能性:
1、你需要一个额定更多CPU资源的虚拟机(你的虚拟机是问题)
2、物理机已经超卖了并且多个虚拟机之间在激烈的竞争资源(你的虚拟机不是问题)
判断:
1、是否 %st(CPU Steal Time Percentage) 在你的所有虚拟机机器上面都上涨了?
这个意味着你的虚拟机在使用更多的CPU资源。你需要为你的虚拟起增加更多的CPU资源的配额。
2、是否%st(CPU Steal Time Percentage) 只在一部分机器上面陡峭增长?
这个意味着物理机器被超卖了。把你自己的虚拟机挪到另一个物理机器去吧。
用来衡量被Hypervisor偷去给其它虚拟机使用的CPU时间所占的比例,这个值越高,说明这台物理服务器的虚拟机之间资源竞争越激烈
它表示真正的 CPU 对当前虚拟机不可用的时间-虚拟机管理程序从该VM“偷走”了该 CPU(用于运行另一个VM,或用于其自身需求)。如果特定虚拟机上的“Steal 时间”很高,则表明该虚拟机在过载或者负荷较大的物理主机上运行。
当虚拟机的vcpu在running的时候被抢了,会在stealtime里记录被抢走多长时间。以此来记录虚拟机有多少他应得的cpu时间被抢走了
最简便有效的策略是:如果是当前虚拟机的Steal Time 超过了设置的 阈值,关闭这台虚拟机并且在另外一台物理机上面重启。