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 解析,本文到此为止,大家有任何问题,可以随时留言、沟通。

相关文章
|
9月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
823 3
Linux系统禁用swap
|
9月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1397 3
|
10月前
|
存储 弹性计算 缓存
阿里云ECS通用算力型u2i服务器性能测评、CPU型号及配置参数解析
阿里云ECS通用算力型u2i实例,搭载Intel® Xeon® Platinum处理器,支持第五、六代至强平台,适用于Web、Java、中小型数据库等场景。提供1:1至1:8多种vCPU与内存配比,最大32vCPU,标配ESSD Entry云盘,网络性能随规格提升增强,支持IPv4/IPv6,适用于企业级应用、数据分析、缓存集群等业务,兼顾性能与成本效益。
709 157
|
10月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
10月前
|
存储 Ubuntu Linux
「正点原子Linux连载」第二章Ubuntu系统入门
在图2.8.2.4中,我们使用命令umount卸载了U盘,卸载以后当我们再去访问文件夹/mnt/tmp的时候发现里面没有任何文件了,说明我们卸载成功了。
|
8月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
944 11
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
887 3
Linux系统初始化脚本
|
10月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
661 18
|
9月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1046 1
|
9月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1352 1

热门文章

最新文章