[转帖]linux性能优化-CPU利用率

linux,性能,优化,cpu,利用率 · 浏览次数 : 0

小编点评

**参数说明 /proc/stat** **用户态CPU时间 (user):** 用户态CPU时间,不包括下面nice时间,但包括了guest时间。 **Nice CPU时间 (nice):** 代表低优先级用户态CPU时间。 **内核态CPU时间 (system):** 内核态CPU时间。 **闲置时间 (idle):** 空闲时间,它不包括等待I/O的时间。 **等待 I/O CPU时间 (iowait):** 代表等待I/O的CPU时间。 **处理硬中断的 CPU 时间 (irq):** 处理硬中断的CPU时间。 **处理软中断的 CPU 时间 (softirq):** 处理软中断的CPU时间。 **虚拟机 CPU 时间 (steal):** 当系统运行在虚拟机中的时候,被其它虚拟机占用的CPU时间。 **虚拟机 Nice CPU 时间 (guest_nice):** 以低优先级运行虚拟机的时间。

正文

参数说明

  1. /proc/stat提供系统的CPU和任务统计信息。
  2. user(us): 用户态CPU时间,不包括下面的nice时间,但包括了guest时间。
  3. nice(ni): 代表低优先级用户态CPU时间。
  4. system(sys): 内核态CPU时间。
  5. idle(id): 空闲时间,它不包括等待I/O的时间。
  6. iowait(wa): 代表等待I/O的CPU时间。
  7. irq(hi): 处理硬中断的CPU时间。
  8. softirq(si): 处理软中断的CPU时间。
  9. steal(st): 当系统运行在虚拟机中的时候,被其它虚拟机占用的CPU时间。
  10. guest(guest): 通过虚拟化运行其它操作系统的时间,即运行虚拟机的CPU时间。
  11. guest_nice(gnice): 以低优先级运行虚拟机的时间。
  12. CPU利用率:除了空闲时间外其它时间占总CPU时间的百分比。

排查思路

  1. 用户CPU和Nice CPU高,说明用户态进程占用了较多的CPU,所以应该着重排查进程的性能问题。
  2. 系统CPU高,说明内核态占用了较多的CPU,所以应该着重排查内核线程或者系统调用的性能问题。
  3. I/O等待CPU高,说明等待I/O的时间比较长,所以应该着重排查系统存储是不是出现了I/O问题。
  4. 软中断和硬中断高,说明软中断或硬中断的处理程序占用了较多的CPU,所以应该着重排查内核中的中断服务程序。

特殊场景:系统CPU使用率很高,但找不到高CPU应用

碰到这种问题,第一反应要考虑是短时应用导致的问题。

  1. 应用里直接调用了其它二进制程序,这些程序通常运行时间比较短,通过top等工具也不容易发现。
  2. 应用本身在不停的崩溃重启,而启动过程的资源初始化,很可能会占用相当多的CPU。
  3. 对于这类问题,可以使用pstree等工具找到他们的父进程,再从父进程所在应用入手,排查问题根源。

相关工具

  1. pstree: 树状形式显示所有进程之间的关系,常用来查找短时进程的父进程。
文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览11827 人正在系统学习中

与[转帖]linux性能优化-CPU利用率相似的内容:

[转帖]linux性能优化-CPU利用率

参数说明 /proc/stat提供系统的CPU和任务统计信息。user(us): 用户态CPU时间,不包括下面的nice时间,但包括了guest时间。nice(ni): 代表低优先级用户态CPU时间。system(sys): 内核态CPU时间。idle(id): 空闲时间,它不包括等待I/O的时间。

[转帖]《Linux性能优化实战》笔记(23)—— 内核线程 CPU 利用率过高,perf 与 火焰图

在排查网络问题时,我们还经常碰到的一个问题,就是内核线程的 CPU 使用率很高。比如,在高并发的场景中,内核线程 ksoftirqd 的 CPU 使用率通常就会比较高。回顾一下前面学过的 CPU 和网络模块,你应该知道,这是网络收发的软中断导致的。 要分析 ksoftirqd 这类 CPU 使用率比

[转帖]Linux性能优化(十)——CPU性能分析工具

Linux性能优化(十)——CPU性能分析工具 https://blog.51cto.com/u_9291927/2594169 一、CPU性能指标 1、CPU使用率 CPU使用率是最常见的一个性能指标,描述了非空闲时间占总CPU 时间的百分比,根据CPU上运行任务的不同,分为用户CPU、系统CPU

[转帖]《Linux性能优化实战》笔记(四)—— CPU 使用率

一、 节拍率与CPU时间 前一篇说到,Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。 为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jif

[转帖]《Linux性能优化实战》笔记(七)—— CPU瓶颈快速分析及性能优化思路

相当于是前面篇章的小结 一、 CPU 性能指标 常见指标包括: 平均负载CPU 使用率(user、iowait、system、软硬中断等)进程上下文切换(自愿、非自愿)CPU 缓存的命中率 CPU 的处理速度就比内存的访问速度快得多。这样,CPU 在访问内存的时候,免不了要等待内存的响应。为了协调这

[转帖]linux性能优化笔记之CPU篇

http://blog.trumandu.top/2019/03/02/linux%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E7%AC%94%E8%AE%B0%E4%B9%8BCPU%E7%AF%87/ cpu优化用到的命令 mpstat进程相关统计工具,cpu/io

[转帖]Linux性能优化实战 —— CPU

https://www.jianshu.com/p/2b6658ad59b3 Linux性能分析概要 1. 性能指标 linux性能指标.png 随着应用负载的增加,系统资源的使用也会升高,甚至达到极限。而性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。性能分析

[转帖]Linux性能优化(十一)——CPU性能优化原理

Linux性能优化(十一)——CPU性能优化原理 https://blog.51cto.com/u_9291927/2594259 一、CPU上下文切换 1、CPU上下文 Linux是多任务操作系统,支持远大于CPU数量的任务同时运行。在每个任务运行前,CPU需要知道任务从哪里加载、从哪里开始运行,

[转帖]Linux性能优化(十二)——CPU性能调优

Linux性能优化(十二)——CPU性能调优 https://blog.51cto.com/u_9291927/2594259 一、应用程序优化 (1)编译器优化。适当开启编译器优化选项,在编译阶段提升性能。gcc提供优化选项-On会自动对应用程序的代码进行优化。(2)算法优化。使用复杂度更低的算法

[转帖]Linux性能优化(十五)——CPU绑定

一、孤立CPU 1、孤立CPU简介 针对CPU密集型的任务,CPU负载较高,推荐设置CPU Affinity,以提高任务执行效率,避免CPU进行上下文切换,提高CPU Cache命中率。 默认情况下,Linux内核调度器可以使用任意CPU核心,如果特定任务(进程/线程)需要独占一个CPU核心并且不想