Linux系统之 Steal CPU time解析

简介: 正如之前文章讲过:在 Unix / Linux 体系中,常常使用“用户” CPU 时间(us)、“系统” CPU 时间(sy)、“良好”的 CPU 时间(ni)、“空闲” CPU 时间(id)、“等待”CPU 时间(wa)、“硬件中断” CPU 时间(hi)、“软件中断” CPU 时间(si)以及“被盗” CPU 时间(st)等 8 个不同的指标来评判操作系统的 CPU 资源使用情况。

    正如之前文章讲过:在 Unix / Linux 体系中,常常使用“用户” CPU 时间(us)、“系统” CPU 时间(sy)、“良好”的 CPU 时间(ni)、“空闲” CPU 时间(id)、“等待”CPU 时间(wa)、“硬件中断” CPU 时间(hi)、“软件中断” CPU 时间(si)以及“被盗” CPU 时间(st)等 8 个不同的指标来评判操作系统的 CPU 资源使用情况。


    在之前的文章中,我们解析过 User 跟 Wait CPU Time ,具体可参考链接:Linux系统之User CPU time解析 以及 Linux系统之Wait CPU time解析在实际的业务场景中,在大家的脑海中可能较为熟悉的是 %idle (空闲 百分比) 和 %wait (I/O 等待 百分比)。 如果 %id 很低,那么说明 CPU 的工作负载很大并且没有多少计算负载能力剩余。 如果 %wa 很高,则说明 CPU 处于等待计算的状态,但是正在等待I/O活动的完成(类似 从数据库中获取存储在 磁盘上 的一行数据)。然而,从某种特定的意义上来讲,%st(percent steal time) 是CPU展示的最后一个性能指标。在本文中,笔者将重点解析另一种 CPU 指标:Steal  CPU time 。


何为 “Steal” CPU时间?

   “Steal 时间”(也称为“偷窃”时间)仅在云环境(如AWS)或 VMWare 环境中相关,在云环境中,多个虚拟机将在一个基础物理主机上运行。在这种情况下,CPU 资源将在多个虚拟机之间共享。虚拟机管理程序是一项将在虚拟机之间分配基础物理主机的 CPU 资源和其他资源的技术。

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

查找“Steal” CPU 时间?

   基于实际的业务场景以及相关经验,可以从以下来源找到窃取 CPU 时间:

   1、使用基于网络的根本原因分析工具(如 yCrash)来报告“被盗”的 CPU 时间。如果“被盗”的 CPU 时间超出阈值,该工具便能够生成警报。

   2、Unix / Linux 命令行工具“ top ”的 “ steal ”字段中也报告了“被盗”的 CPU 时间,具体如下图所示:


解决“Steal” CPU 时间过长的问题?

   通常,我们可以基于以下场景进行,具体如下所示:

    1、如果我们基于云平台环境,可以尝试升级到大容量计算实例。(举个简单示例:如果我们在具有“ m4.large”实例的 AWS /阿里云平台中运行,则可以升级到“ m4.xlarge”实例)。

    2、如果有可能的话,建议在实际的业务场景中考虑在物理主机上运行较少数量的虚拟机实例,以使得系统能够正常运转。

    3、基于实际的需求,可尝试考虑在遭受高 “Steal” 时间的特定虚拟机中运行较少数量的进程。

    4、可以尝试使用 Sar 之类的相关辅助工具定位并结合其他措施优化应用程序性能,以使应用程序消耗更少的 CPU。

    5、从资源配置角度入手,也许针对每个虚拟机的 CPU 份额配置的不够合理,使得其分配得过低,从而影响性能。此种场景下,建议尝试增加份额并对其进行验证,以满足实际的业务需求。

    由于所述内容较为简单,在实际的业务场景中几乎很少会遇到此类情况,但基于技术角度,针对每一个细节的全方位监测、掌握,对于我们而言,更有助于分析其他类似的资源异常问题,从而提升劳动力。基于 Steal” CPU Time 解析,本文到此为止,大家有任何问题,可以随时留言、沟通。

相关文章
|
14天前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
229 10
|
12天前
|
弹性计算 前端开发 NoSQL
2025最新阿里云服务器配置选择攻略:CPU、内存、带宽与系统盘全解析
本文详解2025年阿里云服务器ECS配置选择策略,涵盖CPU、内存、带宽与系统盘推荐,助你根据业务需求精准选型,提升性能与性价比。
|
18天前
|
安全 Linux 数据安全/隐私保护
为Linux系统的普通账户授予sudo访问权限的过程
完成上述步骤后,你提升的用户就能够使用 `sudo`命令来执行管理员级别的操作,而无需切换到root用户。这是一种更加安全和便捷的权限管理方式,因为它能够留下完整的权限使用记录,并以最小权限的方式工作。需要注意的是,随意授予sudo权限可能会使系统暴露在风险之中,尤其是在用户不了解其所执行命令可能带来的后果的情况下。所以在配置sudo权限时,必须谨慎行事。
143 0
|
28天前
|
Ubuntu Linux 开发者
国产 Linux 发行版再添新成员,CutefishOS 系统简单体验
当然,系统生态构建过程并不简单,不过为了帮助国产操作系统优化生态圈,部分企业也开始用国产操作系统替代 Windows,我们相信肯定会有越来越多的精品软件登录 Linux 平台。
64 0
|
28天前
|
Ubuntu 安全 Linux
Linux系统入门指南:从零开始学习Linux
Shell脚本是一种强大的自动化工具,可以帮助您简化重复的任务或创建复杂的脚本程序。了解Shell脚本的基本语法和常用命令,以及编写和运行Shell脚本的步骤,将使您更高效地处理日常任务。
100 0
|
28天前
|
Ubuntu Linux 图形学
Linux学习之Linux桌面系统有哪些?
Cinnamon:与MATE类似,Cinnamon 拥有 GNOME 和 Unity 等其它桌面环境所没有的种种功能,是高度可定制的桌面环境,不需要任何外部插件、窗口组件和调整工具来定制桌面。
49 0
|
2月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
489 0
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
152 0
|
4月前
|
数据可视化 Linux iOS开发
Python测量CPU和内存使用率
这些示例帮助您了解如何在Python中测量CPU和内存使用率。根据需要,可以进一步完善这些示例,例如可视化结果或限制程序在特定范围内的资源占用。
156 22