I've got relayd(8) on a stock OpenBSD 4.5 system sitting in front of our public
webservers, and have been very happy with it.

Recently I got the idea of putting it front of our SMTP/SASL systems.

The initial testing went very well, but when testing with a large attachment,
it took upwards of a minute to relay it to the backend host. dlg@ suggested I
set EVENT_NOKQUEUE, which knocked about 40 seconds off the send.

redirect sasl {
  listen on $sasl_ext_addr port 25 interface em0
  forward to <sasl> port 1125 check tcp
}

Directly to the SASL zone:

  $ export EVENT_NOKQUEUE=1
  $ time ./sasl_test.pl 63KB 
  Spamming... sasl
  real    0m1.734s

  $ time ./sasl_test.pl 64KB 
  Spamming... sasl
  real    0m1.536s

  $ time ./sasl_test.pl 4MB 
  Spamming... sasl
  real    0m8.687s

  $ time ./sasl_test.pl 20MB 
  Spamming... sasl
  real    0m38.670s

And via relayd(8):

  $ export EVENT_NOKQUEUE=1
  $ time ./sasl_test.pl 63KB 
  Spamming... border-sasl-smtp
  real    0m1.547s
  
  $ time ./sasl_test.pl 64KB 
  Spamming... border-sasl-smtp
  real    0m38.427s
  
  $ time ./sasl_test.pl 4MB 
  Spamming... border-sasl-smtp
  real    1m17.339s

  $ time ./sasl_test.pl 20MB 
  Spamming... border-sasl-smtp
  real    1m13.776s

The vast majority of attachments (or even messages) I'm going to see go through
these systems is going to be >64KB, so everyone is going to get bit by this.

Can anyone offer any insight?

(I don't see anything in plus46.html that would suggest this is a bug fixed
since 4.5.)

Cheers.
-- 
bda
cyberpunk is dead. long live cyberpunk.

Reply via email to