On 16 Aug 2008, at 01:44, tomas@tuxteam.de tomas@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