起因
最近我们在执行代码更新的时候执行saltstack接收反馈信息特别慢,有时候还会出现卡住的现象,而我们的执行流程是通过saltstack-master 发送指令给阿里云部署的enter机,由enter机去执行salt指令,
那么我们就登录到这台阿里云的enter机上,执行top发现机器负载很高,但是CPU、内存、磁盘IO、网络IO使用率都不高
负载的状态
1、uninterruptible (等待磁盘输入输出/不可中断状态)
2、nterruptible (等待键盘输入输出/可中断状态)
3、running(正在运行)
什么是负载?
负载表示的是等待进程的平均数
。在上面进程状态变换过程中,除了running状态
,其他都是等待状态
,那么其他状态都会加入到负载等待进程中吗?
事实证明,只有进程处于运行态(running)
和不可中断状态(interruptible)
才会被加入到负载等待进程
中,也就是下面这两种情况的进程才会表现为负载的值
- 即便需要立即使用CPU,也还需等待其他进程用完CPU
- 即便需要继续处理,也必须等待磁盘输入输出完成才能进行
什么场景会造成CPU低而负载确很高呢?
通过上面的具体分析负载的意义就很明显了,负载总结为一句话就是:需要运行处理但又