Understand that the mapped virtual memory represents files that are
mmap()'d into memory (likely most are part of the database files), but
the pages are not necessarily loaded into memory until they're read.
I'd guess the bulk of the memory in your RSS (resident size set; the
physical memory that's actually used) are the per-mailbox database
header cache files (and possibly the squat indexes).  Do you use
squatter?

Actually more likely is the mailboxes.db, at least on our systems it is.

$ ps -auxw | grep imapd
...
cyrus    30471  0.0  0.0 155512 2492 ?       S    08:13   0:00 imapd
cyrus    30472  0.0  0.0 155892 2628 ?       S    08:13   0:00 imapd
...

$ ls -l /var/imap/mailboxes.db
-rw------- 1 cyrus cyrus 131552696 Nov 22 08:20 /var/imap/mailboxes.db

It seems the implementation of the skiplist database requires the entire database to be mmaped into memory, thus causing the large apparent process size (155M, of which 131M is the mailboxes.db). It's generally not a problem, since that 131M is the same memory shared between each process, and may not even be actual used memory if that data isn't swapped in.

Rob

----
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to