系统平均负载高(load average)
问题现象
- 两个案例都是:系统平均负载高,但cpu,内存,磁盘io都正常
什么是系统平均负载
-
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。
-
可运行状态的进程,是指正在使用CPU或者正在等待CPU的进程,也就是我们常用ps命令看到的,处于R状态(Running 或 Runnable)的进程
-
不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的I/O响应,也就是我们在ps命令中看到的D状态(Uninterruptible Sleep,也称为Disk Sleep)的进程
负载高的常见情况
-
我们常见的负载高一般有这几种情况引起,一个是cpu密集型,使用大量cpu会导致平均负载升高;
-
另外一个就是io密集型等待I/O会导致平均负载升高,但是CPU使用率 不一定很高;
-
还有就是大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高
问题分析
1、top:
2、vmstat:
可以看到r,cs和us较高
procs:
r 表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足。
b 表示等待资源的进程数,比如正在等待I/O、或者内存交换等。
memory:算是正常
swap:
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够或者内存泄露了,要查找耗内存进程解决掉。
so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。文章来源:https://www.toymoban.com/news/detail-404711.html
一般情况下,si、so的值都为0,如果文章来源地址https://www.toymoban.com/news/detail-404711.html
到了这里,关于如何解决linux系统平均负载高(load average)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!