我是 Linux 和终端(或它使用的任何类型的命令提示符)的新手,我想控制一个进程可以使用的 RAM 量。我已经找了几个小时来找到一个易于使用的指南。我有一些限制它的要求:
- 该程序的多个实例将运行,但我只想限制一些实例。
- 一旦超过限制,我不希望进程崩溃。我希望它使用硬盘页面交换。
- 该程序将在 WINE 下运行,并且是一个 .exe。
那么有人可以帮助使用命令来限制Linux中进程的RAM使用吗?
在这个特定的上下文中,您使用 Wine 的事实没有任何区别,这就留下了要求 1 和 2。要求 2 –</p>
一旦超过限制,我不希望进程崩溃。我希望它使用硬盘页面交换。
– 被称为限制进程的驻留集大小或rss,实际上在 Linux 上做这件事相当重要,正如2010 年提出的一个问题所证明的那样。您需要设置Linux 控制组 (cgroups)。幸运的是,贾斯汀 L. 的回答简要说明了如何做到这一点。注意
jlebar
,您应该使用自己的 Unix 用户名,并且your/program
,您应该使用wine /path/to/Windows/program.exe
.使用 cgroups 还可以满足您的其他要求——您可以启动任意数量的程序实例,但只有您启动的实例cgexec -g memory:limited
会受到限制。