为什么Firefox无法应对ulimit设置的内存限制?

时间:2016-10-12 15:31:02

标签: firefox memory ulimit

当我使用以下命令设置firefox的内存限制时:

$ ulimit -Sv 512000
$ ulimit -v
512000
$ firefox %u

我收到以下错误:

[4881] ###!!! ABORT: PR_CreateThread failed!: file /builddir/build/BUILD/firefox-49.0/firefox-49.0/js/xpconnect/src/XPCJSRuntime.cpp, line 1045
[4881] ###!!! ABORT: PR_CreateThread failed!: file /builddir/build/BUILD/firefox-49.0/firefox-49.0/js/xpconnect/src/XPCJSRuntime.cpp, line 1045
Segmentation fault (core dumped)

但是,如果Firefox已经运行,它会打开一个没有任何错误的新窗口。

为Firefox设置ulimit有什么问题?

操作系统是Fedora 24:4.7.5-200.fc24.x86_64

1 个答案:

答案 0 :(得分:1)

Firefox只是一种记忆力; 512M的虚拟地址空间不足以运行它。在我的实验中,如果没有将ulimit -v设置为至少1.5G,我就无法启动繁忙的会话。

当firefox已经运行时它适用于你,因为在这种情况下你不会启动一个新的firefox进程(它将继承ulimit),而只是告诉已经运行的进程打开一个新窗口。