Tool to collect block cache statistics for a MongoDB instance based on
$showDiskLoc
and mincore(2)
.
- MongoDB 2.6 or newer because of SERVER-5372
- MongoDB client library and headers installed
# apt-get install mongodb-dev libmongo-client-dev libboost-system-dev libboost-regex-dev libboost-thread-dev libboost-filesystem-dev
# make
MongoDB needs to be up and running.
# ./mongocachestat [--directoryPerDb] <dbpath> [<host:port>]
Example:
# ./mongocachestat /data/mongodb localhost:27017
Potential "Heisenberg effects" (i.e. changing the cache state by measuring with
this tool) are tried to be minimized by using madvise(…, …, MADV_RANDOM)
.
It turns off Linux kernel read-ahead and read-behind. We call it Heisenberg
compensator in analogy to a famous science fiction series.