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.