
我們提供包含以下詳細資訊的郵件服務:
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重新設計整個系統!