[Dovecot] dovecot performance

Sebastien Tandel sebastien.tandel at corp.terra.com.br
Tue Aug 19 18:10:19 EEST 2008


On 16 Aug 2008, at 01:44, <tomas at tuxteam.de> <tomas at tuxteam.de> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Fri, Aug 15, 2008 at 03:37:53PM -0300, Sebastien Tandel wrote:
>
> [...]
>
>>> [fork is fast]
>
>> 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. :-/
>
> Yep, but what can you do after pre-forking and before the request  
> comes
> in?
>
> Thus I'd expect pre-forking not to save us much which can't be  
> saved by
> prudent programming (save mentioned exception of > thousands of  
> connects
> per second).
>

I don't really know the dovecot's code but I guess you can't save  
much between pre-forking and request comes in. But after the request  
comes in, you save a lot if you're re-using the same processes for  
several users. Of course, as mentioned by Timo, you should be careful  
about security concerns.


> We are now deeply in specula-land, I guess ;-)

Yes, we are in specula-land and can't get out of it without having a  
reasonable prototype implementation of pre-fork in dovecot. :)


Regards,
Sebastien Tandel


More information about the dovecot mailing list