限制Linux中程序的内存使用



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

  1. 程序的多个实例将运行,但我只想限制其中的一些实例
  2. 我不希望进程在超过限制后崩溃。我希望它使用HDD页面交换
  3. 该程序将在WINE下运行,并且是一个.exe文件

那么,有人能帮助执行命令来限制Linux中进程的RAM使用量吗?

在这个特定的上下文中,使用Wine这一事实没有什么不同,只剩下需求1和2。要求2–

我不希望进程在超过限制后崩溃。我希望它使用HDD页面交换。

–被称为限制进程的常驻集大小rss,而在Linux上这样做实际上相当不寻常,正如2010年提出的一个问题所证明的那样。您需要设置Linux控制组(cgroups)。幸运的是,Justin L.的回答简要介绍了如何做到这一点

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

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

最新更新