【问题标题】:how many processes can be run parallel in background后台可以并行运行多少个进程
【发布时间】:2016-03-21 05:51:39
【问题描述】:

通过添加&,命令可以在后台运行, 但是实际上可以在后台运行多少进程? 我有数百个文件要处理,希望通过在后台分离和运行它们来最小化时间

我想知道我是否必须检查我有多少线程,但是我对线程的概念感到困惑..

当我cat /proc/cpuinfo:

cpu cores   : 8
siblings    : 16

这是否意味着我有 8 个内核和 16 个线程, 但是

是什么意思

cat /proc/sys/kernel/threads-max 2063255

这里的线程是什么意思?那么here 使用top 的答案呢?

我很困惑..请帮助

【问题讨论】:

    标签: linux multithreading bash background parallel-processing


    【解决方案1】:

    有一个限制。

    cat /proc/sys/kernel/pid_max
    

    【讨论】:

    • 有了root权限,用户上的killall应该也能阻止fork炸弹。人们说它也可以在 Linux 上运行,尽管我从来没有看到过保证。
    • @Dummy00001 使用 pid_max 中给出的最大可能数量进行了编辑
    • 作为新手,尽量避免在没有足够警告的情况下发布叉子炸弹之类的东西。如果您发布了一种使用叉形炸弹测量极限的方法,那将是另一回事。但是还是有人为你 +1 了 ;)
    • 好的,我会处理的。
    • tks,fork炸弹很酷,我+1了,但我没有尝试,不敢破坏服务器..
    【解决方案2】:

    但这意味着什么

     cat /proc/sys/kernel/threads-max
    

    来自proc(5)

    此文件指定系统范围内可在系统上创建的线程(任务)数量的限制。

    task 是 Linux 用于进程/线程/等的术语,所有受任务调度影响的实体。

    【讨论】:

      【解决方案3】:

      我找到了完整的答案here

      其中详细解释了pid_maxthreads-maxulimit -ulimits.conf,现在对我来说已经足够清楚了

      tks

      【讨论】:

        【解决方案4】:

        在未经修改的系统上,我已成功并行运行 30000 个进程 (s/run/crawled/)。

        如果你改变 /proc/sys/kernel/pid_max 你可以走得更高。但请注意,当您接近 /proc/sys/kernel/pid_max 时,您的系统会变得非常不稳定。

        【讨论】:

          猜你喜欢
          • 2019-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多