Analyzer of MongoDB 2.4 's new feature returned ununderstandable results.
The value of "resident" totally different from "pagesInMemory".
But why ?
-"resident" are coming from STAT.
-"pageInMemory" are coming from mincore().
This slide illustrates this issue.
3. Interior of a process
User-land Kernel-land
virtual mem physical mem
mapped area
mmap() 1MB
mapped file
page 1
used by
page 2
page 3
FS others
page 4
page 5
page 6
page 7
page 256
4. User-land Kernel-land
virtual mem physical mem
mapped area
page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 256
mapped file
page 1
used by
page 2
page 3
FS others
page 4
page 5
page 6
page 7
page 256
5. Major page fault
User-land Kernel-land
virtual mem physical mem
mapped area
touch page 1
page 2
page 3
page 4
page 5
page 6
page 7
page 256
mapped file
page 1
used by
page 2
page 3
FS others
page 4
page 5
page 6
page 7
page 256
6. Major page fault
User-land Kernel-land
virtual mem physical mem
mapped area
touch page 1 page 2
page 2
page 3
Read page from disk
page 4
page 5
page 6
page 7
page 256
mapped file
page 1
used by
page 2
page 3
FS others
page 4
page 5
page 6
page 7
page 256
7. Major page fault
User-land Kernel-land
virtual mem physical mem
mapped area Associate physical memory
with virtual memory
touch page 1 page 2
page 2
page 3
page 4
page 5
page 6
page 7
page 256
mapped file
page 1
used by
page 2
page 3
FS others
page 4
page 5
page 6
page 7
page 256