linux - 哪些进程状态会影响服务器的平均负载?

标签 linux unix process operating-system signals

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

我给出的答案是: Running State (R) , interruptible State (S)IO wait .

但我认为我可能错误地理解了这个问题,或者我的答案中可能缺少一些东西,我只是觉得。

所以我在互联网上查了一下,发现了一些愚蠢的零散信息。我仍然不确定答案是什么。

您对这个问题的答案有何看法?

最佳答案

没有计算平均负载的标准方法,这取决于操作系统。这是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 计为事件的进程为正在运行 (R) 和不可中断 (D)。

可中断 sleep (S) 不计算在内,也不计算已停止 (Z) 或已停止 (T)。

关于linux - 哪些进程状态会影响服务器的平均负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094913/

相关文章:

linux - 如何复制所有包含特定字符的字符串,并将其粘贴到另一个文件中

linux - 为什么我在 ubuntu 上安装的文件系统上得到不正确的时间戳?

python - ImportError : Missing required dependencies ['numpy' ]. 没有任何帮助

function - 将函数的返回值分配给 unix shell 脚本中的变量

macos - Mac OS X : Can one process render to another process's window?

c - 简单的 fork 程序中不可预测的输出

c - 在 C 中初始化定时器

将一个文件的数据复制到另一个文件

windows - Windows 中的 Perl Kill(0, $pid) 总是返回 1

Java Jsyn设置过滤器的输入、处理和获取输出