Tuning Postfix Queue Settings

Admin Article

Article Information

This article applies to the following ZCS versions.

ZCS 4.5 Article ZCS 4.5

Some system administrators will want to control the queue lifetime or even how frequently a message in the deferred queue is selected for redelivery. This article contains information for tuning Postfix queue settings to configure both Postfix queue lifetime and Postfix deferred queue parameters.

Note: Before changing the content of your Postfix configuration file, make a backup of the original /opt/zimbra/postfix/conf/main.cf file in case you need to restore your configuration. Be sure to also keep a backup of your changed Postfix configuration file, in order to restore your configuration after upgrading or reinstalling.

Reconfiguring the Postfix Queue Lifetime

The default queue lifetime is 5 days. After 5 days, messages in the deferred queue are returned to the sender with an “undelivered” notice. To change the queue lifetime, use the following steps.

To reconfigure the queue lifetime

1. Log in as root in the command line utility. Switch to the zimbra user account.

su - zimbra

2. Type the following command, replacing [time] with the new queue lifetime. Time can be in seconds (s), minutes (m), hours (h), days (d), and weeks (w).

postconf -e maximal_queue_lifetime=[time]

Note: Since most Postfix daemons are short-lived, your new settings are actually recognized automatically as those daemons expire and new ones are launched. However, longer running daemons such as pickup, qmgr, and possibly trivial-rewrite will not detect changes to main.cf, so changes to parameters used by these daemons require that you reload Postfix. Changes to master.cf always require a reload. Note that with changes to the inet_interfaces parameter, a reload is not sufficient. You must stop and then start Postfix in this case.

For example, to reconfigure the queue lifetime to 15 minutes, you would type:

postconf –e maximal_queue_lifetime=15m

The queue lifetime is now reconfigured.

3. To ensure that your changes are not overwritten by a future Zimbra upgrade, you can set them in the local config.

zmlocalconfig -e postfix_maximal_queue_lifetime=[time]

Reconfiguring Postfix Deferred Queue Parameters

Some administrators prefer to more tightly control the way mail in the deferred queue is handled. Three parameters determine how the mail in the deferred queue is handled by the queue manager: queue_run_delay, minimal_backoff_time, and maximal_backoff_time.

  • queue_run_delay determines the time between deferred queue scans by the queue manager. The default is 1,000 seconds (1000s). This time should be less than or equal to the minimal_backoff_time setting.
  • minimal_backoff_time determines the minimal time between attempts to deliver a deferred message. When a message is first placed in the deferred queue, the value of this setting is what determines when the first attempt to redeliver the message is made. The default is 1,000 seconds (1000s). This time should be equal to or greater than the queue_run_delay setting.
  • maximal_backoff_time determines the maximal time between attempts to deliver a message. The time between each attempt to deliver a deferred message will grow exponentially until it reaches the value in this setting. The attempted deliveries are repeated at this value until the queue lifetime is reached. The default is 4,000 seconds (4000s).

To reconfigure one or more of these settings, use the following steps.

To reconfigure a deferred queue parameter

1. Log in as root in the command line utility. Switch to the zimbra user account.

su - zimbra

2. Type the following command, replacing [parameter] with the parameter you want to reconfigure and replacing [time] with the new time. Time can be in seconds (s), minutes (m), hours (h), days (d), and weeks (w).

postconf -e [parameter]=[time]

To reconfigure multiple parameters, use this command for each parameter you want to reconfigure.

For example, to change the queue_run_delay parameter to 2,000 seconds and the minimal_backoff_time parameter to 2,000 seconds:

postconf –e queue_run_delay=2000s
postconf –e minimal_backoff_time=2000s

The deferred queue parameters are now reconfigured. The changes will take effect immediately.

3. To ensure that your changes are not overwritten by a future Zimbra upgrade, you can set them in the local config.

zmlocalconfig -e postfix_queue_run_delay=<new value>
zmlocalconfig -e postfix_minimal_backoff_time=<new value>

Any Postfix settings you change can be preserved across upgrades by creating a local config entry named postfix_<postfix key> and setting its value. This will not immediately update the value in Postfix, but will ensure that it is rewritten at the time of the next upgrade.

Related Topics

Mail Queue Monitoring

Server Monitoring

Zimbra MTA

http://www.postfix.org/rate.html


Verified Against: Zimbra Collaboration Suite 4.5.6 Date Created: 8/8/2007
Article ID: https://wiki.zimbra.com/index.php?title=Tuning_Postfix_Queue_Settings Date Modified: 2010-11-04



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search