cpu性能指标
- 使用率 >70%
- 负载(cpu队列) >cpu个数 * 核数 * 70%
- 中断
- 上下文切换 5000 * cpu核数
io_wait
含义:在一个采样周期内有百分之多少的时间是处于以下状态的:
- cpu空闲
- 存在未完成的io请求
io_wait误区:
- io_wait表示cpu不能工作
- io_wait高表示io存在瓶颈
sys: test1.sh
use: test2.c
cpu高-检查套路
windows:
- 使用process Explorer查看cpu使用率较高的进程,双击进入后切换到Threads Tab,记录cpu使用率较高的线程tid
- 获取线程快照
2.1 使用jvisualvm 对线程进行dump
2.2 将线程信息copy到文本编辑器 - 将步骤1中获取到的tid(十进制)转换成十六进制($tid)
- 在2.2中搜索$tid(十六进制)
- 查看对应的堆栈信息,以此进行分析
linux:
- 使用top查看使用率较高的进程,记录pid
- 查看步骤1中进程的具体线程(top -Hp $pid),并记录占用cpu比较高的线程的tid
- 获取线程快照:使用jstack $pid > $pid.info
- 将步骤2中获取到的tid(十进制)转换成十六进制($tid)
- 在第三步中的 p i d . i n f o 文件中查找 pid.info文件中查找 pid.info文件中查找tid
- 查看对应的堆栈信息,以此进行分析