平均负载详解
平均负载(load average)是什么
衡量系统繁忙的一个综合指标,主要是CPU,IO,网络的繁忙程度。工作中非常常用,具体哪个指标繁忙
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。
系统平均负载被定义为在特定时间间隔内【CPU运行队列中的平均进程数】。如果一个进程满足以下条件则其就会位于运行队列中:
- 可运行状态进程:是指正在被CPU处理或者正在等待CPU处理的进程,ps命令看到处于R状态的进程。可运行状态: S R 占用cpu
- 不可中断进程:系统中最常见的是等待硬件设备的I/O响应,ps命令中看到的D 状态进程。
平均负载其实就是【单位时间内的活跃进程数】。
查看系统的平均负载
uptime ##或者top等
10:54:52 up 1124 days, 16:31, 6 users, load average: 3.67, 2.13, 1.79
- 10:54:52 是当前时间;
- up 1124 days, 16:31 是系统运行时间;
- 6 users 则是正在登录用户数。
- 而最后三个数字依次是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数
- 当平均负载高于 CPU 数量 70% 的时候,就应该分析排查负载高的问题。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能
- 平均负载与 CPU 使用率关系
○ CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的
○ I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高
○ 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高