如何限制Linux中的资源

如何限制Linux中的资源

几个小时前我在 Stack Overflow 上发布了一个有关此问题的问题:

Linux bash 内联命令执行程序并限制资源

据我所知,要限制资源我可以使用 ulimit 命令。

但是,问题是当我将 CPU 时间限制设置为 1 秒,然后我想要执行另一个 CPU 限制为 2 秒的程序时,ulimit 命令会返回如下错误:

bash: ulimit: CPU time: cannot modify limit: Operation not permitted

我的程序绝对在1秒内终止了。

那么,如何才能使第二个程序运行时 CPU 时间限制为 2 秒?

答案1

经过几次仔细阅读 ulimit 后,我​​终于找到了答案...我发现了我的错误...我对软限制和硬限制有错误的认识,我需要做的是使用软限制作为命令..我用和ulimit -St 1; ./a ouput.out 第二个完成了它ulimit -St 2; ./a ouput.out

我很抱歉我的错了...希望这篇文章能够对所有需要它的人有所帮助...非常感谢...

答案2

通常,为进程赋予优先级比限制其资源更好。如果机器空闲,为什么不让进程全速运行呢?

您可以使用nice它来运行优先级较低或较高的命令。如果您希望以较高优先级运行,则只需要超级用户访问权限。

$ nice [-n increment] ./a <input.in> output.out

您还可以使用它renice来更改正在运行的进程的优先级。

nice和都renice可以接收一个可选参数 -n,参数为整数(-20 <= n <= 20)。正整数使得进程更美好并使用更少的资源,而负整数将使其更少好的. 如果没有给出参数则10假定。

相关内容