You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Matt Sergeant <ma...@sergeant.org> on 2004/09/19 11:34:06 UTC

ANNOUNCE: Apache::Qpsmtpd

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

Posted by Matt Sergeant <ma...@sergeant.org>.
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


Re: ANNOUNCE: Apache::Qpsmtpd

Posted by mock <mo...@obscurity.org>.
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

Posted by Matt Sergeant <ma...@sergeant.org>.
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