Linux性能优化实战(学习笔记-CPU 使用率100%)

本文介绍了CPU使用率的计算方法,包括查看CPU相关状态、进程状态及使用率命令。强调要熟悉不同类型CPU使用率含义,如用户、系统等。还说明了不同类型CPU使用率高时应排查的方向,以及碰到CPU使用率升高问题时可借助工具确认来源和具体函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU使用率计算方法:

cpu使用率 = 1 - cpu空闲时间/cpu总时间
cpu平均使用率 = 1 - (空闲时间new-空闲时间old)/(总时间new-总时间old)

查看cpu的相关状态,如运行节拍数,自愿非自愿切换数

cat /proc/stat | grep ^cpu

查看进程状态

cat /proc/[pid]/stat

查看cpu使用率命令

top  每隔3秒刷新一次
pidstat 1 5 每隔一秒输出一组数据,共输出5组
ps  aux 进程详细情况
perf top 查找热点函数,需要自行安装此工具
perf record 记录热点函数情况
perf report 查看记录的内容

CPU 使用率是最直观和最常用的系统性能指标,更是我们在排查性能问题时,通常会关注的第一个指标。所以我们更要熟悉它的含义,尤其要弄清楚用户(%user)、Nice(%nice)、系统(%system) 、等待 I/O(%iowait) 、中断(%irq)以及软中断(%softirq)这几种不同 CPU 的使用率。比如说:

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

碰到 CPU 使用率升高的问题,你可以借助 toppidstat 等工具,确认引发 CPU 性能问题的来源;再使用 perf 等工具,排查出引起性能问题的具体函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值