Re: [exim] High Perf server - was (exim allowed someone to s…

Pàgina inicial
Delete this message
Reply to this message
Autor: Tony Finch
Data:  
A: Daniel Tiefnig
CC: exim-users
Assumpte: Re: [exim] High Perf server - was (exim allowed someone to slam my mailserver for 3 hours)
On Wed, 29 Jun 2005, Daniel Tiefnig wrote:
> Nigel Metheringham wrote:
> >On Wed, 2005-06-29 at 14:25 +0200, Daniel Tiefnig wrote:
> >>
> >> Does exim do sync() on its hint DBs?
> >
> > The underlying database engine (db/dbm/gdbm) would almost certainly
> > sync the files to ensure other processes are getting consistent data.
>
> Hmm, I don't know much about that, but the other processes would also
> access the cached files in RAM, wouldn't they? So a sync wouldn't change
> anything in that respect. It just ensures the data is consistent after a
> crash.


The problem with the hints DBs is that they serialize Exim's activity: the
locking means that only one process can access a hints file at any time.
If the db is on disk then the fsync makes each process spend much longer
dealing with the hints, so you get fewer processes able to do things each
second.

The long term solution is to use more sophisticated database APIs to store
the hints, but this may mean Berkeley DB or SQL only (no gdbm etc.) which
would make Exim harder to build and install.

Tony.
--
<fanf@???> <dot@???> http://dotat.at/ ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}