《Linux性能优化》总结一:cpu性能
来源极客时间
- 总览
uptime可查看系统平均负载:平均活跃进程数(可运行、不可中断)
cpu个数:grep ‘model_name’ /proc/cpuinfo | wc -l
mpstat:实时查看cpu性能指标(整体)
pidstat:实时查看进程的cpu、内存、io、上下文切换等性能指标
stress:压测
iostat:io状态
超过百分之70的使用率就该警醒
- cpu
cpu上下文切换:进程/线程/中断上下文切换
vmstat:查看系统上下文切换情况、系统内存使用情况
pidstat -w可以查看每个进程上下文切换情况,-u输出cpu使用指标,-t输出线程指标
sysbench:模拟上下文切换过多、评估不同系统参数下的数据库负载情况
watch -d cat /proc/interrupts:查看中断的变化情况
上下文切换上w次,或者呈数量级增长,就该警醒
cat /proc/stat | grep ^cpu :cpu状态
cpu使用率:除了空闲时间外的其他时间占总cpu时间的百分比,可查看目录/proc/stat
ab:用来模拟压测
进程运行情况的统计信息:/proc/[pid]/stat
最常见的查看cpu使用率的命令:top、ps
结合pidstat,可查看具体进程的cpu使用情况
适合第一时间分析进程的cpu问题:perl,可以使用-g开启调用关系分析,-p指定pid
perl record -g 可以查看性能报告
execsnoop:可以监控短时进程
- 僵尸进程/不可中断状态进程
dstat:吸收了vmstat、iostat、ifstat,可同时观察cpu、io、网络、内存
僵尸进程:pstree找出父进程,看代码,检查wait调用或sigchld信号处理函数
不可中断状态进程:iowait升高,则用dstat、pidstat,确实是不是磁盘io的问题,再用ps找到d状态的进程,看谁哪些进程导致了io,如果变成了僵尸进程没啥信息了,可以perl看性能报告
- 软中断
linux将中断分为两部分:
watch -d配合下图两个命令可查看变化速率
ps aux | grep softirq:可查看软中断线程运行情况
sar:可以实时查看系统当前活动、查看历史统计数据,可查看每秒接受、发送的网络帧数、千字节数,可由此计算每帧的大小
Hping3:构造tce/ip协议数据包,可以测试系统
tcpdump:网络抓包工具
- 总结
工具总结:
指标:
使用工具的流程: