Introduction

Postfix is a widely used mail transfer agent (MTA) that handles email delivery and routing on Linux servers. On busy mail servers, improper configuration can lead to increased system load, excessive disk I/O, and queue processing delays. This guide outlines several tuning recommendations that can help improve Postfix performance and reduce server load.


Prerequisites

  • Root or SSH access to the server
  • Basic knowledge of Postfix configuration
  • Access to syslog and Postfix configuration files

Implementation

Optimize Syslog Performance

One of the best ways to reduce server load is to write mail logs to a separate syslog server.

Add the following entry to your syslog configuration:

mail.* @xxx.xxx.xxx.xxx

If a separate syslog server is not available, you can reduce disk synchronization overhead by prefixing the log file path with a dash (-):

mail.* -/var/log/maillog

By default, syslogd synchronizes the log file after every write operation. Disabling this behavior can significantly reduce system load on busy mail servers.


Tune Postfix Queue Settings

Edit the Postfix configuration file:

/etc/postfix/main.cf

Add or modify the following parameters:

minimal_backoff_time = 2000s

maximal_backoff_time = 8000s

maximal_queue_lifetime = 2d

message_size_limit = 10240000

qmgr_message_active_limit = 20000

qmgr_message_recipient_limit = 20000

transport_retry_time = 120s


Parameter Overview

minimal_backoff_time

Specifies the minimum delay before Postfix retries delivery of a deferred message.


maximal_backoff_time

Specifies the maximum delay between delivery retry attempts.


maximal_queue_lifetime

Defines how long a message remains in the queue before it is returned as undeliverable.


message_size_limit

Sets the maximum message size allowed by Postfix.


qmgr_message_active_limit

Controls the number of messages that can be active in the queue manager simultaneously.


qmgr_message_recipient_limit

Controls the maximum number of recipients that the queue manager can process.


transport_retry_time

Defines how often Postfix retries a failed transport.


Queue Management Considerations

These settings help reduce the workload caused by repeated delivery attempts, especially when processing bounced or undeliverable messages.

The qmgr_message_active_limit and qmgr_message_recipient_limit values have been increased to allow the queue manager to process more messages in memory, which may help reduce disk activity and improve overall performance on busy servers.


Conclusion

Proper Postfix tuning can significantly reduce server load and improve mail delivery performance. Optimizing syslog handling and adjusting queue management parameters helps minimize disk I/O, improve resource utilization, and ensure smoother email processing on high-volume mail servers.

Leave a Reply