我的服务器(ubuntu 8.04)LAMP运行drupal 6,当流量很高时,它会停止提供页面服务。重新启动apache2将无法正常工作,因此我必须重新启动该服务。
我在apache2 error.log
中找到了此消息[通知]抓住SIGWINCH,关闭 优雅地下来
另外我注意到当apache停止响应时,apache2的进程ID大约为12000。
更新
正如您所指出的,捕获的SIGWINCH是apache服务重新启动的通知。我和最大客户一起玩,并保持活力。我将MaxClients设置得太低,所以我得到了“服务器达到MaxClients设置,考虑提高MaxClients设置”错误,但修正了。
关于PID,我的安装已安装prefork module,因此在达到MaxRequestPerChild后,它会回收子进程。这就是PID定期上升的原因。仍然没有弄清楚为什么一段时间后apache停止响应。
同时将尝试上升MaxRequestPerChild,以便PID不会快速达到PID max。当前限制为32768(这是新debian和ubuntu安装的标准配置)。
以下是日志中的内容:
[2009年4月24日星期五01:48:56] [通知] 抓住了SIGWINCH,关闭了 摆好
[Fri Apr 24 01:50:07 2009] [通知] Apache / 2.2.8(Ubuntu) PHP / 5.2.4-2ubuntu5.3用 Suhosin-Patch配置 - 恢复 正常运作
[2009年4月24日星期五17:13:35] [错误] [客户端195.70.62.131]客户端发送 没有主机名的HTTP / 1.1请求(参见 RFC2616第14.23节): /w00tw00t.at.ISC.SANS.DFind:)
[Fri Apr 24 17:36:00 2009] [错误] [客户端212.188.33.4]客户端发送 没有主机名的HTTP / 1.1请求(参见 RFC2616第14.23节): /w00tw00t.at.ISC.SANS.DFind:)
[Sat Apr 25 20:05:07 2009] [错误] [client 84.243.222.12]中的URI无效 请求获取HTTP / 1.1 HTTP / 1.1
[Sat Apr 25 20:05:12 2009] [错误] [客户端84.243.222.12]脚本没有 发现或无法统计: / usr / lib中/的cgi-bin / TWiki的
[Sat Apr 25 20:05:12 2009] [错误] [客户端84.243.222.12]脚本没有 发现或无法统计: / usr / lib中/的cgi-bin /维基
[Sat Apr 25 20:05:12 2009] [错误] [客户端84.243.222.12]脚本没有 发现或无法统计: / usr / lib中/的cgi-bin /维基
[Sat Apr 25 21:46:46 2009] [错误] [client 211.68.23.167]中的URI无效 请求获取HTTP / 1.1 HTTP / 1.1
[Sun Apr 26 06:13:47 2009] [错误] [客户端86.39.154.89]客户端已发送 没有主机名的HTTP / 1.1请求(参见 RFC2616第14.23节): /w00tw00t.at.ISC.SANS.DFind:)
[Sun Apr 26 06:53:07 2009] [通知] 做了优雅的重启请求 重新启动
答案 0 :(得分:20)
<强> SIGWINCH 强>
事实上,@ Stefano是对的:SIGWINCH意味着SIGNAL WINDOWS CHANGE,并在终端检测到其窗口大小发生变化时自动发送以允许重绘。
SIGWINCH for apache2
但不幸的是apache2
进程很难误用这个信号(就像他们转移它的第一个意思一样),但是为了防守,他们似乎没有选择,因为缺乏信号而不得不求助于此(见bug report)。他们的一个假设是apache2
进程总是在后台。所以@mikl也是完全正确的。
那么,要检查什么?
答案 1 :(得分:16)
呃?如果我没记错的话,SIGWINCH是一个信号,当终端窗口的大小发生变化时,它会被发送到终端应用程序(这样应用程序就可以自行调整大小)。通常由ncurses应用程序使用。
这很奇怪。这些信息是否为您提供了额外的提示?
答案 2 :(得分:10)
嗯,在Ubuntu上启动和停止Apache的某些情况下使用SIGWINCH。如果我在我的Ubuntu 8.10服务器上sudo apache2ctl graceful-stop
,我会在我的日志中找到它:
[Fri Apr 24 22:41:15 2009] [notice] caught SIGWINCH, shutting down gracefully
我记得,在转动日志,夜间工作等时需要重启Apache的一些服务也使用SIGWINCH。
这并不能解释您目前遇到的问题,但我认为您的服务器上可能正在重启Apache的其他问题 - 或者它可能与您的问题无关。
如果可以的话,尝试发布更多的日志文件,分析起来要容易得多:)
答案 3 :(得分:6)
在Apache上,SIGWINCH是Graceful Stop信号。请注意,这与SIGUSR1不同,后者是Graceful Restart信号。
不幸的是,我们需要更多信息来告诉您Apache正常停止的原因。