mod_fcgid:设备上没有剩余空间

mod_fcgid:设备上没有剩余空间

我遇到一个问题,apache2 根本无法在我的 VPS 上启动,并且输出此错误:

[Mon May 09 07:00:38 2011] [emerg] (28)No space left on device: mod_fcgid: Can't create shared memory for size 13018600 bytes

我确实知道我有足够的内存(有 2 GB 可用内存加上 1 GB 可扩展内存)。

您知道它可能是什么吗?

编辑:

如果有帮助的话,VPS 在 OpenVZ 上运行,客户操作系统是 Ubuntu 10.04 64 位

答案1

@dgrimbergen 是对的。例如,检查一下:http://blog.forestsoft.de/2011/01/shared-memory-issue-with-mod_fcgid/

如果没有,您的 Apache 配置(httpd.conf 或 apache2.conf)中是否设置了 sharemempath?

SharememPath /var/run/fcgid_shm

确保该目录存在,chmod为“700”并且与运行的 Web 服务器属于同一所有者(www / www-data)。

答案2

某些东西正在耗尽所有共享内存。以 root 身份运行:

ipcs-m 命令

这将为您提供所有共享内存分配的列表。第二列 (shmid) 为您提供分配的 ID。

如果您想删除一些分配,您可以使用:

ipcrm-m

最好找出某个进程分配所有内存的原因并采取措施(或获取更多内存)。

答案3

对我来说,发生这种情况是因为/var文件系统用完了索引节点。以下是系统耗尽可用 inode 的示例:

$ df -i /var
Filesystem          Inodes  IUsed IFree IUse% Mounted on
/dev/mapper/cis-var 327680 277671 50009   85% /var

需要明确的是,当 inode 用完时,将发生与文件系统用尽可用块相同的错误,即“Errno (28) 设备上没有剩余空间”。

相关内容