Linux系统负载详解

    在进程调度器维护的运行队列中,任何时刻至少存在一个进程,那就是正在运行的进程。而当运行队列中有不止一个进程时,就说明此时CPU比较抢手,其他进程还在等着,进程调度器应该尽快让正在运行的基础释放CPU。
    通过在任何时刻查看/proc/loadavg,可以了解到运行队列的情况:
    [root@localhost ~]# cat /proc/loadavg
    0.00 0.02 0.05 1/335 3427

    注意1/335这部分,其中的1代表此时运行队列中的进程个数,而335则代表此时的进程总数。
    最右边的3427代表到此时为止,最后创建的一个进程ID。
    接下来,请看左边的三个数值,分别是0.00 0.02
    0.05,他们就是我们常说的系统负载。我们都知道,系统负载越高,代表CPU越繁忙,越无法很好地满足所有进程的需要。但是,系统负载是如何计算而来的
    呢?根据定义,它是在单位时间内运行队列中就绪等待的进程数平均值,所以当运行队列中就绪进程不需要等待就可以马上获得CPU的时候,系统负载便非常低。
    当系统负载为0.00时,说明任何进程只要就绪后就可以马上获得CPU,不需要等待,这时候系统响应速度最快。
    那么,刚才提到的三个数值,便是系统最近1分钟、5分钟、15分钟分别计算得出的系统负载。
    我们还可以通过其他方法获得系统负载,比如top、w等工具:
    [root@localhost ~]# top
    top – 15:24:25 up 99 days, 5:01, 1 user, load average: 0.13, 0.05, 0.05

    [root@localhost ~]# w
    15:24:59 up 99 days, 5:02, 1 user, load average: 0.07, 0.04, 0.05
    从实现方法上看,这些工具获得的系统负载都是来源于/proc/loadavg。

    • 本文由 发表于 2012-05-18
    • 转载请务必保留本文链接:https://linuxeye.com/123.html
    Consul集群配置 Linux

    Consul集群配置

    consul原理 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Se...
    匿名

    发表评论

    匿名网友