ubuntu - 可以有多少个并行用户进程?

标签 ubuntu parallel-processing

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

最佳答案

您的操作系统实现了抢先式多任务处理。这尤其意味着没有线程独占核心。相反,CPU 时间片分布在准备继续的线程之间。这种重新分配在每秒内发生多次。
uptime Linux 中的命令可以告诉您在最后 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 大部分时间都是空闲的。

关于ubuntu - 可以有多少个并行用户进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20523459/

相关文章:

c++ - 线程构建 block 与 pthreads 相结合

hadoop - 如何保证MapReduce任务之间相互独立?

c++ - 我如何并行化这个暴力攻击算法

random - 随机数种子的可能来源

linux - 找不到 "Qt5Svg"提供的包配置文件

ubuntu - PIP 找不到任何满足 SQLAlchemy 要求的下载

ubuntu - 如何从源代码在 Ubuntu 16.10 上安装 ZeroMQ 4

python - 使用 CGI 保存临时文件 (Ubuntu)

mysql - MySQL版本迁移到新服务器的方法

r - 如何在R中使用循环和并行获得相同的结果?