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)會關閉….
感謝您的任何建議。
現在
大約5年後
該問題已在幾天內被發現並解決。
對於像我這樣的 Jr. 系統管理員來說,這太複雜了;)
我的隊友在 iSCSI LUN 上準備的 GFS2 集群文件系統存在問題,這個問題導致了 Dovecot 和 roundcube(然後是 apache)中的各種問題和問題
供您參考,當我注意 top 命令上的 %wa 參數時(大約為 90%),我認為(也許)文件系統級別存在問題。
然後我決定將所有數據傳輸到新的集群文件系統(ocfs2),因為 GFS 已被棄用!
首先,所有數據都移動到新的集群文件系統(在 ocf2 上),然後基於 debian wheezy 上的 pacemake haproxy 重新設計整個系統!
答案是:
我已經編輯 apache max_client 選項以降低值 256 –> 50 為什麼!?
對於(仍然)未知問題,所有預分叉的 apache 程序佔用大約 100% 的 CPU 使用率(執行預分叉 apache 程序的核心的 100% 使用率片刻)
所以系統宕機了,因為系統有64個CPU核心,當apache的256個程序全部使用100%的cpu使用率時,系統和服務都宕機了
問題仍然存在,但服務沒有問題 我認為與網路攻擊有關的問題(我們的監控工具每天報告許多攻擊),有時會導致資源鎖定或其他問題
謝謝你的所有建議。