限制Linux中程序的内存使用量

时间:2013-07-04 00:15:01

标签: linux memory limit ulimit setrlimit

我是Linux和终端的新手(或者它使用的任何类型的命令提示符),我想控制进程可以使用的RAM量。我已经花了好几个小时找到一个简单易用的指南。我有一些限制它的要求:

  1. 程序的多个实例将运行,但我只想限制一些实例。
  2. 一旦超出限制,我不希望进程崩溃。我希望它使用硬盘页面交换。
  3. 程序将在WINE下运行,并且是.exe。
  4. 那么有人可以请求帮助限制Linux中进程的RAM使用率吗?

1 个答案:

答案 0 :(得分:2)

您使用Wine的事实在这个特定的上下文中没有任何区别,这留下了要求1和2.要求2 -

  

一旦超出限制,我不希望进程崩溃。我希望它使用硬盘页面交换。

- 被称为限制进程的驻留集大小 rss ,并且在Linux上实际上是非常重要的,如{{3}所示。 }。您需要设置a question asked in 2010。幸运的是,Linux control groups (cgroups)简要介绍了如何做到这一点。注意

  • 而不是jlebar,您应该使用自己的Unix用户名和
  • 而不是your/program,您应该使用wine /path/to/Windows/program.exe

使用cgroups也可以满足您的其他要求 - 您可以根据需要启动任意数量的程序实例,但只有那些以cgexec -g memory:limited开头的实例才会受到限制。