为什么“(ulimit -d 1000; firefox)&”不起作用?

为什么“(ulimit -d 1000; firefox)&”不起作用?

我正在尝试限制内存使用,firefox以防止因有问题的网站而导致整个系统停滞。

我尝试过,在bash

(ulimit -d 1000; firefox) &

这应该会将内存使用量限制为 1000kB。然后我打开 YouTube,发现topfirefox使用了 2.6% 的内存,即大约 200MB,并且没有崩溃。显然,限制被忽略了。为什么会这样,我该如何正确执行它?

答案1

改用 ulimit -v。

解释:

当前的 libc 实现仅为小型 malloc 调整数据段大小,大型 malloc 使用匿名 mmap()ing,因此真正限制程序的唯一方法是限制虚拟内存(-v 开关)。

希望这可以帮助。

附言:我知道这个问题很老了,但用谷歌找不到解决方案,所以决定无论如何都要回答。

相关内容