-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"vdo_slab_size_mb" and "vdo_physical_threads" incompatible values ? #53
Comments
The problem you're running into here is that each physical thread needs to have an least one slab available. The size of your volume is 12GB, which it only enough space to create one 8GB slab. So you can one have one physical zone. If you want to use 8GB slabs, two physical threads would require at least 17GB, four physical threads would requires 33 GB, etc. (In addition to the slab space, we require some space for metadata, so using exactly 16GB would probably not be enough to create two slabs.) The number of physical threads can be changed after formatting, so you can decide whether you want to create the VDO with a larger physical size, or start with just one thread. |
Thank you very much for this clear explanation ! Also, I'm trying to get the maximum performance out of VDO, what could you advise me ? About threads, my reasoning was to say: by default, this setting has 1 thread, this one has 2 and this one has 4; so I'll take the number of vCPUs in my system and distribute them according to the same weighting. What do you think of this choice? I also had the idea to simply put the total number of vCPUs for each of these parameters but I was afraid to overload the system
So I suppose that I will have to change my metadata profile and then... How do I apply the updated profile ? Will I need a reboot or another annoying thing like that? |
This a very reasonable choice. The optimal settings depend a lot on the characteristics of your hardware and the data access pattern of the volume, so I can't make too many recommendations. The most CPU-intensive work (hashing) happen on the CPU threads, so it's good to have several of those. For physical threads specifically, you should have enough to keep the underlying storage busy. However, if there are too many, they will compete for shared resources and can reduce performance. The effect is likely to be modest in either case, though. Also, using vdo_write_policy="async" will likely perform better if you don't need the volume to be synchronous. And vdo_use_deduplication=1 should be set so you can actually get deduplication of writes.
You would need to shut the volume down entirely and restart it with the new setting. Also I am not sure lvm has tools yet to allow you to modify this so applying the new setting might be challenging. For now it might be better to create test volumes to try various configurations until you find one that seems to work well. |
Hello there,
I'm encountering a problem with the following LVM VDO metadata profile:
FYI, on my system:
When I run
lvcreate
using the previous metadata profile:I get the following error:
I did some tests and found that the problem comes from these lines :
and
vdo_physical_threads=$((VCPU_COUNT/4))
Here are the results of my different tests:
I feel that I'm doing something wrong but don't really know what 😅 thanks per advance !
PS: I need 8GB slabs to make my VDO volume ready for 64TB total volume. I choosed 8GB even if 32GB are advised on RedHat documentation because this volume will never need to be expanded more than 64TB.
The text was updated successfully, but these errors were encountered: