CPU性能指标
cpu使用率:描述了cpu非空闲时间占总cpu时间的百分比,根据运行任务的不同又分为,用户cpu使用率,系统cpu使用率,io cpu使用率,硬中断软中断cpu使用率
- 用户cpu使用率:cpu在用户态进程(user)和低优先级进程(nice)占cpu总运行时间的百分比,如果该值较高,则用户态有进程非常繁忙。
- 系统cpu使用率:cpu在内核态运行的时间占cpu总运行时间的百分比,如果该值较高,则内核态非常繁忙。
- io cpu使用率:cpu在等待io操作的时间占 cpu总运行时间的百分比,如果该值较高,则说明系统与io设备交互时间长。
- 硬中断软中断cpu使用率:分别表示内核在处理硬中断和软中断程序所花费的时间占cpu总运行时间的百分比,如果该值较高,通常说明系统发生了大量的中断。
- 除了上面这些,还有在虚拟化环境中会用到的窃取cpu使用率(steal)和客户cpu使用率(guest),分别表示其他虚拟机占用的cpu时间百分比,和运行客户虚拟机的cpu时间百分比。
平均负载:也就是系统的平均活跃进程数。它反应了系统的整体负载情况,主要有三个数值,分别指过去1分钟,5分钟,15分钟的平均负载,理想情况下,平均负载等于逻辑cpu个数,这表示每个cpu都恰好被充分利用。如果平均负载大于逻辑cpu个数,就表示负载比较重了。
进程上下文切换:
包括:无法获取资源而导致的自愿上下文切换
被系统强制调度导致的非自愿上下文切换
上下文切换本身是保证linux正常运行的一项核心技能。但过多的上下文切换,会将原本运行进程的cpu时间,消耗在寄存器,内核栈,以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成为性能瓶颈。