目录
概述
linux操作系统CPU 使用率
和 平均负载
区别
负载高并不一定使用率高,有可能 cpu 被占用,但不干活。
cpu使用率
cpu使用率:cpu非空闲态运行的时间占比,反映cpu的繁忙程度,和平均负载不一定完全一致
- 生产系统的cpu总使用率不要超过70~80%
- 比如
- 单核cpu 1s 内非空闲态运行时间为0.8s ,那么它的cpu使用率就是 80%
- 双核cpu 1s 内非空闲态运行时间为分别为 0.4s 和 0.6s,总体 cpu 使用率就是 (0.4s+0.6s)/(1s*2) = 50%
- linux的top命令查看cpu使用率 (核心指标、不常用的忽略)
- us(user) :cpu在用户态运行的时间百分比,通常用户态cpu高表示有应用程序比较繁忙,使用率高
- sy(sys): cpu在内核态运行的时间百分比(不包括中断),内核态 cpu 越低越好
- id(idle):cpu处于空闲态的时间占比,cpu会执行一个特定的虚拟进程,名为 system idle process
- 值高的话,则说明cpu比较空闲
- wal(iowait)
- cpu 在等待i/0 操作完成所消耗的时间,改指标越低越好,否则表示 i/o 存在瓶颈,用 iostat 命令进一步分析
- hi(hardirq): cpu处理硬中断所花的时间,由外设硬件(如键盘控制器、硬件优越感器等)发出的中断信号,快速执行
- si(softirq): cpu 处理软中断所花费的时间,由软件程序(如网络收发、定时调试等) 发出的中断信号,延迟执行
- st(steal) :cpu被其他的虚拟机占用的时间,仅出现在多虚拟机场景,指标过高的话,检查 下宿主机或其他虚拟机是否异常
区别
cpu使用率和平均负载
-
cpu平均负载 :指单位时间内活跃进程数,包括正在使用 cpu 的进程,还包括等待 cpu 和等待 i/0的进程
- 可运行状态和不可中断状态的平均进程数
-
cpu使用率:是指单位时间内cpu繁忙情况的统计
说明
- cpu密集型进程,使用大量 cpu 运算会导致平均负载升高,使用率也会升高,这个场景两者是一致的
- i/o 密集型进程,等待
i/o
也会导致平均负载长高,但 cpu 使用率不一定很高 - 拓展:cpu 密集型应用和io密集型应用
结束
linux操作系统CPU使用率和平均负载区别 总结。