RoundCube mysql 中睡眠连接过多

RoundCube mysql 中睡眠连接过多

我们有邮件服务,详情如下:

    1-Centos 6.4
    2:Postfix 2.6.6
    3:roundcube 0.8 
    4:dovecot 2.0.9.7
    5:mysql-server 5.1.71

一切正常,但在高峰使用时间,roundcube 睡眠连接数在不到 10 分钟的时间内从 1 或 2 或 3 增加到 270,并且 apache 打开的文件(以 lsof 测量)在高峰时间内从 4000 增加到 20000。

这是 apache conf:(apache 在 prefork 模式下工作)

PidFile run/httpd.pid
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
TraceEnable off
LimitRequestLine 1024
LimitRequestFields 100
LimitRequestFieldsize 1024
LimitRequestBody 10241024

这是 mysql 配置:

secure_auth=1
local_infile=0
max_connections        = 600
max_allowed_packet    = 16M
key_buffer        =256M
wait_timeout=240
interactive_timeout=180
connect_timeout=10
innodb_buffer_pool_size=2G

当 roundcube 的睡眠连接数增加到 >100 时,几乎所有服务(web、mail、mysql)都瘫痪了....

谢谢您的任何建议。

答案1

答案是:

我已经编辑 apache max_client 选项以降低值 256 --> 50,为什么!?

对于(仍然)未知的问题,所有预分叉的 apache 进程的 CPU 使用率约为 100%(运行预分叉的 apache 进程的核心在短时间内使用率为 100%)

因此系统会宕机,因为系统有 64 个 CPU 核心,当 Apache 的所有 256 个进程都使用了 100% 的 CPU 使用率时,系统和服务就会宕机

问题仍然存在,但服务没有问题我认为问题与网络攻击有关(我们的监控工具每天报告许多次攻击),有时会导致资源锁定或其他问题。

感谢您的所有建议。

答案2

现在

大约 5 年后

该问题已在几天内被发现和解决。

对于像我这样的初级系统管理员来说,这太复杂了;)

我的队友在 iSCSI LUN 上准备的 GFS2 集群文件系统出现问题,此问题导致 Dovecot 和 roundcube(然后是 apache)中出现各种问题

供您参考,当我注意到 top 命令上的 %wa 参数时(大约 90%),我认为(也许)文件系统级别存在问题。

然后我决定将所有数据传输到新的集群文件系统(ocfs2),因为 GFS 已被弃用!

首先,将所有数据移动到新的集群文件系统(在 ocf2 上),然后基于 debian wheezy 上的 pacemake haproxy 重新设计整个系统!

相关内容