《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
《Linux性能优化》总结一:cpu性能

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将中断分为两部分:
《Linux性能优化》总结一:cpu性能

watch -d配合下图两个命令可查看变化速率
《Linux性能优化》总结一:cpu性能

ps aux | grep softirq:可查看软中断线程运行情况

sar:可以实时查看系统当前活动、查看历史统计数据,可查看每秒接受、发送的网络帧数、千字节数,可由此计算每帧的大小

Hping3:构造tce/ip协议数据包,可以测试系统

tcpdump:网络抓包工具

  • 总结
    《Linux性能优化》总结一:cpu性能

工具总结:
《Linux性能优化》总结一:cpu性能

指标:
《Linux性能优化》总结一:cpu性能

使用工具的流程:
《Linux性能优化》总结一:cpu性能