通过Linux命令监控CPU案例
1.CPU利用率
查看cpu核数 输入top指定后 输入1 则显示cpu核数 cpu核数为4核
根据top显示的结果进行分析
监控参数说明:
us 用户态CPU时间(百分比)
sy 系统态CPU时间(百分比)
id 空闲CPU时间(百分比)
wa 等待IO的CPU时间
load average CPU平均占比
cpu利用率参考指标:
us 65% - 70% User Time 用户cpu占比
sy 30% - 35% System Time 系统cpu占比
id 0% - 5% Idle Time 空闲cpu占比
如果id占比为0,代表空闲cpu为空,表示系统出现高负载情况。
如果load average占比>cpu核数 表示系统出现高负载情况。
如果wa很高,代表IO等待时间很高,有可能是磁盘IO出现瓶颈。
如果us>70%,超过标准的cpu利用率70%,表示系统出现高负载情况。
pidstat -u 1 -p (pid号) 获取单个线程占比cpu占比最大的pid 监控单个线程cpu使用率
如果us>70%,需要查询cpu利用率高的线程,找到线程中应用程序的内容,找到系统瓶颈。
2.整体数据分析
通过vmstat进行服务器整体分析
监控参数说明:
r代表队列
cs代表上下文切换
in终端次数飙升 常说的软中断
si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。
so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。
bi列表示从块设备读入数据的总量
bo列表示写入到块设备的数据总量
wa列显示了I/O等待所占用的CPU时间百分比
数值分析
如果r数值长期大于系统CPU的个数,说明CPU不足,需要增加CPU。
cs数值和in数值出现频繁的变化,则存在高负载的情况。
bi+bo参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘I/O有问题,应该考虑提高磁盘的读写性能。
如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。
wa值越高,说明I/O等待越严重。根据经验,wa的参考值为20%,如果wa值超过20%,说明I/O等待严重。
sy值比较高,一般是in(中断)和cs(上下文切换)导致的,可以根据具体的情况开启PRS或则减少应用的线程池。
3.软中断问题分析
通过mpstat进行软中断问题分析
监控参数说明:
usr 用户cpu占比
sys 系统内核cpu占比
iowait io所使用的的cpu占比
irq 硬中断cpu占比
soft 软中断cpu占比
idle 空闲cpu占比
数值分析
如果soft数值很高,idle很低,需要考虑软中断优化。