linux查看cpu占用率的方法:

上周试过top工具看CPU。

2 02 3 年那个时间点,我用top -H -b -d1 -n2 00 > top.txt,看CPU线程情况。

top主要看/proc/loadavg前三个数,9 .5 3 9 .1 2 8 .3 7 3 这种。

top信息来自/proc/stat和/proc/[pid]stat。

us是用户空间,nice<=0。

ni是用户空间,nice>0。

sys是内核态,不包括中断。

id是空闲。

wa是IO等待。

hi是硬件中断。

si是软中断。

st是steal。

perf工具也看CPU,sudoperftop -scomm,这个是看进程占比。

sudoperfrecord记录,sudoperfreport -scomm看报告。

ksar图形化展示,需要sudoaptinstallsysstat。

修改配置文件sudogedit/etc/default/sysstat,把ENABLED="false"改成ENABLED="true"。

sudogedit/etc/cron.d/sysstat改周期。

sudo/etc/init.d/sysstatrestart重启服务。

/var/log/sysstat/是日志目录。

LC_ALL=C sar-A > sar.txt,ksar能读这个文件。

ksar用java -jar ksar.jar,Data -> Load from text file...选sar.txt。

collectl工具很全面,cpu、磁盘、网络都能看。

sudoapt-getinstallcollectl安装。

collectl默认显示cpu、磁盘、网络。

collectl --all显示所有子系统。

collectl --top代替top。

collectl --vmstat代替vmstat。

collectl -c1 -sZ -i:1 代替ps。

colplot可视化,先sudo./INSTALL安装。

sudosystemctlreloadapache2 或sudosystemctlrestartapache2 重启服务。

浏览器输入1 2 7 .0.0.1 /colplot/,选数据,生成图形。

算了。

如何查看Linux网络接口中断分配 /proc/interrupts分析

结论:看/proc/interrupts分析网卡中断。

路径:/proc/interrupts。

内容:CPU列、中断号、CPU处理次数、设备名。

关注点:设备名带eth开头的行。

判断:CPU处理次数是否均衡。

不均衡:某个CPU次数远多。

解决:调整中断亲和性。

操作: 1 . 确定中断号。
2 . 查看当前CPU掩码:cat /proc/irq//smp_affinity。
3 . 修改掩码:echo | sudo tee /proc/irq//smp_affinity。

问题:中断单CPU。
原因:多队列未启用或驱动不支持。

解决:ethtool查看支持多队列。
命令:ethtool -L

多队列:ethtool -X 设置RSS。

工具: mpstat:看CPU软中断。
sar -n DEV:看网卡流量。
perf:看中断热点。

实在话:动手调整,解决单CPU问题。