Author: Gergely Nagy Date: To: Exim Mailing List Subject: Re: [exim] Weird loads with maildir_use_size_file
Phil Pennock wrote: > On 2008-06-18 at 13:04 +0200, Gergely Nagy wrote:
>> The bulk of the issue is, that I have a configuration which Works(tm),
>> it's fast, reliable and works like a charm. However, I would like to use
>> maildirsize files, but whenever I turn maildir_use_size_file on in the
>> appropriate transport, the load goes from the usual 10-20 to 600 and
>> above within half a minute. I believe it would rise even further, but so
>> far, I always turned the option off again before that.
>
> Exim doesn't use the maildirsize file itself, it's used for other
> programs. For other programs, it's a cache. For Exim, in order to
> create it, for any directory either not already present or where the
> timestamp differs from the recorded one, Exim needs to readdir() the
> directory.
Yeah, I know that much.
> If this is turned on globally, then all at once you're having to
> readdir() pretty much every maildir directory on disk, from processes
> fighting with each other, including multiple deliveries to the same
> user.
Mhm.
> I would suspect that you're thrashing memory. Testing against one user
> wouldn't show problems, because the problem is when all the deliveries
> are fighting each other at the same time.
>
> Running "vmstat 1" whilst enabling this would confirm.
I'll do that next, thank you.
> It might be possible to turn this on during a quiet time of day and let
> it build; alternatively, you could duplicate local_delivery to have
> "local_delivery" followed by "local_delivery_nosize" and on the first
> set maildir_use_size_file and have a condition rule restricting it to a
> subset of the userbase, which you can expand slowly.