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
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:
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
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.