哪些进程状态有助于服务器的负载平均值?

时间:2016-03-18 21:58:15

标签: linux unix process operating-system signals

这是我通过电话筛选参加的面试问题。

我给出了答案: Running State (R)interruptible State (S)IO wait

但我想我可能会错误地理解这个问题,或者在我的答案中可能会遗漏某些东西,我只是觉得这样。

所以我通过互联网检查了一些愚蠢的分散信息。我仍然不确定答案是什么。

您如何看待这个问题的答案?

1 个答案:

答案 0 :(得分:2)

没有标准的计算负载平均值的方法,这取决于操作系统。这是Linux's load calculator

long calc_load_fold_active(struct rq *this_rq)
{
    long nr_active, delta = 0;

    nr_active = this_rq->nr_running;
    nr_active += (long) this_rq->nr_uninterruptible;

    if (nr_active != this_rq->calc_load_active) {
        delta = nr_active - this_rq->calc_load_active;
        this_rq->calc_load_active = nr_active;
    }

    return delta;
}

Linux为负载平均值计算为活动的进程是Running(R)和Uininterruptible(D)。

不计入可中断睡眠(S),也不计算已解散(Z)或停止(T)。