课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
负载均衡是我们在学习软件编程开发的时候需要重点关注的问题之一,而今天我们就一起来了解一下,Linux编程环境下的负载均衡基础知识。
1、uptime命令
通常我们发现系统变慢时,我们都会执行top或者uptime命令,来查看当前系统的负载情况,比如像下面,我执行了uptime,系统返回的了结果。
2、平均负载概念
平均负载很多人容易理解成单位时间内的CPU使用率,这是不正确的。平均负载确实与CPU使用率有关系,但不是直接的关系。
简单来说,平均负载是指单位时间内,系统处于可运行状态和*不可中断状态*的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。
可运行状态,是指正在使用CPU或者正在等待CPU的进程,也就是在ps命令看到的R状态的进程。
不可中断状态,是指正处于内核关键流程中的进程,并且这些流程是不可以打断的,比如常见的等待硬件设备的I/O响应,也就是在ps命令看到的D状态的进程。
因此,平均负载其实就是平均活跃进程数,可以更直观的理解成单位时间内的活跃进程数。
既然平均的是活跃进程数,那么理想的,就是每个CPU上刚好运行着一个进程,这样每个CPU就得到了充分利用。
比如当平均负载为2时,意味着:
在只有2个CPU的系统上,意味着所有的CPU都刚好被完全占用。
在4个CPU的系统上,意味着CPU有50%的空闲。
在只有1个CPU的系统中,则意味着有一半的进程竞争不到CPU。
3、平均负载与CPU使用率
我们经常容易把平均负载和CPU使用率混淆,所以在这里,我也做一个区分。
再次说明下,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程。
而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:
CPU密集型进程,使用大量CPU会导致平均负载升高,此时这两者是一致的;
I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高;
大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。