<html> <head> </head> <body> <pre> NQMGR(8) NQMGR(8) <b>NAME</b> nqmgr - Postfix queue manager <b>SYNOPSIS</b> <b>nqmgr</b> [generic Postfix daemon options] <b>DESCRIPTION</b> The <b>nqmgr</b> daemon awaits the arrival of incoming mail and arranges for its delivery via Postfix delivery processes. The actual mail routing strategy is delegated to the <a href="trivial-rewrite.8.html"><b>triv-</b></a> <a href="trivial-rewrite.8.html"><b>ial-rewrite</b>(8)</a> daemon. This program expects to be run from the <a href="master.8.html"><b>master</b>(8)</a> process manager. Mail addressed to the local <b>double-bounce</b> address is silently discarded. This stops potential loops caused by undeliverable bounce notifications. <b>MAIL</b> <b>QUEUES</b> The <b>nqmgr</b> daemon maintains the following queues: <b>incoming</b> Inbound mail from the network, or mail picked up by the local <b>pickup</b> agent from the <b>maildrop</b> directory. <b>active</b> Messages that the queue manager has opened for delivery. Only a limited number of messages is allowed to enter the <b>active</b> queue (leaky bucket strategy, for a fixed delivery rate). <b>deferred</b> Mail that could not be delivered upon the first attempt. The queue manager implements exponential backoff by doubling the time between delivery attempts. <b>corrupt</b> Unreadable or damaged queue files are moved here for inspection. <b>hold</b> Messages that are kept "on hold" are kept here until someone sets them free. <b>DELIVERY</b> <b>STATUS</b> <b>REPORTS</b> The <b>nqmgr</b> daemon keeps an eye on per-message delivery sta- tus reports in the following directories. Each status report file has the same name as the corresponding message file: <b>bounce</b> Per-recipient status information about why mail is bounced. These files are maintained by the <a href="bounce.8.html"><b>bounce</b>(8)</a> daemon. <b>defer</b> Per-recipient status information about why mail is delayed. These files are maintained by the <a href="defer.8.html"><b>defer</b>(8)</a> daemon. The <b>nqmgr</b> daemon is responsible for asking the <a href="bounce.8.html"><b>bounce</b>(8)</a> or <a href="defer.8.html"><b>defer</b>(8)</a> daemons to send non-delivery reports. <b>STRATEGIES</b> The queue manager implements a variety of strategies for either opening queue files (input) or for message delivery (output). <b>leaky</b> <b>bucket</b> This strategy limits the number of messages in the <b>active</b> queue and prevents the queue manager from running out of memory under heavy load. <b>fairness</b> When the <b>active</b> queue has room, the queue manager takes one message from the <b>incoming</b> queue and one from the <b>deferred</b> queue. This prevents a large mail backlog from blocking the delivery of new mail. <b>slow</b> <b>start</b> This strategy eliminates "thundering herd" problems by slowly adjusting the number of parallel deliver- ies to the same destination. <b>round</b> <b>robin</b> The queue manager sorts delivery requests by desti- nation. Round-robin selection prevents one desti- nation from dominating deliveries to other destina- tions. <b>exponential</b> <b>backoff</b> Mail that cannot be delivered upon the first attempt is deferred. The time interval between delivery attempts is doubled after each attempt. <b>destination</b> <b>status</b> <b>cache</b> The queue manager avoids unnecessary delivery attempts by maintaining a short-term, in-memory list of unreachable destinations. <b>preemptive</b> <b>message</b> <b>scheduling</b> The queue manager attempts to minimize the average per-recipient delay while still preserving the cor- rect per-message delays, using a sophisticated pre- emptive message scheduling. <b>TRIGGERS</b> On an idle system, the queue manager waits for the arrival of trigger events, or it waits for a timer to go off. A trigger is a one-byte message. Depending on the message received, the queue manager performs one of the following actions (the message is followed by the symbolic constant used internally by the software): <b>D</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>DEFERRED)</b> Start a deferred queue scan. If a deferred queue scan is already in progress, that scan will be restarted as soon as it finishes. <b>I</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>INCOMING)</b> Start an incoming queue scan. If an incoming queue scan is already in progress, that scan will be restarted as soon as it finishes. <b>A</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>ALL)</b> Ignore deferred queue file time stamps. The request affects the next deferred queue scan. <b>F</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>FLUSH</b><i>_</i><b>DEAD)</b> Purge all information about dead transports and destinations. <b>W</b> <b>(TRIGGER</b><i>_</i><b>REQ</b><i>_</i><b>WAKEUP)</b> Wakeup call, This is used by the master server to instantiate servers that should not go away for- ever. The action is to start an incoming queue scan. The <b>nqmgr</b> daemon reads an entire buffer worth of triggers. Multiple identical trigger requests are collapsed into one, and trigger requests are sorted so that <b>A</b> and <b>F</b> pre- cede <b>D</b> and <b>I</b>. Thus, in order to force a deferred queue run, one would request <b>A</b> <b>F</b> <b>D</b>; in order to notify the queue manager of the arrival of new mail one would request <b>I</b>. <b>STANDARDS</b> None. The <b>nqmgr</b> daemon does not interact with the outside world. <b>SECURITY</b> The <b>nqmgr</b> daemon is not security sensitive. It reads sin- gle-character messages from untrusted local users, and thus may be susceptible to denial of service attacks. The <b>nqmgr</b> daemon does not talk to the outside world, and it can be run at fixed low privilege in a chrooted environ- ment. <b>DIAGNOSTICS</b> Problems and transactions are logged to the syslog daemon. Corrupted message files are saved to the <b>corrupt</b> queue for further inspection. Depending on the setting of the <b>notify</b><i>_</i><b>classes</b> parameter, the postmaster is notified of bounces and of other trou- ble. <b>BUGS</b> A single queue manager process has to compete for disk access with multiple front-end processes such as <b>smtpd</b>. A sudden burst of inbound mail can negatively impact out- bound delivery rates. <b>CONFIGURATION</b> <b>PARAMETERS</b> The following <b>main.cf</b> parameters are especially relevant to this program. See the Postfix <b>main.cf</b> file for syntax details and for default values. Use the <b>postfix</b> <b>reload</b> command after a configuration change. <b>Miscellaneous</b> <b>allow</b><i>_</i><b>min</b><i>_</i><b>user</b> Do not bounce recipient addresses that begin with '-'. <b>queue</b><i>_</i><b>directory</b> Top-level directory of the Postfix queue. <b>Active</b> <b>queue</b> <b>controls</b> In the text below, <i>transport</i> is the first field in a <b>mas-</b> <b>ter.cf</b> entry. <b>qmgr</b><i>_</i><b>clog</b><i>_</i><b>warn</b><i>_</i><b>time</b> Minimal delay between warnings that a specific des- tination is clogging up the active queue. Specify 0 to disable. <b>qmgr</b><i>_</i><b>message</b><i>_</i><b>active</b><i>_</i><b>limit</b> Limit the number of messages in the active queue. <b>qmgr</b><i>_</i><b>message</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> Limit the number of in-memory recipients. This parameter also limits the size of the short- term, in-memory destination cache. <b>qmgr</b><i>_</i><b>message</b><i>_</i><b>recipient</b><i>_</i><b>minimum</b> Per message minimum of in-memory recipients. <b>default</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> Default limit on the number of in-memory recipients per transport. <i>transport_</i><b>recipient</b><i>_</i><b>limit</b> Limit on the number of in-memory recipients, for the named message <i>transport</i>. <b>default</b><i>_</i><b>extra</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> Default limit on the total number of per transport in-memory recipients that the preempting messages can have. <i>transport_</i><b>extra</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> Limit on the number of in-memory recipients which all preempting messages delivered by the transport <i>transport</i> can have. <b>Timing</b> <b>controls</b> <b>minimal</b><i>_</i><b>backoff</b><i>_</i><b>time</b> Minimal time in seconds between delivery attempts of a deferred message. This parameter also limits the time an unreachable destination is kept in the short-term, in-memory destination status cache. <b>maximal</b><i>_</i><b>backoff</b><i>_</i><b>time</b> Maximal time in seconds between delivery attempts of a deferred message. <b>maximal</b><i>_</i><b>queue</b><i>_</i><b>lifetime</b> Maximal time in days a message is queued before it is sent back as undeliverable. <b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b> Time in seconds between deferred queue scans. Queue scans do not overlap. <b>transport</b><i>_</i><b>retry</b><i>_</i><b>time</b> Time in seconds between attempts to contact a bro- ken delivery transport. <b>Concurrency</b> <b>controls</b> <b>initial</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b> Initial per-destination concurrency level for par- allel delivery to the same destination. <b>default</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> Default limit on the number of parallel deliveries to the same destination. <i>transport_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> Limit on the number of parallel deliveries to the same destination, for delivery via the named mes- sage <i>transport</i>. <b>Recipient</b> <b>controls</b> <b>default</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> Default limit on the number of recipients per mes- sage transfer. <i>transport_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> Limit on the number of recipients per message transfer, for the named message <i>transport</i>. <b>Message</b> <b>scheduling</b> <i>transport_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>cost</b> (valid range: 0,2,3...) This parameter basically controls how often a mes- sage delivered by <i>transport</i> can be preempted by another message. An internal per-message/transport counter is incremented by one for each <i>trans-</i> <i>port_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>cost</b> deliveries handled by <i>transport</i>. This counter represents the number of "available delivery slots" for use by other mes- sages. Current message can be preempted by another message when that other message can be delivered using less <i>transport</i> agents than the value of the "available delivery slots" counter. Value equal to 0 disables the message preemption for <i>transport</i>. <i>transport_</i><b>minimum</b><i>_</i><b>delivery</b><i>_</i><b>slots</b> Message preemption is not attempted at all whenever a message that can't ever accumulate at least <i>transport_</i><b>minimum</b><i>_</i><b>delivery</b><i>_</i><b>slots</b> available delivery slots is being delivered by <i>transport</i>. <i>transport_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>discount</b> (valid range: 0..100) <i>transport_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>loan</b> These parameters speed up the moment when a message preemption can happen. Instead of waiting until the full amount of delivery slots required is available, the preemption can happen when <i>trans-</i> <i>port_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>discount</b> percent of the required amount plus <i>transport_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>loan</b> still remains to be accumulated. Note that the full amount will still have to be accumulated before another preemption can take place later. <b>default</b><i>_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>cost</b> <b>default</b><i>_</i><b>minimum</b><i>_</i><b>delivery</b><i>_</i><b>slots</b> <b>default</b><i>_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>discount</b> <b>default</b><i>_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>loan</b> Default values for the transport specific parame- ters described above. <b>SEE</b> <b>ALSO</b> <a href="master.8.html">master(8)</a>, process manager syslogd(8) system logging <a href="trivial-rewrite.8.html">trivial-rewrite(8)</a>, address routing <b>LICENSE</b> The Secure Mailer license must be distributed with this software. <b>AUTHOR(S)</b> Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA Scheduler enhancements: Patrik Rak Modra 6 155 00, Prague, Czech Republic NQMGR(8) </pre> </body> </html>