Linux性能分析---CPU

    每一次调查性能问题都要从头梳理一次,而每一次检索都只能找到单独的命令,所以在这里就把常用的命令和方法做一下记录。至于判断标准,是从各个博文中找到的,未能从原理上证实其准确性,所以可能会有出入。
   另外这里对所有的命令和工具都是做极简的概要性说明,详细说明可在文后的参考链接中查看。
 
    CPU利用率的判断标准:
1)查看CPU利用率:User65%~70%,System30%~35%,Idle0%~5%。
2)上下文切换:只是一个参考因素,只要CPU利用率正常,这个值不需要太关注。
3)可运行队列:每个处理可以负担的可运行队列约为:1~3。
4)CPU负载:   一般15分钟内的负载应该 < 核心数*0.7
 
    系统CPU利用率监测工具:
1)top :  监测系统CPU利用率,关注:User、sys、Idle及CPU占用率持续较高的进程
2)mpstat:查看各CPU的利用率
3)perf top:查看当前CPU占用率较高的系统API
4)vmstat:查看CPU利用率、中断、上下文切换、可运行队列数、阻塞队列数
5)cat /proc/cpuinfo:查看CPU信息
6)uptime:查看CPU负载
 
    进程CPU利用率监测、分析工具:
1)pstack PID:   按照线程,打印进程堆栈
2)perf + 火焰图:利用perf打印进程信息,并使用火焰图将其图形化,然后找到CPU耗费时间高的函数
3)top -Hp PID: 将进程中的线程,按CPU占用率进行排列
4)ps -mp PID -o THREAD,tid,time:查看进程内的线程信息
5)ps hH p PID: 列出进程内的所有线程
 
参考文档:
    
posted @ 2018-12-25 23:51  !--!  阅读(240)  评论(0编辑  收藏  举报