您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Postfix壓力自動適應配置的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
客戶端連接過來后需要等待一段時間才能得到服務器回應的歡迎信息:“220 hostname.example.com ESMTP Postfix”
服務器的日志里出現越來越多的類似日志:"lost connection after CONNECT", 一般這種情況是由于客戶端因等待太久而斷開了連接。
Postfix 2.3及以后的版本會在服務端口繁忙時輸出一條警告日志,類似如下:
Oct 3 20:39:27 spike postfix/master[28905]: warning: service "smtp" (25) has reached its process limit "30": new clients may experience noticeable delays Oct 3 20:39:27 spike postfix/master[28905]: warning: to avoid this condition, increase the process count in master.cf or reduce the service time per client Oct 3 20:39:27 spike postfix/master[28905]: warning: see http://www.postfix.org/STRESS_README.html for examples of stress-adapting configuration settings
當smtp服務器在面向"public"網絡的所有端口都變繁忙時,postfix將記錄一條warn日志,并使用參數"-o stress=yes" 重啟服務。如果服務只有本地的連接則不會啟用自動適應壓力的行為。在main.cf中,stress參數專門用來配置自動適應壓力的行為:
1 smtpd_timeout = ${stress?{10}:{300}}s 2 smtpd_hard_error_limit = ${stress?{1}:{20}} 3 smtpd_junk_command_limit = ${stress?{1}:{100}} 4 # Parameters added after Postfix 2.6: 5 smtpd_per_record_deadline = ${stress?{yes}:{no}} 6 smtpd_starttls_timeout = ${stress?{10}:{300}}s 7 address_verify_poll_count = ${stress?{1}:{3}}
stress后面第一個參數表示高負載時采用的參數值,第二個參數表示低負載時使用的參數。
為了服務更多的客戶端,可以提高smtp服務端進程的數量:通過修改main.cf的default_process_limit 或master.cf的maxproc參數:
1 /etc/postfix/main.cf: 2 # Raise the global process limit, 100 since Postfix 2.0. 3 default_process_limit = 200 4 5 /etc/postfix/master.cf: 6 # ============================================================= 7 # service type private unpriv chroot wakeup maxproc command 8 # ============================================================= 9 # Raise the SMTP service process limit only. 10 smtp inet n - n - 200 smtpd
進程越多則消耗的內存越多,可以通過使用cdb查詢表來代替hash,btree表來減小內存的使用。
如果提高服務端進程的數量不可行,可以想辦法減少對每個smtp客戶端的響應延遲:
消除對不可用的RBL服務的查詢
消除對重復的RBL服務的查詢(比如一個rbl包含了另一個rbl的情況,只需要查詢包含的那個rbl即可)
消除header_checks和body_checks,只保留少數針對最新蠕蟲的模式檢查即可。
對header_checks和body_checks分組以減少不必要的模式匹配檢查。
在高負載時,主動斷開可疑連接可以讓其他客戶端有連接進來的機會:
使用"521"響應碼,可以讓postfix主動拒絕郵件的發送并馬上斷開與客戶端的連接,不需要等客戶端發送quit指令。
使用"ps -ef"命令查看smtpd進程,如果進程啟用了該模式,則會帶有"-o stress=" 或 "-o stress=yes"選項。
在master.cf中配置"-o stress=yes"命令行選項可以強制開啟該行為:
1 /etc/postfix/master.cf: 2 # ============================================================= 3 # service type private unpriv chroot wakeup maxproc command 4 # ============================================================= 5 # 6 smtp inet n - n - - smtpd 7 -o stress=yes 8 -o . . .
如果配置"-o stress="則表示永久關閉自動適應行為
關于“Postfix壓力自動適應配置的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。