服务器 CPU使用率低 但是load高

等待磁盘IO完成的进程太多,导致等待队列长度过大,体现load过高,但是cpu此时去执行别的任务或者空闲,所以会有CPU使用率低但是load高的情况。
主要有以下几种情况:

1、磁盘读写操作太频繁,导致大量IO等待

CPU的工作效率高于磁盘。
进程在CPU上运行要访问磁盘文件时,CPU会向内核去发起调用文件的指令,让内核去磁盘读取文件。
此时CPU去执行别的任务或者空闲。
这个进程就会变成不可中断睡眠状态,这种读写操作多了,就会有大量的不可中断睡眠状态的进程,导致load高。
优化方法:多使用cache

2、mysql 执行语句没有命中索引

mysql数据存储在磁盘上,查询的时候会把磁盘上的数据加载到内存里。当数据量很大,且查询语句没有命中索引时,就会造成扫描的行数过多致使IO阻塞,导致不可中断睡眠状态的线程越来越多,导致load高。
优化方法:show full processlist 查看等待情况,kill掉等待过长的进程,对响应语句进行优化。

猜你喜欢

转载自blog.csdn.net/qq_28605513/article/details/85246376