前言
最近在极客时间上面发现了倪鹏飞老师的Linux性能优化实战,自己感觉讲得很好,有兴趣的朋友可以去极客时间上面订阅。博客是自己总结学习到的一些命令,记录下来,以备后面使用。侵删。
平均负载
简单理解为,平均负载其实就是平均活跃进程数。
过载:当平均负载大于CPU个数的时候,系统发生过载。
极客时间版权所有: https://time.geekbang.org/column/article/69618
命令
uptime :用来看系统过去的 1 5 15 分钟的平均负载。
mpstat -P ALL interval count
这个命令主要是用来看CPU的统计信息,可以看到指定的CPU,也可以看到全部的CPU的情况。
interval是间隔时间,count是输出几次。
具体可以man mpstat
pidstat -u interval count
这个命令主要是用来看系统的进程的统计信息
interval是间隔时间,count是输出几次。
上面几个命令,除了uptime,其他是是要安装stress包和sysstat包,最好把包都upgrade到较新的版本,新的版本能支持更多的选项。
进程调度
老问题,主要的重点是进程Context的切换的性能损耗,还有就是中断处理程序也是一个进程,也会造成Context的切换。
命令
pidstat -w 会出现cswch和 nvcswch 一个是自愿切换,另外一个是非自愿切换
自愿切换:进程没有获取相关资源切换。
非自愿切换:CPU时间片到期。
pidstat -t 可以打出进程下面的线程运行情况。
pidstat -p pid 指定打印pid的进程相关信息。
vmstat :给出系统一系列的统计信息,包括中断数,内存,context切换数等等
相关文件
/proc/interrupts : 硬中断运行情况
/proc/softirqs:软中断运行情况
CPU使用率
CPU 使用率,就是除了空闲时间外的其他时间占总 CPU 时间的百分比
极客时间版权所有: https://time.geekbang.org/column/article/70476
perf
这个命令说是内置的,但是在一些特定的系统上面还是需要自己安装,使用包管理器来安装perf,会得到包名称的提示,实在不行就Stack Overflow。
这个命令是Linux的性能分析工具,里面有一系列的Command,具体还是要man看。
软中断
跟pidstat工具在一起的工具还有一个sar。
sar -n DEV 2
这个命令可以每两秒看到所有的网络接口上面的数据包的发送量和接收量。
测试工具
stress:使用死循环或者sysc()函数来模拟CPU密集型应用或者IO密集型应用,也可以模拟分配内存。
具体的使用方法可以 man stress。
stress --cpu NUMBER --timeout time
stress --io NUMBER --timeout time
上面的NUMBER都是进程个数。
sysbench : 基准测试工具