课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
负载均衡是我们在学习计算机编程开发技术的时候需要重点掌握的编程知识之一,而今天我们就通过案例分析来了解一下,平均负载概念与cpu使用率的关系。
一、平均负载概念
平均负载很多人容易理解成单位时间内的CPU使用率,这是不正确的。平均负载确实与CPU使用率有关系,但不是直接的关系。
简单来说,平均负载是指单位时间内,系统处于可运行状态和*不可中断状态*的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。
可运行状态,是指正在使用CPU或者正在等待CPU的进程,也就是在ps命令看到的R状态的进程。
不可中断状态,是指正处于内核关键流程中的进程,并且这些流程是不可以打断的,比如常见的等待硬件设备的I/O响应,也就是在ps命令看到的D状态的进程。
因此,平均负载其实就是平均活跃进程数,可以更直观的理解成单位时间内的活跃进程数。
既然平均的是活跃进程数,那么理想的,就是每个CPU上刚好运行着一个进程,这样每个CPU就得到了充分利用。
比如当平均负载为2时,意味着:
在只有2个CPU的系统上,意味着所有的CPU都刚好被完全占用。
在4个CPU的系统上,意味着CPU有50%的空闲。
在只有1个CPU的系统中,则意味着有一半的进程竞争不到CPU。
二、平均负载与CPU使用率
我们经常容易把平均负载和CPU使用率混淆,所以在这里,我也做一个区分。
再次说明下,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程。
而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:
CPU密集型进程,使用大量CPU会导致平均负载升高,此时这两者是一致的;
I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高;
大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。