我和mod_python和Apache有个问题,我很确定我知道问题出在哪里,但我想要一点安慰。我目前的情况是,我使用的是一个很小的VM,内存只有256米。现在,MySQL和Apache运行得相当好,而且一切都很好,直到我开始使用交换,这显然是我希望尽可能避免的。用那个小小的RAM,这几乎是不可能的。我选择每天重新启动MySQL和Apache几次,但是,在大约4-5天之后,我在设备上收到一个没有磁盘空间的文件:
[Mon May 11 06:00:14 2009] [notice] caught SIGTERM, shutting down
[Mon May 11 06:00:20 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon May 11 06:00:20 2009] [notice] Digest: generating secret for digest authentication ...
[Mon May 11 06:00:20 2009] [notice] Digest: done
[Mon May 11 06:00:21 2009] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
[Mon May 11 06:00:21 2009] [error] (28)No space left on device: mod_python: Failed to create global mutex 1 of 4 (/tmp/mpmtx265021).我最初的想法是缺乏信号量,但情况似乎并非如此。至少我过去用来回避的那些技巧到目前为止还没有起作用。我见过使用mod_python的人也遇到过类似的问题,但在实际修复方面并没有发现太多问题。是我的重新开始导致了这种情况,还是这只是mod_python的问题?谢谢!
发布于 2009-05-13 02:32:14
在我的笔记本电脑上反复重新启动Apache时,我也遇到了类似的问题(对我来说,这需要大约40次重新启动);我找到的唯一解决方案是完全重启计算机。当然,我的笔记本电脑有2GB的RAM和比您的服务器更多的磁盘空间,所以您可能会更快地遇到这个问题…基本上,我避免在不完全重启服务器的情况下重新启动Apache太多次。
发布于 2013-04-30 18:12:53
ipcrm -s $F[1]‘的泄漏信号量发布于 2009-05-13 11:54:45
在谷歌上搜索,我有找到了这个解决方案:
您实际上需要增加系统上的SysV信号量。我使用(in /etc/sysctl.conf):
kernel.sem = 512 32000 100 512(通过运行sysctl -p来设置文件中的选项)。
顺便说一下。自从WSGI引入以来,mod_python有点过时了。大多数现代应用程序都可以使用mod_wsgi运行。
https://serverfault.com/questions/7619
复制相似问题