2009年3月17日 星期二

解決 sendmail 負荷, 當與 mysql 搭配時的設定方式.

研究者: Baron. Wan

Sendmail:

# 每秒連線數(ex: 每秒可3個連線數, 超過時會放慢連線的速度)
O ConnectionRateThrottle=3

# 如果系統處理的郵件非常多,使得單一次佇列處理大到難以控制, 以至於系統資源到了極限,可設定該值.
O MaxQueueRunSize=500

# 單一隊列時的平均負荷,超出時,會放在佇列 (當郵件的平均負荷值超過QueueLA值時, 信件會暫不處理並放在佇列中)
O QueueLA=16 (8*CPU數)

# 平均負荷拒絕臨界點, 最近一分鐘內,在 run queue中等待執行的形成平均數過高時, 會拒絕外來smtp連線, 並產生錯誤(connection refuse)
O RefuseLA=24 (12*CPU數)

# 文件系統用來接受標準SMTP(簡單郵件傳輸協議)郵件的隊列中的最少的自由塊數目 (越小,被攻擊的機率高)
O MinFreeBlocks=4000

#針對大量 User unknown, 收到第n封信件後開始放慢
(Possible SMTP RCPT flood, throtting) ex: 第15封信件後開始放慢
BadRcptThrottle=15

# 以下這兩個數值, 當queue 存放量大時, 經由這兩個數值的調整大小, 可較為快速的處理 queue, 不至於造成 mail 的塞車.

# limit on number of concurrent queue runners
O MaxQueueChildren=100

# maximum number of queue-runners per queue-grouping with multiple queues
O MaxRunnersPerQueue=25


**********************************************************

mysql:

[mysqld]
bind-address=127.0.0.1
max_connections=32000
(默認100,最大值16384)
max_allow_package=2M

沒有留言: