Linux性能优化

CPU

平均负载

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,和 CPU 使用率并没有直接关系

在只有 2 个 CPU 的系统上,平均负载为 2 代表所有的 CPU 都刚好被完全占用,大量 IO 会导致平均负载变高,但 CPU 使用率却不一定高

top 命令展示的三个值,分别为 1 分钟、5 分钟、15 分钟内的平均负载

上下文切换

vmstat 可以查看系统整体上下文切换情况:

pidstat 则可以查看单个进程的上下文切换情况,cswch ,表示每秒自愿上下文切换(voluntary context switches)的次数,另一个则是 nvcswch ,表示每秒非自愿上下文切换(non voluntary context switches)的次数

中断处理也需要上下文切换,可以通过 /proc/interrupts 查看中断最多的类型

CPU使用率

通过 top 可以查看 CPU 在不同场景下的运行时间:

为了在具体进程找到占用 CPU 时钟最多的函数或者指令,可以通过 perf top 查看函数名或函数地址