【发布时间】:2014-03-31 15:01:19
【问题描述】:
在 make 中运行多个作业会导致服务器崩溃吗?
例如:
make -j 20 all
如果处理这个请求的服务器已经被大量使用,比如只有 20 个处理器,服务器会崩溃吗?还是会直接拒绝制作工作?
编辑: 问题的原因:我的一位同事前几天说我使用多个作业导致服务器崩溃。我的猜测是服务器会给出“虚拟内存耗尽”声明,或者在崩溃之前简单地拒绝工作。
【问题讨论】:
-
也没有? “线程”(例如一个“工作”)是一种编程思想,与架构不匹配。我允许所有这些线程一次以编程方式运行。但是,作业是在内核中处理的。这意味着您最多可以同时运行 n 条指令。如果您有 n+m 个线程,它们会竞争资源,但不会崩溃,它们会被调度程序排队。你可能会因为太多的作业(比如需要太多的内存)导致计算机崩溃,但只有具有许多依赖项的大型项目才会有这么多可以同时运行的作业。
-
make -j all(即,根本没有工作限制)但是,预计会给您的服务器带来很大的麻烦。磁盘抖动、内存耗尽、进程插槽耗尽……各种针对硬件的犯罪。您可能需要一些时间才能重新获得控制权,但不,它不应该崩溃。为什么要问这个问题?
标签: c++ gcc compilation makefile gnu-make