我是 Linux 和终端(或它使用的任何类型的命令提示符)的新手,我想控制进程可以使用的 RAM 量。我已经花了几个小时才找到一本易于使用的指南。我有一些限制它的要求:
- 程序的多个实例将运行,但我只想限制某些实例。
- 我不希望进程在超出限制后崩溃。我希望它使用 HDD 页面交换。
- 该程序将在 WINE 下运行,并且是一个 .exe。
有人可以帮忙使用命令来限制 Linux 中进程的 RAM 使用吗?
最佳答案
事实上,您使用 Wine 在此特定环境中没有任何区别,因此只剩下要求 1 和 2。要求 2 –
I do not want the process to crash once it exceeds the limit. I want it to use HDD page swap.
– 被称为限制进程的驻留集大小或rss,实际上在Linux上执行此操作相当重要,如a question asked in 2010所示。您需要设置Linux control groups (cgroups) 。幸运的是,Justin L.’s answer简要介绍了如何执行此操作。请注意
- 您应该使用自己的 Unix 用户名,而不是
jlebar
,并且 - 您应该使用
wine/path/to/Windows/program.exe
,而不是your/program
。
使用 cgroup 还可以满足您的其他要求 - 您可以根据需要启动任意数量的程序实例,但只有那些使用 cgexec -g memory:limited
启动的实例才会受到限制。
关于linux - 限制Linux中程序的内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460083/