如何防止进程挂起计算机?

如何防止进程挂起计算机?

进程可能会导致计算机“冻结”,例如在耗尽 CPU 或交换空间时。有没有办法防止这种情况发生?例如,通过设置可以授予进程的最大 %CPU 或 IO MB/s?

答案1

对于从 shell 运行的命令,请阅读 上的 shell 文档ulimit

C 中有一个ulimit()函数可以做同样的事情。

您还可以通过特定于实现的方法应用各种限制。在 FreeBSD 中,您可以在 中设置每个用户的限制login.conf,或者使用名为 的命令rctl。一些 Linux 发行版使用limits.conf.

有一个名为的程序cpulimit可以暂停进程,以确保随着时间的推移,它使用的 CPU 量少于一定数量。

当然,如果您只是想调整优先级,那么总有nice和。renice

答案2

部分地。查看ulimit哪个通常是 shell 辅助命令。 (在 bash 中,help ulimit)。您可以限制其内存、总 CPU 周期和时间(但不是百分比)以及其写入的文件大小。

您也可以使用该nice命令。但实际上,如果没有其他需要资源的事情,nice 不会产生效果。它只有在多个进程争夺CPU资源时才会生效。

在 Linux 上,您可以做的一件事是告诉 OOM Killer,当内存不足时,应该首先终止该进程。

相关内容