我正在尝试限制内存使用,firefox
以防止因有问题的网站而导致整个系统停滞。
我尝试过,在bash
:
(ulimit -d 1000; firefox) &
这应该会将内存使用量限制为 1000kB。然后我打开 YouTube,发现top
它firefox
使用了 2.6% 的内存,即大约 200MB,并且没有崩溃。显然,限制被忽略了。为什么会这样,我该如何正确执行它?
答案1
改用 ulimit -v。
解释:
当前的 libc 实现仅为小型 malloc 调整数据段大小,大型 malloc 使用匿名 mmap()ing,因此真正限制程序的唯一方法是限制虚拟内存(-v 开关)。
希望这可以帮助。
附言:我知道这个问题很老了,但用谷歌找不到解决方案,所以决定无论如何都要回答。