[Dovecot] dovecot performance

Sebastien Tandel sebastien.tandel at corp.terra.com.br
Fri Aug 15 21:37:53 EEST 2008


Hi,


>> It is well known that preforking is a good pratice if you want to
>> achieve a higher performance.
>> When I was asked about it I readily answered: "of course it does".  
>> For
>> my surprise later, i doesn't.
>
> With fork latencies in the range of 500 to 1500 microseconds (on  
> Pentium
> 900 MHz-class hardware!) on most modern kernels[1] I wonder whether  
> this
> "good practice" isn't on the verge of voodoo ;-)

OK, it measures the fork instruction. But fork is using a copy-on- 
write mechanism ... It means that *none* of the parent's memory pages  
are copied. Each page is simply *shared* by *all* the child /until/ a  
modification is made to it.Therefore this test obviously does not  
take into account time taken when modifying data. And I strongly  
suspect that dovecot is not only doing read-only access to memory  
when running. :-/

P.S. : I'm not saying though it is mandatory to have such a mechanism  
in dovecot ;)


Regards,
Sebastien

> (Of course, in a http server, where you might expect thousands of
> connects per second, this is another story -- which is mitigated by  
> HTTP
> 1.1, when properly streaming several requests per connection).
>
> - ----------------
> [1] <http://bulk.fefe.de/scalability/>, search "The fork benchmark"
>
> Regards
> - -- tomás
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
>
> iD8DBQFIpR1XBcgs9XrR2kYRAqPdAJ0dbp+fUW0MpWdNvXa3SUvXP3v3eQCcCsTS
> hFbhMpoG+OjI4i+za6xNn+4=
> =SRgx
> -----END PGP SIGNATURE-----
>



More information about the dovecot mailing list