ANNOUNCE: Apache::Qpsmtpd

ANNOUNCE: Apache::Qpsmtpd

am 19.09.2004 11:34:06 von Matt Sergeant

Last week I was at YAPC and attended mock's talk about building an
SMTPd in mod_perl2/apache2. But before going I wanted to be able to
build something like that for myself. So I wrote Apache:Qpsmtpd - a
mod_perl2 handler that embeds Qpsmtpd (http://smtpd.develooper.com/)

http://www.sergeant.org/Apache-Qpsmtpd/

It seems to mostly work, though if you want to play with it you'll need
the current cvs of qpsmtpd. It's about 3 times faster than the
qpsmtpd-forkserver that ships with qpsmtpd.

Enjoy.


--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Re: ANNOUNCE: Apache::Qpsmtpd

am 21.09.2004 20:19:48 von Matt Sergeant

On 19 Sep 2004, at 10:34, Matt Sergeant wrote:

> Last week I was at YAPC and attended mock's talk about building an
> SMTPd in mod_perl2/apache2. But before going I wanted to be able to
> build something like that for myself. So I wrote Apache:Qpsmtpd - a
> mod_perl2 handler that embeds Qpsmtpd (http://smtpd.develooper.com/)
>
> http://www.sergeant.org/Apache-Qpsmtpd/
>
> It seems to mostly work, though if you want to play with it you'll
> need the current cvs of qpsmtpd. It's about 3 times faster than the
> qpsmtpd-forkserver that ships with qpsmtpd.

Someone posted privately asking why I thought it was faster, but my
reply to them bounced (broken anti-spam system I think) so I'll reply
here:

I think it's faster because it pre-forks. qpsmtpd-forkserver is just
naive - it forks once per connection. Plus I guess Apache does the I/O
for you, though I don't think that's really gaining me much - consider
the overheads of the bucket brigade vs Perl's readline.

Matt.


--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Re: ANNOUNCE: Apache::Qpsmtpd

am 22.09.2004 18:34:23 von mock

On Tue, Sep 21, 2004 at 07:19:48PM +0100, Matt Sergeant wrote:
> On 19 Sep 2004, at 10:34, Matt Sergeant wrote:
>
> >Last week I was at YAPC and attended mock's talk about building an
> >SMTPd in mod_perl2/apache2. But before going I wanted to be able to
> >build something like that for myself. So I wrote Apache:Qpsmtpd - a
> >mod_perl2 handler that embeds Qpsmtpd (http://smtpd.develooper.com/)
> >
> > http://www.sergeant.org/Apache-Qpsmtpd/
> >
> >It seems to mostly work, though if you want to play with it you'll
> >need the current cvs of qpsmtpd. It's about 3 times faster than the
> >qpsmtpd-forkserver that ships with qpsmtpd.
>
> Someone posted privately asking why I thought it was faster, but my
> reply to them bounced (broken anti-spam system I think) so I'll reply
> here:
>
> I think it's faster because it pre-forks. qpsmtpd-forkserver is just
> naive - it forks once per connection. Plus I guess Apache does the I/O
> for you, though I don't think that's really gaining me much - consider
> the overheads of the bucket brigade vs Perl's readline.
>
> Matt.
>

I think there is the potential for an even better speed increase with a little
reworking of how QPSMTPD works. Some of the stuff you're doing (the timeout
bits you showed me) might be better left to Apache to handle. Also, you might
want to try it with the threading MPM vs the preforking. Some OS's see a bit
of improvement. Any idea where your bottleneck is?

mock

--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Re: ANNOUNCE: Apache::Qpsmtpd

am 22.09.2004 21:22:55 von Matt Sergeant

On 22 Sep 2004, at 17:34, mock wrote:

> I think there is the potential for an even better speed increase with
> a little
> reworking of how QPSMTPD works. Some of the stuff you're doing (the
> timeout
> bits you showed me) might be better left to Apache to handle. Also,
> you might
> want to try it with the threading MPM vs the preforking. Some OS's
> see a bit
> of improvement. Any idea where your bottleneck is?

I removed the timeout stuff, and that was no faster. I tried the other
MPM and it creeeaaasssshhheed rather spectacularly. No idea why. No
time or inclination to debug :-)

Matt.


--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html