« 有关Postfix 的虚拟用户支持的大讨论 | Main | 对Postfix进行性能调整的高级策略 »

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
本文网址:http://www.hzqbbc.com/blog/arch/2002/11/aeceeaecceeldap.html
 

November 11, 2002

为实现大容量邮件系统所设计LDAP ldif 的构思

在如何构Postfix(MTA)+Maildrop(MDA)+SqWebMail(web-MUA)+IMAP/POP3+OpenLDAP 组成的邮件系统时,自己考虑了不少问题,现在并没完成。

良好的postfix配置及优化好的ldap结构设计能大幅提高性能。例如:
◎适当的进行压力测试(例如postal)可以估算出系统能承受的负载量,通过结果来适当调整smtp(output)/smtpd(input)的最大进程数来达到一个综合的最优化结果。

同时注意系统的调节,Linux的注意打开文件数/用户进程上限及内存、资源分配,FreeBSD则注意对内核进行微调,如kern.maxprocperfiles等(详细看freebsd的tunning)

◎注意对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%的查询量,意义非比寻常。

◎尽量在SMTP会话过程中就reject掉垃圾信,可以减少很多无用工作。因此各种check及限制的手段就显必不可少了。

◎尽量向本地的ldap查询,并且严格注意查询的timeout设置,并安排多个ldap的server做冗余(提高可靠性)并使用快速的网络连接。最好能设计成并发的query就比较好了。

◎注意使用高速的DB(例如最新的berkeley db)而不是用陈旧的缓慢的db。并且配置适当的slave ldap服务器提高分布能力。

◎对virtual_mailbox_maps及access_maps等分别指定不同的ldap服务器,可人为的进行分布查询,将负载分担。由于基本上每个mail都要同时查询这些maps,所以负载是相当均衡的。

◎对pipe改造。利用ldap查询时得到的用户目录(前提是本地的虚拟用户)直接传递给MDA (maildrop)进行直接投递,免除了maildrop再次查询ldap所带来的重复问题。

part2
补充一点点:
◎使用Berkerly DB代替GDBM,作为ldap的backend,db3/db4等的速度大大的快于gdbm,甚至gdbm使用了优化的index也没办法达到dbx的一般速度。

◎关闭log功能,即"loglevel 0",这样可以大幅度提高ldap查询速度,难以置信的快!

详细见:
Close loglevel to improve performance

◎mydestination部分,如果要自动辨别新加的domain,那么使用$virtual_maps进去,但这可能会导致postfix多次查询ldap(具体待验证)如果是,那么最好取消掉,换之以确定的数据(如显式的填写好domain,或者以hash的形式作为virtual_maps比较好,好处同上)

part3
有人做了个mydestination用ldap的简单测试结果以及一些讨论,可以看看:

Mydest via ldap

part4 (updated!)
一些有关于Email及LDAP的RFC/Draft,值得一看,也是我的参考文章。

LDAP Schema for Internet Mail

MIME Directory Profile for LDAP Schema

有关Postfix VDA讨论,其中不少关于LDAP schema的内容

LDAP Schema for Intranet Mail Routing

LDAP-based Routing of SMTP Messages

LDAP: User Schema

LDAP-based Routing of SMTP Messages

Using LDAP for SMTP Mailing Lists & Aliases

LDAPv3: A Collection of User Schema (最新的user schema设计)

Schema Functions for the LDAP C API (不错的c API参考)

Posted by hzqbbc at November 11, 2002 07:39 PM

Comments

推荐一个linux下面的邮件服务器软件,http://www.eyesom.com/products/corp_mail.htm

Posted by: 邮件服务器 at June 8, 2005 04:06 PM

Post a comment




Remember Me?

(you may use HTML tags for style)