“ 总结下排查工具”
01
—
系统工具命令备忘录
toppidstat 1 # 间隔1秒输出一组数据pidstat -d 1 20 # 每隔1秒输出20组数据 包括所有进程数据pidstat -d -p 进程ID 1 3 # 间隔1秒输出三组数据 -d代表输出进程的I/O统计数据perf top -g -p 进程ID # 根据进程ID找出调用的函数perf top -g # 分析消耗CPU时钟的事件pstree # 查看进程树,方便找出父进程perf record -g # 保存CPU事件perf report # 分析刚保存的事件情况topmpstat -P ALL 1 # 查看CPU性能指标数据vmstat 5 # 分析内存和CPU上下文切换指标工具pidstat -tw 5 # 查看进程占用CPU上下文指标数据execsnoop # 分析短时进程的工具
中断程序的含义
中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求
软中断和硬中断
中断是一种异步的事件处理机制,用来提升并发处理能力
Linux中的中断程序分为上半段和下半段
上半段对应硬件中断,用来快速处理中断,文件可以查看/proc/interrupts
下半段对应软中断,用来处理上半段未完成的任务,还包括一些其他内核线程,文件可以查看 /proc/softirqs
软中断包括的类型
Linux 中的软中断包括网络收发、定时、调度、RCU 锁等各种类型
软中断CPU使用率升高,排查思路?
通过以下的思路,判断软中断是具体哪些类型指标在升高,从而使用不同的工具来继续跟进分析
# 1. 工具# sar 每隔1秒输出 系统网络相关数据报告$ sar -n DEV 1 # 系统活动报告工具,既可以实时查看系统的当前活动,又可以配置保存和报告历史统计数据# 2. 通过top命令,查看如果发现是ksoftirqd/1这种进程占用cpu负载最多,可以查看文件 是哪些数值变化频率特别高,从而知道是哪些软中断类型watch -d cat /proc/softirqs# 3. 如果看到是网络中断类型,可以通过sar工具,查看网络数据指标sar -n DEV 1#-----------查看结果10时29分31秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil10时29分32秒 ens33 2.00 3.00 0.12 0.79 0.00 0.00 0.00 0.0010时29分32秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0010时29分32秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0010时29分32秒 vetha8c0dc6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00# IFACE: 显示网卡名称# rxpck/s: 接收的网络数据帧(PPS)# txpck/s: 发送的网络数据帧(PPS)# rxkB/s: 接收的网络千字节数(BPS)# txkB/s: 发送的网络千字节数(BPS)# 计算接收的每个网络帧有多少字节数接收的网络千字节数(BPS) * 1024 / 接收的网络数据帧(PPS)# 4. 使用tcpdump工具分析数据包# -i eth0 只抓取ens33网卡,-n不解析协议名和主机名# tcp port 80表示只抓取tcp协议并且端口号为80的网络帧tcpdump -i ens33 -n tcp port 80
CPU性能相关总结
CPU性能指标

排查CPU相关工具


根据性能指标分析使用哪个工具查看


CPU指标排查思路

牛人博客推荐
`Brendan D. Gregg 中文名: 布兰登·格雷格`
[牛人博客](http://www.brendangregg.com/index.html)
- 中文版书籍: 《性能之巅:洞悉系统、企业与云计算》
- 英文版: 《Systems Performance: Enterprise and the Cloud》
文章转载自devops运维工程师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




