在Linux中,如何限制资源

分享于 

2分钟阅读

电脑

  繁體 雙語

问题:

我在几个小时前发布了关于堆栈溢出的问题:

执行一个程序,并限制资源的资源。

我知道,为了限制资源,可以使用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 更改正在运行的进程的优先级。

nicerenice 都可以接收带有整数的可选参数 -n (-20 <= n <= 20) 正整数使进程更好,使用较少,而负整数则会使它变得更少,而负整数则会使程序变得更加简单。 如果未指定参数,则假定为 10



resource  Limit  
相关文章