Discussion:
[linux-lvm] How to calculate the LVM SSD cache size?
Kees de Jong
2014-10-13 12:20:43 UTC
Permalink
Hi,



The documentation is not clear about how big the cache size should be
for optimal performance. It only gives pointers about how big the meta
data for the cache should be.

"Create the cache metadata LV. This LV will hold cache pool metadata.
The size of this LV should be 1000 times smaller than the cache data
LV, with a minimum size of 8MiB."

There is however an example in the man page with a 100GB OriginLV
which apparently needs (at least) 10GB of cache size. But what is the
math? I for example have 4 LV's I want to cache. 6GB, 60GB, 100GB and
2TB and I have a 240GB SSD which will act as the caching disk.

Could someone please fill in the gaps here?




Thanks!
Kees.
Zdenek Kabelac
2014-10-14 13:27:05 UTC
Permalink
Post by Kees de Jong
Hi,
The documentation is not clear about how big the cache size should be
for optimal performance. It only gives pointers about how big the meta
data for the cache should be.
"Create the cache metadata LV. This LV will hold cache pool metadata.
The size of this LV should be 1000 times smaller than the cache data
LV, with a minimum size of 8MiB."
There is however an example in the man page with a 100GB OriginLV
which apparently needs (at least) 10GB of cache size. But what is the
math? I for example have 4 LV's I want to cache. 6GB, 60GB, 100GB and
2TB and I have a 240GB SSD which will act as the caching disk.
Could someone please fill in the gaps here?
https://github.com/jthornber/thin-provisioning-tools/blob/master/caching/cache_metadata_size.cc

The recent lvm2 tools (git) should maintain the size of metadata device
at proper size for any given cache pool data device size.

Zdenek
Brassow Jonathan
2014-10-14 21:23:04 UTC
Permalink
Post by Kees de Jong
Hi,
The documentation is not clear about how big the cache size should be
for optimal performance. It only gives pointers about how big the meta
data for the cache should be.
"Create the cache metadata LV. This LV will hold cache pool metadata.
The size of this LV should be 1000 times smaller than the cache data
LV, with a minimum size of 8MiB."
There is however an example in the man page with a 100GB OriginLV
which apparently needs (at least) 10GB of cache size. But what is the
math? I for example have 4 LV's I want to cache. 6GB, 60GB, 100GB and
2TB and I have a 240GB SSD which will act as the caching disk.
Could someone please fill in the gaps here?
It really does depend on your workload. We don’t have any general advice yet that I can share on how large the overall cache should be relative to the LV it is caching. (We can compute how much space is needed for the metadata area for a given cache, which is why we can give advice on those numbers.)

You could try out various sizes and see what happens. You could also do it a bit more deterministically by watching the number of used cache blocks vs the total cache blocks for you workload, as well as checking other reported metrics such as read/write hits/misses. Currently, this information is had from ‘dmsetup status’.

brassow

Loading...