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 時,幾乎服務(網路、郵件、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重新設計整個系統!

相關內容