「原创声明:保留所有权利,禁止转载」
CPU(中央处理器),是电子计算机的主要设备之一,电脑中的核心配件。CPU 作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU 的功效主要为处理指令、执行操作、控制时间、处理数据。
CPU 性能相关指标
只看 us 那是不正确,不全面的。已图上 top 命令为例,需要关注的 CPU 性能相关指标:
load average[系统平均负载]
us[用户空间占用CPU百分比]
sy[内核空间占用CPU百分比]
ni[用户进程空间内改变过优先级的进程占用CPU百分比]
id[空闲CPU百分比]
wa[等待输入输出的CPU时间百分比]
hi[硬中断]
si[软中断]
平均负载
平均负载最理想的情况是等于 CPU 个数。
查询CPU个数命令:lscpu
当平均负载高于 CPU 数量 70% 的时候,你就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。最推荐的方法是持续观察,判断负载的变化趋势,当发现负载有明显升高趋势时,进行分析判断。
CPU 利用率
在系统 CPU 分析过程中,(us,sy)当 CPU 利用率大于 50% 时,需要注意。当 CPU 利用率大于 70% 的时候,需要密切关注。当 CPU 利用率大约 90%,情况就比较严重。当然每种情况下的 CPU 都有按需分析的可能。
以 Java 应用为例定位 CPU 瓶颈
1、jps 确定Java进程ID
2、top -Hp <pid> 确定进程内最耗费CPU的线程
3、printf “%x\n” <pid> 确定线程十六进制值
4、jstack <pid> | grep <线程十六进制值> 确定瓶颈代码
注:当然也可以选用strace、perf这类linux的性能分析工具。还有类似arthas这类二次封装的工具。
等待输入输出的 CPU 时间
wa 指标升高时,需要关注分析判断系统是否在做 IO 操作,是否有 IO 瓶颈。
io情况查询命令:iostat
扫一扫,关注我
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。