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

相关文章
|
1天前
|
Linux 网络安全
CentOS系统openssh-9,网络安全大厂面试真题解析大全
CentOS系统openssh-9,网络安全大厂面试真题解析大全
|
4天前
|
Rust 安全 程序员
使用Rust进行系统编程:安全性优势深度解析
【5月更文挑战第14天】Rust,Mozilla开发的系统编程语言,以其内存安全、并发支持和静态类型系统在系统编程中脱颖而出。所有权和借用检查机制消除内存错误,无锁并发原语提升安全性,静态类型减少运行时错误,最小权限原则降低权限风险。强大的社区支持和安全审计进一步确保了代码的安全性和稳定性,使Rust成为安全高效系统编程的理想选择。
|
4天前
|
机器学习/深度学习 人工智能 算法
构建高效AI系统:深度学习优化技术解析
【5月更文挑战第12天】 随着人工智能技术的飞速发展,深度学习已成为推动创新的核心动力。本文将深入探讨在构建高效AI系统中,如何通过优化算法、调整网络结构及使用新型硬件资源等手段显著提升模型性能。我们将剖析先进的优化策略,如自适应学习率调整、梯度累积技巧以及正则化方法,并讨论其对模型训练稳定性和效率的影响。文中不仅提供理论分析,还结合实例说明如何在实际项目中应用这些优化技术。
|
4天前
|
监控 供应链 数据可视化
深度解析BPM系统:优化业务流程,提升组织效率
本文探讨了业务流程管理系统(BPM)的核心价值和功能,以及低代码如何优化流程管理。BPM通过自动化和标准化流程,提高效率,降低技术复杂性,促进协作和监控。低代码平台加速了开发进程,增强了流程自动化,使得非专业开发者也能构建应用程序。结合低代码,企业能更轻松地适应市场变化,实现流程简化和业务增长。
13 1
|
4天前
|
存储 SQL 自然语言处理
RAG技术全解析:打造下一代智能问答系统
一、RAG简介 大型语言模型(LLM)已经取得了显著的成功,尽管它们仍然面临重大的限制,特别是在特定领域或知识密集型任务中,尤其是在处理超出其训练数据或需要当前信息的查询时,常会产生“幻觉”现象。为了克服这些挑战,检索增强生成(RAG)通过从外部知识库检索相关文档chunk并进行语义相似度计算,增强了LLM的功能。通过引用外部知识,RAG有效地减少了生成事实不正确内容的问题。RAG目前是基于LLM系统中最受欢迎的架构,有许多产品基于RAG构建,使RAG成为推动聊天机器人发展和增强LLM在现实世界应用适用性的关键技术。 二、RAG架构 2.1 RAG实现过程 RAG在问答系统中的一个典型
50 2
|
4天前
|
缓存 监控 前端开发
如何在 Linux 命令行中检查 CPU 使用率
【5月更文挑战第8天】
18 0
|
4天前
|
供应链 监控 安全
全面剖析:新页ERP系统不为人知的一面,以及系统的工作流程解析!
全面剖析:新页ERP系统不为人知的一面,以及系统的工作流程解析!
|
4天前
|
新零售 供应链 搜索推荐
多人拼团新零售分销模式系统开发(解析)
新零售模式的推广和应用,必将对传统零售业产生深远影响
|
4天前
|
Linux 网络安全 数据库
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
|
4天前
|
Linux 开发工具 Android开发
移动应用与系统:开发与操作系统的深度解析
【5月更文挑战第6天】 在数字化时代,移动应用和操作系统是信息技术的核心组成部分。本文深入探讨了移动应用的开发过程、关键技术以及移动操作系统的架构和功能。通过对这些技术的详细分析,我们可以更好地理解移动应用和系统的工作原理,以及它们如何影响我们的生活和工作。

热门文章

最新文章