服务器严重滞后,并记录一堆“内部虚拟连接”

服务器严重滞后,并记录一堆“内部虚拟连接”

有一个 Web 服务器(不知道它到底是谁的,这是我的遗产)。几个小时前,它开始运行得非常(极其!)慢,mysqld 经常无法处理请求。/var/log/mysqld.log
是空的(嗯,它说,mysqld 已启动,等等,但没有关于今天的任何信息)
/var/log/apache2/access_log 充满了这样的行:

::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"
::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"

伙计们,那是什么?如何解决?我读到过内部虚拟连接有时会发生,但以每秒 1000 次的频率发送内部请求是不正常的!

如何找出原因?

答案1

Apache Wiki 的内部虚拟连接文章描述了为什么发出这些请求,但如果在出现这种行为之前没有进行过任何 Apache 配置或应用程序更改,那么肯定存在问题。

如果您使用的是 Apache v2.2.6,(请详细说明apache2ctl -V错误#39653(及相关评论)可能会引起兴趣:

我怀疑这个错误导致我的 apache 产生了 150 个进程(MaxClients 允许的数量),从而反复导致服务器崩溃(每天一次)。

这个错误每秒发出一个请求,我怀疑这会导致 apache 产生多个实例,尽管我不知道为什么它会立即产生与 MaxSpareServers 一样多的实例而不是与 MaxClients 一样多的实例。

如果您有一个由数据库支持的应用程序来响应这些请求,则建议应用一个条件(在您的 Apache 配置中或应用程序本身中),当请求来自 127.0.0.1 或 ::1 环回地址时,该条件会转移请求(或跳过默认应用程序行为)。

相关内容