為Postfix 設(shè)計(jì)LDAP ldif結(jié)構(gòu)
在如何構(gòu)筑Postfix(MTA)+Maildrop(MDA)+SqWebMail(web-MUA)+IMAP/POP3(MUA)+OpenLDAP
組成的郵件系統(tǒng)時(shí),想了不少東西?,F(xiàn)在并沒完成。
良好的postfix 配置及優(yōu)化+好的ldap結(jié)構(gòu)設(shè)計(jì)能大幅提高性能。例如:
?。?)適當(dāng)?shù)倪M(jìn)行壓力測試(例如postal)可以估算出系統(tǒng)能承受的負(fù)載量,通過結(jié)果來適當(dāng)
調(diào)整smtp(output)/smtpd(input)的最大進(jìn)程數(shù)來達(dá)到一個(gè)綜合的最優(yōu)化結(jié)果。同時(shí)注意系統(tǒng)的調(diào)節(jié),Linux的注意打開文件數(shù)/用戶進(jìn)程上限及內(nèi)存、資源分配,F(xiàn)reeBSD則注意對內(nèi)核進(jìn)行微調(diào),如kern.maxprocperfiles等(詳細(xì)看freebsd的tunning)
?。?)注意對Postfix里的一些小參數(shù)仔細(xì)設(shè)置,如一些timeout值,進(jìn)程上限,lock_delay,
queue的lifetime,refresh time,ipc等的timeout 和idle timeout值,這些可仔細(xì)看man
?。?)如果virtual_domains不多或者更新較少的話,強(qiáng)烈建議使用hash來保存,而不是ldap。
因?yàn)橹辽倜恳环庑?,postfix都至少要查詢3-5次ldap,如果對virtual_maps的查詢改成
了hash后,就減少了20%-25%的查詢量,意義重大!!
(4)盡量在SMTP會(huì)話過程中就reject掉垃圾信,可以減少很多無用工作。因此各種check及
限制的手段就顯必不可少了。
?。?)盡量向本地的ldap查詢,并且嚴(yán)格注意查詢的timeout設(shè)置,并安排多個(gè)ldap的server做
冗余(提高可靠性)并使用快速的網(wǎng)絡(luò)連接。最好能設(shè)計(jì)成并發(fā)的query就爽了!
?。?)注意使用高速的DB(例如最新的berkely db)而不是用老的緩慢的,不可增量插入記錄的
db。并且配置適當(dāng)?shù)膕lave ldap服務(wù)器提高分布能力。
?。?)對virtual_mailbox_maps及access_maps等分別指定不同的ldap服務(wù)器,可人為的進(jìn)行分布
查詢,將負(fù)載分擔(dān)。由于基本上每個(gè)mail都要同時(shí)查詢這些maps,所以負(fù)載是相當(dāng)均衡的。
(8)對pipe改造。利用ldap查詢時(shí)得到的用戶目錄(前提是本地的虛擬用戶)直接傳遞給MDA
(maildrop)進(jìn)行直接投遞,免除了maildrop再次查詢ldap所帶來的重復(fù)問題。
【編輯推薦】