Apache内存错误


Apache memory error

当我试图重新启动apache2时,我遇到了以下错误:

致命错误无法分配67108864的共享内存段bytes: mmap: Cannot allocate memory (12)

我只发现这个错误经常发生在虚拟服务器上,但我找不到一个解决方案,除了切换到php-fpm和nginx来减少内存使用。

服务器:Ubuntu 14.04 LTS, 2GB RAM, VPS

有没有人知道如何解决这个问题,因为RAM似乎不是问题(1.9GB空闲)。

Sodaa

"无法分配共享内存段".

使用ipcs -lm来确定当前的共享内存限制。并使用ipcs -ma来确定当前使用了多少共享内存。

UPDATE你已经添加了注释来显示"max seg size (kbytes) = 32768"。所以最大段大小是32MB。原始错误是"无法分配67108864字节的共享内存段"。因此无法分配64MB的段。

将最大共享内存段大小从32MB增加到128MB。

echo "134217728" >/proc/sys/kernel/shmmax
echo "134217728" >/proc/sys/kernel/shmall

然后重试。如果apache2工作正常,那么通过在/etc/sysctl.conf中添加如下条目,使更改在重新启动后仍然有效:

kernel.shmmax=134217728
kernel.shmall=134217728