linux性能优化-CPU利用率

参数说明

  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: 树状形式显示所有进程之间的关系,常用来查找短时进程的父进程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值