有多少并行用户进程?

时间:2013-12-11 15:42:03

标签: ubuntu parallel-processing

有没有人知道如何估计具有启用超线程的N核的计算机上的用户进程的剩余并行线程(即有2 * N个并行作业)。操作系统占用了多少个核心,例如Ubuntu的?

1 个答案:

答案 0 :(得分:1)

您的操作系统实施抢先式多任务处理。这尤其意味着没有线程专门获得核心。相反,CPU时间片在准备好继续的线程之间分配。这种再分配在每一秒内发生多次。

Linux中的uptime命令可以告诉您在最后的1,5和15分钟间隔内平均准备好运行的线程数。

    $ uptime
    23:18pm  up  15:17,  3 users,  load average: 0.73, 0.62, 0.74

这里我们平均有大约0.7,不到1个线程。不是很忙的机器。

在繁忙的机器上,此数字可能超过可用逻辑CPU的数量。因此,如果您的2n用户进程确实已经准备好使用CPU并且因为等待来自RAM或I / O的数据而无法将其丢弃,那么操作系统线程的数量可以估计为

   current load average - 2n

在上面的示例中,此公式不起作用,因为用户进程正在等待用户输入或I / O,并且CPU大部分处于空闲状态。