6 Aug 2009 (updated 6 Aug 2009 at 02:50 UTC)
»
Dear evolution, Why are you taking 180 seconds (+- 20) to
open mails ?
Dear user, I'm reading message metadata for every message in
that folder, then for all the new mail that arrived while I
was doing that.
Dear evolution, sqlite is good, not reading the entire
maildirs in to filter mail, or open a folder, would be better.
iotop says:
TID PRIO USER DISK READ DISK WRITE SWAPIN IO>
COMMAND
14797 be/4 robertc 4.30 M/s 0.00 B/s 0.00 % 0.00 %
evolution
Dear user, I know, but I'm still the program I was before
sqlite... what to do? (bugs have been filed, tuits are
currently lacking).
Dear evolution, I see you have a large db, but perhaps its
just your cache size?
$ ls -l
/home/robertc/.evolution/mail/imap/robertc@localhost/folders.db
-rw-r--r-- 1 robertc robertc 953131008 2009-08-06 12:23
/home/robertc/.evolution/mail/imap/robertc@localhost/folders.db
$ sqlite3
/home/robertc/.evolution/mail/imap/robertc@localhost/folders.db
SQLite version 3.6.14.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma default_cache_size;
2000
sqlite> pragma default_cache_size=50000;
$ sqlite3
/home/robertc/.evolution/mail/imap/robertc@localhost/folders.db
SQLite version 3.6.14.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma default_cache_size;
50000
Dear user, oooo, that feels good.
2000 - the default, is 2MB of cache. evolution was using
535m of actual memory before, this gives it 25 times the
cache size. My theory is that the still present
read-all-message-info limitations in evolution were causing
cache thrashing. (A DB doesn't help at all unless one
actually is looking at less data :).