On 2000-03-14 21:23:36 -0500, Eric Boehm wrote:

>> I have found that mutt 1.1.9 is about 4x slower
>> reading a 7.4 MB mail file with 1451 messages in it
>> than mutt 1.0.

You are transferring almost 8 MBit/s with the new mutt
versions.  This looks like the bottleneck is really NFS
and your Ethernet, not mutt.  With the old mutt, you get
more than 34 MBit/s, which looks like your system's local
NFS cache.

> -HOMESPOOL -USE_SETGID +USE_DOTLOCK +USE_FCNTL
> -USE_FLOCK

This output confirms Brendan's suspicion.  More precisely,
you have one of the few system configurations which get
into locking hell with old mutt versions.

What happens is this: Your system has a mail spool which
doesn't require additional privileges to set up
(-USE_SETGID).  This means that dotlocking (+USE_DOTLOCK)
is done within mutt, and not in an external program.
However, this actually breaks fcntl locking by opening and
closing the spool file _after_ doing the fcntl lock,
thereby actually releasing it.

All this affects performance due to the fact that fcntl
locking is supposed to invalidate any data the NFS client
may have cached for the file in question.  While this may
seriously reduce performance, it's important for
reliability: If the cache isn't invalidated, mutt has no
possibility to reliably know whether or not a folder it's
going to synch has been modified by an external program,
e.g., by new mail which was delivered.  

That is, you are actually in a situation in which you may
lose mail under certain circumstances with the old
versions of mutt.

Note that maildir folders may actually lead to a
performance improvement for you:  This folder format
doesn't require any locking, that is, mutt will fully
benefit from the NFS client's cache.

-- 
http://www.guug.de/~roessler/

Reply via email to