A memory pool (mempool) is a method for tracking memory consumption. Memory pools represent the memory consumption of C++ classes and containers, and they are used to assess memory leaks and other insights around memory usage with low overhead. Each memory pool tracks the number of bytes and items it contains. Mempools are statically declared, and they serve the purpose of identifying memory-related checks in BlueStore.
bloom_filter
: tracks objects already in the cache pool in order to determine which objects in the pool are being accessedbluestore_alloc
: accounts for actual allocations done by an allocatorbluestore_inline_bl
: measures encoded length of an inline bufferbluestore_fsck
: file system consistency check for BlueStore metadata; helps in tracking and debugging during OSD repairsbluestore_txc
: accounts for committed transactions counterbluestore_writing_deferred
: measures small writes which are deferred, i.e. first written into RocksDB WAL and later flushed to the diskbluestore_writing
: accounts for in-flight write buffersbluefs
: file-system-like interface; provides just enough functionality to allow RocksDB to store its “files” and share the same raw device(s) with BlueStorebuffer_anon
: stores arbitrary buffer databuffer_meta
: all the metadata associated with buffer anon buffersbluestore_cache_data
: mempool for writing and writing deferredbluestore_cache_onode
: object node (onode) metadata in the BlueStore cachebluestore_cache_meta
: key under PREFIX_OBJ where we are storedbluestore_cache_other
: right now accounts for:map_t
: used to track raw extents on disk for SharedBlob and for the in-memory Blob with the blob namespacecoll_map
: collections_mapcsum_data
: checksum data
bluestore_cache_buffer
: accounts for buffer cache shardsbluestore_extent
: a logical (as well as physical) extent, pointing to some portion of a blobbluestore_blob
: in-memory blob metadata associated cached buffersbluestore_shared_blob
: in-memory shared blob state; stores a reference to the set of collections it belongs to (includes cached buffers)bluefs_file_reader
: accounts for bluefs file reader bufferbluefs_file_writer
: accounts for bluefs file writer buffer
Command to see BlueStore memory allocation in these mempools:
$ ceph daemon osd.NNN dump_mempools
Note
see more: https://github.com/ceph/ceph/blob/main/src/include/mempool.h