【问题标题】:Apache memory error阿帕奇内存错误
【发布时间】:2015-10-15 16:33:46
【问题描述】:

我在尝试重启 apache2 时遇到以下错误:

致命错误无法分配共享内存段 67108864 字节:mmap:无法分配内存(12)

我才发现这个错误经常出现在虚拟服务器上,但是除了切换到php-fpm和nginx来减少内存使用之外我没有找到解决方案。

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

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

苏打水

【问题讨论】:

  • 仅在正常重启时发生?还是什么时候? shmmax/shmall 设置为什么?
  • 不只是优雅的开始。最大总共享内存 (kbytes) = 8388608

标签: php linux apache ubuntu apache2


【解决方案1】:

“致命错误无法分配共享内存段”。

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

更新您已添加注释以显示“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

【讨论】:

  • 限制是:最大段数 = 4096 最大段大小(千字节)= 32768 最大总共享内存(千字节)= 8388608 最小段大小(字节)= 1 ipcs -ma 不返回数字。 ..
  • ri Jun 15 14:28:00 2018 (1202):致命错误无法分配 67108864 字节的共享内存段:shmget:无法分配内存 (12),/etc/apache2# cat /proc /sys/kernel/shmmax 134217728 /etc/apache2# cat /proc/sys/kernel/shmall 134217728 没有解决问题
  • 有效!但是我必须在 /etc/sysctl.conf 中添加内存限制,就像在此处发布的 mage2.pro/t/topic/2271 一样,还需要完全重启(不仅是 apache 重启!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多