溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Postfix壓力自動(dòng)適應(yīng)配置的示例分析

發(fā)布時(shí)間:2021-09-15 17:27:15 來(lái)源:億速云 閱讀:146 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)Postfix壓力自動(dòng)適應(yīng)配置的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

postfix負(fù)載過(guò)高的標(biāo)識(shí)(Symptoms of Postfix SMTP server overload)

  • 客戶(hù)端連接過(guò)來(lái)后需要等待一段時(shí)間才能得到服務(wù)器回應(yīng)的歡迎信息:“220 hostname.example.com ESMTP Postfix”

  • 服務(wù)器的日志里出現(xiàn)越來(lái)越多的類(lèi)似日志:"lost connection after CONNECT", 一般這種情況是由于客戶(hù)端因等待太久而斷開(kāi)了連接。

  • Postfix 2.3及以后的版本會(huì)在服務(wù)端口繁忙時(shí)輸出一條警告日志,類(lèi)似如下:

  • 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


     

自動(dòng)適應(yīng)壓力行為(Automatic stress-adaptive behavior)

當(dāng)smtp服務(wù)器在面向"public"網(wǎng)絡(luò)的所有端口都變繁忙時(shí),postfix將記錄一條warn日志,并使用參數(shù)"-o stress=yes" 重啟服務(wù)。如果服務(wù)只有本地的連接則不會(huì)啟用自動(dòng)適應(yīng)壓力的行為。在main.cf中,stress參數(shù)專(zhuān)門(mén)用來(lái)配置自動(dòng)適應(yīng)壓力的行為:

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后面第一個(gè)參數(shù)表示高負(fù)載時(shí)采用的參數(shù)值,第二個(gè)參數(shù)表示低負(fù)載時(shí)使用的參數(shù)。

同時(shí)為更多smtp客戶(hù)端提供服務(wù)(Service more SMTP clients at the same time)

為了服務(wù)更多的客戶(hù)端,可以提高smtp服務(wù)端進(jìn)程的數(shù)量:通過(guò)修改main.cf的default_process_limit 或master.cf的maxproc參數(shù):

 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

進(jìn)程越多則消耗的內(nèi)存越多,可以通過(guò)使用cdb查詢(xún)表來(lái)代替hash,btree表來(lái)減小內(nèi)存的使用。

提高對(duì)每個(gè)smtp客戶(hù)端的處理速度(Spend less time per SMTP client)

如果提高服務(wù)端進(jìn)程的數(shù)量不可行,可以想辦法減少對(duì)每個(gè)smtp客戶(hù)端的響應(yīng)延遲:

  • 消除對(duì)不可用的RBL服務(wù)的查詢(xún)

  • 消除對(duì)重復(fù)的RBL服務(wù)的查詢(xún)(比如一個(gè)rbl包含了另一個(gè)rbl的情況,只需要查詢(xún)包含的那個(gè)rbl即可)

  • 消除header_checks和body_checks,只保留少數(shù)針對(duì)最新蠕蟲(chóng)的模式檢查即可。

  • 對(duì)header_checks和body_checks分組以減少不必要的模式匹配檢查。

主動(dòng)斷開(kāi)可疑客戶(hù)端的連接(Disconnect suspicious SMTP clients)

在高負(fù)載時(shí),主動(dòng)斷開(kāi)可疑連接可以讓其他客戶(hù)端有連接進(jìn)來(lái)的機(jī)會(huì):

  • 使用"521"響應(yīng)碼,可以讓postfix主動(dòng)拒絕郵件的發(fā)送并馬上斷開(kāi)與客戶(hù)端的連接,不需要等客戶(hù)端發(fā)送quit指令。

怎么識(shí)別當(dāng)前是否已經(jīng)啟用壓力自動(dòng)適應(yīng)行為(Detecting support for stress-adaptive behavior)

使用"ps -ef"命令查看smtpd進(jìn)程,如果進(jìn)程啟用了該模式,則會(huì)帶有"-o stress=" 或 "-o stress=yes"選項(xiàng)。

強(qiáng)制開(kāi)啟或關(guān)閉壓力自動(dòng)適應(yīng)行為(Forcing stress-adaptive behavior on or off)

在master.cf中配置"-o stress=yes"命令行選項(xiàng)可以強(qiáng)制開(kāi)啟該行為:

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="則表示永久關(guān)閉自動(dòng)適應(yīng)行為

關(guān)于“Postfix壓力自動(dòng)適應(yīng)配置的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI