如何限制每个进程的可用虚拟内存

Pte*_*mys 12 linux fedora memory limit

有时,我的 GNU/Linux 桌面上的某些进程(例如 gv 和 gnash)会耗尽物理内存并导致抖动。由于这些进程并不重要,如果它们使用太多内存,我希望它们被自动杀死。

我认为 /etc/security/limits.conf 文件和 -v 选项可以用于此目的。问题是它是限制特定用户每个进程的可用内存量,还是限制用户所有进程的总和。另外我想问一下如何在不重新启动的情况下对该文件进行有效更改。

Ale*_*ios 11

还有ulimit机制。有一个系统调用(在 Linux 中,它是一个 C 库函数)ulimit(3)和一个 Bash builtin ulimit。键入ulimit -a以查看您可以限制的所有内容。看看当前的虚拟内存限制再说ulimit -v。你可以说设置它ulimit -v INTEGER-KILOBYTES

运行会ulimit更改当前shell 的内容,并且您只能选择一个小于当前值的值。要运行具有有限虚拟内存的命令,您可以只使用 Bash 子 shell:

( ulimit -v 131072; some-app )
Run Code Online (Sandbox Code Playgroud)