+[[!img notmuch-logo.png alt="Notmuch logo" class="left"]]
# Optimize notmuch's performance
+[[!toc levels=2]]
+
+## Use of ecryptfs slows notmuch down.
+
+I noticed that my `notmuch new` was really slow (several minutes) for
+less then 20 new emails (around 20K in my database).
+
+The performance tests in the notmuch source didn't show any real
+issue, even on a non-encrypted ext4 fs.
+
+After investigation and running different tests, a switch to a
+LUKS-btrfs based filesystem to replace the ext4-ecryptfs resolved the
+issue. It now takes some seconds to index hundreds of messages.
+
## Xapian 1.2.x database format: chert vs. flint
Xapian 1.2 (in contrast to 1.0.x) uses a new database format called
### Migrate from flint to chert
-1. make sure you are using xapian 1.2.x (depends on your distribution)
+Make sure you are using xapian 1.2.x (depends on your distribution)
-XXX: add examples
+XXX: add examples for different distributions
-2. Backup your notmuch tags:
+Backup your notmuch tags:
$ cd
- $ notmuch dump notmuch-dump-b4chert
+ $ notmuch dump --output=notmuch-dump-b4chert
-3. Move away your old database:
+Move away your old database:
$ mv $(notmuch config get database.path)/.notmuch/ notmuch-db-b4chert
-4. Find and import your messages, a new and fresh database will be
+Find and import your messages, a new and fresh database will be
created:
$ XAPIAN_PREFER_CHERT=1 notmuch new
After the initial import it is definitely not necessary to define
`XAPIAN_PREFER_CHERT` for subsequent calls of `notmuch new`.
-5. Restore your tags:
+Restore your tags:
- $ notmuch restore notmuch-dump-b4chert
+ $ notmuch restore --input=notmuch-dump-b4chert
-6. Check whether you are on chert now:
+Check whether you are on chert now:
$ ls $(notmuch config get database.path)/.notmuch/xapian/iam*
iamchert
If it says `iamflint`, most likely you are still using xapian 1.0.x.
-7. Clean-up
-
-If you are sure everything is fine, you can delete the old things. The
-dump of your tags you might want to keep anyway as a backup - on the
-other hand you should have some mechanism in place to make regular
-backups of your notmuch database:
+Clean-up: if you are sure everything is fine, you can delete the old
+things. The dump of your tags you might want to keep anyway as a
+backup - on the other hand you should have some mechanism in place to
+make regular backups of your notmuch database:
$ rm notmuch-dump-b4chert
$ rm -R notmuch-db-b4chert
Backup your database:
$ cd
- $ notmuch dump notmuch-dump-b4compact
+ $ notmuch dump --output=notmuch-dump-b4compact
Compact it:
* [Sebastian Spaeth](http://notmuchmail.org/pipermail/notmuch/2011/004048.html)
* [Pieter Praet](http://notmuchmail.org/pipermail/notmuch/2011/004175.html)
-