在输出中iostat
有一个steal
字段,根据手册页,该字段用于:
显示虚拟机管理程序为另一个虚拟处理器提供服务时,一个或多个虚拟 CPU 花费在非自愿等待上的时间百分比。
但是,这是什么意思?是否意味着内核本身太忙而无法管理CPU,导致CPU空闲?
答案1
虚拟机管理程序是指管理虚拟环境的层,例如 VMware、XEN 或 VirtualBox。
因此,窃取领域应该是一个值得监控、检测问题或虚拟化环境超额订阅的有趣领域。该字段本身意味着 VM CPU 必须等待其他 VM(虚拟机)完成其轮次(切片)或虚拟机管理程序本身的任务的时间。
st 字段存在于iostat
、vmstat
和命令sar
中top
。
然而,这线确认 VmWare VM 不支持窃取字段(我在 VMware 5.5 中测试了它并证实了它)。 VirtualBox 也不提供 CPU 窃取时间数据。它受到 Xen 和 KVM 虚拟环境的支持。
vmstat
CPU 区域也有相同的字段,但仅在 Debian 8 之后。为了sar
工作,sysstat
必须启用数据收集。
按照man vmstat
:
st:从虚拟机窃取的时间。 Linux 2.6.11 之前,未知。
相关主题监控窃取时间的工具 (st)
进一步阅读:CPU 时间从虚拟机中被盗?
这是虚拟机管理程序安排其他东西运行而不是虚拟机内的东西的时间。这可能是另一个 VM 或 Hypervisor 主机本身的时间。如果没有时间被窃取,则该时间将用于运行您的 CPU 工作负载或空闲线程。