linux性能分析

cpu性能分析
mpstat -P ALL 5    #多核cpu性能分析工具
pidstat -u 5 1     #进程性能分析工具,cpu、内存、I/O,上下文切换
系统cpu升高--程上下文切换、线程上下文切换和中断上下文切换
自愿上下文切换变多了,说明进程都在等待资源,有可能发生了 I/O 等其他问题;
非自愿上下文切换变多了,说明进程都在被强制调度,也就是都在争抢 CPU,说明 CPU 的确成了瓶颈;
中断次数变多了,说明 CPU 被中断处理程序占用,还需要通过查看 /proc/interrupts 文件来分析具体的中断类型。
vmstat 5       #cs、in、r、b
pidstat -w 5   #cswch、nvcswch
pidstat -w -u 1 #-w参数表示输出进程切换指标,而-u参数则表示输出CPU使用指标
pidstat -wt 1   #-wt 参数表示输出线程的上下文切换指标$ pidstat -wt 1
cat /proc/interrupts  #分析中断
1、某个应用cpu使用率高
perf top
perf record #记录性能事件
perf report # 展示类似于perf top的报告
perf top -g -p 21515   #-g开启调用关系分析,-p指进程号
2、系统cpu使用率高  #进程用户态和内核态的运行,还包括中断处理、等待 I/O 以及内核线程等
pstree #树状形式显示所有进程之间的关系:
3、iowait 升高
dstat 1 10 #观察系统的 CPU、磁盘 I/O、网络以及内存使用情况
pidstat -d -p 4344 1 3   # -d 展示 I/O 统计数据,-p 指定进程号,间隔 1 秒输出 3 组数据
pidstat -d 1 20 #观察所有进程的 I/O 使用情况
strace -p 6082   #跟踪进程系统调用,查看磁盘访问函数
4、僵尸进程--找出父进程
pstree -aps 3084 #-a 表示输出命令行选项 p表PID s表示指定进程的父进程
5、中断处理程序
上半部对应--硬中断 /proc/interrupts  
下半部对应--软中断 /proc/softirqs 软中断包括网络收发、定时、调度、RCU 锁等各种类型
当软中断事件的频率过高时,内核线程也会因为 CPU 使用率过高而导致软中断处理不及时,进而引发网络收发延迟、调度缓慢等性能问题。
sar 是一个系统活动报告工具,既可以实时查看系统的当前活动,又可以配置保存和报告历史统计数据。
tcpdump 是一个常用的网络抓包工具,常用来分析各种网络问题。
watch -d cat /proc/softirqs  #发现, TIMER(定时中断)、NET_RX(网络接收)、SCHED(内核调度)、RCU(RCU 锁)等这几个软中断都在不停变化。
sar -n DEV 1 #-n DEV 表示显示网络收发的报告,间隔1秒输出一组数据 查看系统的网路收发情况
# -i eth0 只抓取eth0网卡,-n不解析协议名和主机名# tcp port 80表示只抓取tcp协议并且端口号为80的网络帧
tcpdump -i eth0 -n tcp port 80

image.png

第一个维度,从 CPU 的性能指标出发


image.png

第二个维度,从工具出发


image.png

迅速分析 CPU 的性能瓶颈
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容