栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux高阶—CPU性能分析vmstat(三)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux高阶—CPU性能分析vmstat(三)

通过vmstat命令看到的cpu四个状态:sy,us,id,wa和procs状态的r(load avg)结合,基本可以知道cpu的负荷情况。

字段含义如下:

理解(Load Average),使用vmstat 查看r 队列

平均负载,上一分钟同时处于“就绪”状态的平均进程数。

Load这个东西怎么理解呢,就像一条马路,有N个车道,如果N个进程进入车道,那么正好一人一个,再多一辆车就占不到车道,要等有一个车空出车道。

Load Average 的值应该小于“CPU个数 * 核数 *0.7 ” ,否则就高了。

比如:

查看 CPU 核心数:cat /proc/cpuinfo|grep processor|wc -l
1个1核CPU,Load Average < 1 * 1 * 0.7 = 0.7;
1个4核的CPU,Load Average必须 < 1 * 4 * 0.7 = 2.8。

理解(Interrupt),使用vmstat查看的 in 次数

Interrupt Rate中包括内核由于进程的时间片中断。
在 Linux 2.6 中,系统时钟每 1 毫秒中断一次时钟频率,用 HZ 单位表示(即每秒中断 1000 次)。
系统不一样,内核不一样的配置100、250的都有。

内核的时钟频率可以通过如下命令知道: 

cat /boot/config-`uname -r` | grep ‘^CONFIG_HZ=’

CONFIG_HZ=100

每秒总的时钟中断数就是 = cpu个数 * 核数 * CONFIG_HZ

cat /proc/interrupts   可以查看中断的类型以及次数

理解(Context Switch),使用vmstat查看 cs 次数

中断和进程(包括线程)切换,一次中断(Interrupt)会引起一次切换,进程(线程)的创建、激活之类的也会引起一次切换。
统计CPU 上下文切换,可查看哪个服务在做切换,与切换频率。

pidstat -wt 1 |grep -v 0.00

理解CPU使用率,使用vmstat查看id 空闲率可以判断CPU使用情况,然后通过ps 命令,找到对应的PID信息。

统计业务进程数量、占用CPU前20的进程信息。

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -20

统计D进程:得不到IO的响应,进程会进入了uninterruptible sleep状态,所以要想使进程从uninterruptible sleep状态恢复,就得使进程等待的IO恢复,D进程太多,一般只能重启操作系统。

ps -aux | awk '$8 == "D"' |wc -l

查看哪个用户启用线程数最多

ps h -Led -o user | sort | uniq -c | sort -n

查看哪个进程启用线程数最多

ps h -Led -o pid | sort | uniq -c | sort -n

ps -Lef |grep -v PID|sort -rn -k +6 |head -1

找到异常线程后,如果是java线程,可以使用jstack 打印堆栈日志,然后通过日志分析哪一段代码有问题!

上一篇:Linux高阶—磁盘性能分析iostat(二)​​​​​​

下一篇:Linux高阶—接口性能分析fiddler(四)​​​​​​​

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号