性能优化--CPU使用率

usr 用户态CPU时间

nice 低优先级用户态CPU时间

system 系统态CPU时间

idle 空闲时间

iowait 等待IO的时间

irq 硬中断的时间

softirq 软中断的时间

steal 当系统运行在虚拟机中时,被其他CPU占用的时间。

gust 通过虚拟化,运行其他操作系统的时间。

gust_nice 以低优先级运行虚拟化的时候。

CPU使用率 = 1- 空闲时间/CPU总时间

 

用户态占用过多的CPU,应着重排查用户进程的性能问题。

系统态占用过多的CPU,应着重排查系统调用,内核进程的问题。

IO等待时机过长,应着重排查系统存储的IO问题。

软中断硬中断,应着重排查内核中的中断服务程序。

top,perf top -g 进程号 必须加-g才能显示函数调用信息。看exectue_ex下的函数调用。

 

碰到CPU占用率过高,但是top看不到CPU占用高的进程的情况可能是:

1、进程不断因为某种原因(段错误等)退出之后,被监视进程不断重启。

2、在进程内部通过exec调用的外部命令。这些命令进程只运行很短的时间就退出,一般很难用top来监控。

 

用工具https://github.com/brendangregg/perf-tools/blob/master/execsnoop可以监视出存在时间很短的进程。

也可以用perf record -g观察15秒,然后用perf report查看结果,可以定位出占用CPU使用率高的进程。

 

碰到CPU使用率过高问题的定位思路:

1、top命令查看CPU使用率,定位使用率高的进程,如果有,直接perf查看进程,定位到函数位置,走读代码,发现问题。

2、如果top命令查看CPU使用率高,但查不到使用率高的进程,考虑短时进程问题。用execsnoop工具定位短时进程。用perf record -g 和perf report定位短时进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值