当我试图重新启动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