Midphase Hosting

Karl Vogel vogelke at pobox.com
Fri Jun 11 19:33:00 UTC 2010

>> On Fri, 11 Jun 2010 09:04:21 +0200, 
>> Jonathan McKeown <j.mckeown at ru.ac.za> said:

J> I looked up VERP last night to check that I was right about the extra
J> load, and came across a reference to VERP being the idea of DJB, and
J> being acceptable to qmail users because there's no penalty load - qmail
J> never batches up messages for the same domain, always sending each one
J> individually.  Is that true?  It seems an odd design decision to me.

   That decision has been the subject of countless arguments.  Here's the
   rationale, according to "The Qmail Handbook".  You have these basic
   choices when sending a message to three users on the same host:

   1.  Open an SMTP connection to the server, send a copy to user1, another
       copy to user2, the last to user3, close the connection.

   2.  Start three processes.  Each one opens an SMTP connection, sends a
       copy to one user, and closes.

   3.  Open an SMTP connection to the server, send one copy addressed to
       all three recipients, close the connection.

   (1) is the worst; if the message is small, it takes at least as much
   time as (3).  If the message is huge, it takes a lot longer and wastes

   (3) is most efficient in terms of network bandwidth.

   (2) is what qmail uses.  It wastes bandwidth but allows SMTP round-trip
   delays to occur in parallel, so it's usually faster than (3).  It's
   simpler than (3) so the MTA code is easier to write and verify.
   Finally, you can use VERP because each user gets their own copy.  There
   are pathological cases where it's slower than (3), but VERP allows bad
   bounces to be handled automatically, and this plus the code simplicity
   was considered more important.

   The bandwidth difference was often exaggerated because:
   a. most messages have multiple recipients *on separate hosts*, so (3)
      would not be possible in the first place, and
   b. SMTP usually takes up a small fraction of the bandwidth on a given
      host compared to (say) HTTP.  If SMTP takes 10% of your bandwidth and
      you can save 25% of that by using method (3), now it will take 7.5%.

Karl Vogel                      I don't speak for the USAF or my company

Freedom is the right to tell people what they don't want to hear.
                                                     --George Orwell

More information about the freebsd-questions mailing list