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