# ceph --admin-daemon ceph-osd.6.asok config show |grep cache_size
"bluestore_cache_size": "0",
"bluestore_cache_size_hdd": "1073741824",
"bluestore_cache_size_ssd": "3221225472",
"client_cache_size": "16384",
"filestore_fd_cache_size": "128",
"filestore_omap_header_cache_size": "1024",
"leveldb_cache_size": "134217728",
"mds_cache_size": "0",
"mon_osd_cache_size": "500",
"mon_osd_cache_size_min": "134217728",
"osd_map_cache_size": "50",
"rbd_cache_size": "33554432",
"rgw_bucket_quota_cache_size": "10000",
"rgw_keystone_token_cache_size": "10000",
"rgw_nfs_fhcache_size": "2017",
"rgw_obj_tombstone_cache_size": "1000",
"rocksdb_cache_size": "536870912",
# ceph tell osd.6 injectargs '--bluestore_cache_size_ssd 2147483648'
bluestore_cache_size_ssd = '2147483648' (not observed, change may require restart)
MANUAL CACHE SIZING
The amount of memory consumed by each OSD for BlueStore¡¯s cache is determined by the bluestore_cache_size
configuration option. If that config option is not set (i.e., remains at 0), there is a different default value that is used depending on whether an HDD or SSD is used for the primary device (set by the bluestore_cache_size_ssd
and bluestore_cache_size_hdd
config options).
BlueStore and the rest of the Ceph OSD does the best it can currently to stick to the budgeted memory. Note that on top of the configured cache size, there is also memory consumed by the OSD itself, and generally some overhead due to memory fragmentation and other allocator overhead.
The configured cache memory budget can be used in a few different ways:
Key/Value metadata (i.e., RocksDB¡¯s internal cache)
BlueStore metadata
BlueStore data (i.e., recently read or written object data)
Cache memory usage is governed by the following options: bluestore_cache_meta_ratio
and bluestore_cache_kv_ratio
. The fraction of the cache devoted to data is governed by the effective bluestore cache size (depending on bluestore_cache_size[_ssd|_hdd]
settings and the device class of the primary device) as well as the meta and kv ratios. The data fraction can be calculated by <effective_cache_size> * (1 - bluestore_cache_meta_ratio - bluestore_cache_kv_ratio)
bluestore_cache_size
- Description
The amount of memory BlueStore will use for its cache. If zero, bluestore_cache_size_hdd
or bluestore_cache_size_ssd
will be used instead.
- Type
Unsigned Integer
- Required
Yes
- Default
0
bluestore_cache_size_hdd
- Description
The default amount of memory BlueStore will use for its cache when backed by an HDD.
- Type
Unsigned Integer
- Required
Yes
- Default
1 * 1024 * 1024 * 1024
(1 GB)
bluestore_cache_size_ssd
- Description
The default amount of memory BlueStore will use for its cache when backed by an SSD.
- Type
Unsigned Integer
- Required
Yes
- Default
3 * 1024 * 1024 * 1024
(3 GB)
bluestore_cache_meta_ratio
- Description
The ratio of cache devoted to metadata.
- Type
Floating point
- Required
Yes
- Default
.4
bluestore_cache_kv_ratio
- Description
The ratio of cache devoted to key/value data (rocksdb).
- Type
Floating point
- Required
Yes
- Default
.4
bluestore_cache_kv_max
- Description
The maximum amount of cache devoted to key/value data (rocksdb).
- Type
Unsigned Integer
- Required
Yes
- Default
512 * 1024*1024
(512 MB)