在make中运行多个作业会导致服务器崩溃?
Posted
技术标签:
【中文标题】在make中运行多个作业会导致服务器崩溃?【英文标题】:Running multiple jobs in make cause server to crash? 【发布时间】:2014-03-31 15:01:19 【问题描述】:在 make 中运行多个作业会导致服务器崩溃吗?
例如:
make -j 20 all
如果处理这个请求的服务器已经被大量使用,比如只有 20 个处理器,服务器会崩溃吗?还是会直接拒绝制作工作?
编辑: 问题的原因:我的一位同事前几天说我使用多个作业导致服务器崩溃。我的猜测是服务器会给出“虚拟内存耗尽”声明,或者在崩溃之前简单地拒绝工作。
【问题讨论】:
也没有? “线程”(例如一个“工作”)是一种编程思想,与架构不匹配。我允许所有这些线程一次以编程方式运行。但是,作业是在内核中处理的。这意味着您最多可以同时运行 n 条指令。如果您有 n+m 个线程,它们会竞争资源,但不会崩溃,它们会被调度程序排队。你可能会因为太多的作业(比如需要太多的内存)导致计算机崩溃,但只有具有许多依赖项的大型项目才会有这么多可以同时运行的作业。make -j all
(即,根本没有工作限制)但是,预计会给您的服务器带来很大的麻烦。磁盘抖动、内存耗尽、进程插槽耗尽……各种针对硬件的犯罪。您可能需要一些时间才能重新获得控制权,但不,它不应该崩溃。为什么要问这个问题?
【参考方案1】:
服务器会崩溃吗?
不,它不应该崩溃,除非您在自己或某人的程序中遇到错误。它应该会继续工作(虽然由于负载过重而速度较慢)。
还是会直接拒绝制作工作?
不,Linux 的设计初衷不是阻止进程创建。当然,并行运行的进程数量是有限制的(其他操作系统也是如此),因为计算机没有无限的资源。
【讨论】:
以上是关于在make中运行多个作业会导致服务器崩溃?的主要内容,如果未能解决你的问题,请参考以下文章
如果 Android 服务崩溃,它会导致它正在运行的应用程序崩溃吗?
在 Windows 中,停止 postgres 服务会导致节点崩溃并显示“错误:由于管理员命令而终止连接”
服务器数据恢复哪些故障会导致服务器数据丢失?多块硬盘离线导致服务器崩溃的数据恢复案例