Apache 内存错误

Apache memory error

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

Fatal Error Unable to allocate shared memory segment of 67108864 bytes: mmap: Cannot allocate memory (12)

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

服务器:Ubuntu 14.04 LTS,2GB 内存,VPS

有谁知道如何解决这个问题,因为 RAM 似乎不是问题所在(1.9GB 免费)。

汽水

"Fatal Error Unable to allocate shared memory segment".

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

更新 您已添加评论以显示 "max seg size (kbytes) = 32768"。所以最大段大小是 32MB。原始错误是 "Unable to allocate shared memory segment of 67108864 bytes"。所以无法分配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