我有一台不是虚拟机的服务器,它有足够的 RAM(32GB)并且使用少于 6,但是在运行某些程序时我不断收到此错误。
root@DAL1-727]# free -m
bash: fork: Cannot allocate memory
如果我随后终止一些无害的东西(比如我在屏幕上打开的额外 bash 会话),我可以让它允许我做一些事情:
[root@DAL1-727]# free -m
total used free shared buffers cached
Mem: 32067 5015 27052 0 55 1293
-/+ buffers/cache: 3666 28401
Swap: 16095 0 16095
我打开了很多文件,可能是 apache 导致的。我尝试将文件限制设置得更高,但这种情况仍然发生。
ulimit -n 1048576
/etc/security/limits.conf 的输出
soft nproc 65535
hard nproc 65535
soft nofile 65535
hard nofile 65535
apache hard nofile 64000
这还能是什么?