Previous Section Next Section

FastSplit

Suppress MX lookups on initial submission V8.12 and later

When sendmail expands an alias (Section 12.1), as when using aliases to send to a mailing list, sendmail sorts the list of new recipients by host. Normally, that list of hosts is then sorted by MX record rather than hostname. After sorting, the new MX-sorted list is split by sendmail into multiple envelopes.

Envelope splitting (also called cloning) creates multiple envelopes when there was originally only one. Each new envelope contains fewer envelope recipients. Normally, all these envelopes are delivered in parallel for delivery efficiency.

This process is intended to create delivery efficiencies, but on high-traffic machines, it can actually create slowdowns because:

  • Converting hostnames to MX records requires a DNS lookup for each hostname.

  • Large lists can lead to far too many parallel deliveries.

Although the FastSplit option can be used to both eliminate MX lookups and limit the number of parallel deliveries, these two functions cannot be decoupled. The FastSplit option is used like this:

O FastSplit=num                 configuration file (V8.12 and later) 
-OFastSplit=num                 command line (V8.12 and later) 
define(`confFAST_SPLIT',`num')  mc configuration (V8.12 and later) 

Here, num is of type numeric. If it is negative, nonnumeric, or zero, the normal behavior of sendmail is allowed (hosts are sorted by MX record, and there is no limit on parallel delivery). The default is one.

If num is greater than zero, it prevents sendmail from looking up MX records prior to the sort and split. At sites with possibly sluggish DNS lookups, suppressing the MX lookup can significantly speed up envelope splitting.

Also, if num is greater than zero, that value specifies the limit that will be imposed on the number of parallel deliveries. If there are more envelopes (after splitting) than this value, sendmail will deliver in parallel only that number, and will queue the remainder for delivery during a later queue run.

As mentioned earlier, there is no way to decouple these two functions of the FastSplit option. By making num sufficiently large you can suppress MX lookups, yet still allow relatively large parallel sends. But you cannot limit the number of parallel sends without also suppressing the MX lookups.

The one exception to all this is that parallel sends are limited only when the message is submitted via the command line (as by mailx(1) and the like). Mail that is submitted via SMTP (as with mh(1), the MSP to the MTA, and the like) does not honor the limit on parallel sends.

The FastSplit option is not safe. If specified from the command line, it can cause sendmail to relinquish its special privileges.

    Previous Section Next Section