• 【博客529】linux cpu的 “steal time“含义


    linux cpu的 "steal time"含义

    Steal Time

    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

    Steal Time是虚拟机进程在物理CPU上等待其CPU时间的时间百分比。您可以通过在 Linux 服务器上运行“top”命令来监控进程和资源使用情况。在使用指标中,Steal Tim被标记为“st”。

    在现代托管环境中,少量Steal Time通常是不可避免的,尤其是在共享云托管上运行时。

    example

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

    哪里可以看到CPU Steal Time

    最常用的方式就是:运行top,从st列可以看到
    在这里插入图片描述

    Steal Time远高于0的原因

    这里有两种可能性:

    1、你需要一个额定更多CPU资源的虚拟机(你的虚拟机是问题)
    
    2、物理机已经超卖了并且多个虚拟机之间在激烈的竞争资源(你的虚拟机不是问题)
    
    • 1
    • 2
    • 3

    判断:

    1、是否 %st(CPU Steal Time Percentage) 在你的所有虚拟机机器上面都上涨了?
    
    这个意味着你的虚拟机在使用更多的CPU资源。你需要为你的虚拟起增加更多的CPU资源的配额。
    
    2、是否%st(CPU Steal Time Percentage) 只在一部分机器上面陡峭增长?
    
    这个意味着物理机器被超卖了。把你自己的虚拟机挪到另一个物理机器去吧。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Steal Time衡量指标

    用来衡量被Hypervisor偷去给其它虚拟机使用的CPU时间所占的比例,这个值越高,说明这台物理服务器的虚拟机之间资源竞争越激烈

    它表示真正的 CPU 对当前虚拟机不可用的时间-虚拟机管理程序从该VM“偷走”了该 CPU(用于运行另一个VM,或用于其自身需求)。如果特定虚拟机上的“Steal 时间”很高,则表明该虚拟机在过载或者负荷较大的物理主机上运行。

    Steal Time计算方式

    当虚拟机的vcpu在running的时候被抢了,会在stealtime里记录被抢走多长时间。以此来记录虚拟机有多少他应得的cpu时间被抢走了

    云平台出现Steal Time高时如何处理

    最简便有效的策略是:如果是当前虚拟机的Steal Time 超过了设置的 阈值,关闭这台虚拟机并且在另外一台物理机上面重启。

  • 相关阅读:
    分享下我的tmux配置
    Ubuntu 22.04.3 LTS单机私有化部署sealos desktop
    NVIDIA Grace Hopper架构深度解析
    open62541交叉编译
    Python实战 | 使用 Python 和 TensorFlow 构建卷积神经网络(CNN)进行人脸识别
    基于stm32单片机的水位检测自动抽水系统
    第三方软件测评报告怎么做?
    bat & cmd 命令整理(待更新)
    C++中&&的作用
    达利欧《原则》读书思考笔记
  • 原文地址:https://blog.csdn.net/qq_43684922/article/details/127709562