如何对Postfix进行资源控制


Postfix 

图-Postfix

相信大家都用过Postfix,知道他是sendmail的延伸,那你们知道Postfix是如何进行使用资源控制的吗,请跟我看下文。

通过特定的postfix配置参数,我们可以实现postfix运行时对所消耗的资源的灵活控制。可以通过以下几个方面来控制postfix消耗的资源:

1. 限制内存中的对象的大小

要控制对内存资源的消耗,必须控制内存中对象的大小。可以用以下的参数来进行对象大小的控制:

line_length_limit:控制读入数据时每一行的大小,如果太长则强行将其分割成更短的行,太长的行在投递时再重组。缺省值为2048 bytes。

header_size_limit:限制信头长度。缺省值为102400bytes。

message_size_limit:限制postfix队列文件的大小。缺省值为10240000 bytes。

queue_minfree:邮件队列中可用的空间大小。缺省为无限制。建议该值最好时message_size_limit的数倍以便于处理大邮件。

bounce_size_limit:限制某一邮件不可投递时,返回给发件人不可投递报告的大小,缺省值为50000 bytes。

2. 限制内存中对象的数目

qmgr_message_recipient_limit:设置内存中收件人地址的最大数目。缺省值为10000。

qmgr_message_active_limit:设置active邮件队列中邮件数目的最大值。缺省值为1000。

duplicate_filter_limit:设置需要local和cleanup后台程序记住的收件人地址的最大数目。缺省值为1000。

3.限制等待一个外部命令完成的时间

command_time_limit:设置local程序等待一个外部命令完成的时间。缺省值为1000秒。

4. 限制文件锁定的操作时间

deliver_lock_attempts:设置锁定一个文件的最大尝试次数。缺省值为5次。

deliver_lock_delay:设置如果锁定一个文件失败后再次尝试的等待时间,缺省值为1秒。

5. 控制错误恢复

在某些情况下(如高负载),postfix的某个进程可能会死掉,这时master进程会试图重新启动该进程,我们可以通过下面的参数来控制这种行为:

fork_attempts:试图重启动一个进程的最大尝试次数。缺省值为5次。

fork_delay:每两次尝试之间的等待时间,缺省值为1秒。

transport_retry_time:队列管理进程每两次尝试连接一个不正常的投递代理进程之间的等待时间。缺省为60秒。

阅读完文章,读者会发现Postfix可以对五方面进行使用资源控制,希望大家能有所收获!

相关内容