我使用的是 Ubuntu 16.04.4,它在虚拟机上运行。包含原始数据的磁盘的 I/O 限制为 1MB/s,而缓存磁盘没有限制。我已按照以下指南操作光纤村
创建 LVM 并成功且没有错误,并修改了 cachemode writeback
,我也尝试了writethrough
一下。
当 LV没有缓存我获得了 1MB 传输速率的预期行为,但是当我将缓存池添加到原始 LV 时,我根本没有看到任何性能增强。但在缓存池所在的同一磁盘上创建 LV,我获得了更快的传输速率。我使用/etc/fstab
选项挂载了所有卷sync,dirsync
以避免任何其他缓存。
答案1
LVM 缓存通过跟踪访问的块来读取数据,并且只有当块被访问的次数足够多时,它才会将内容移动到缓存中。遗憾的是,LVM 缓存不可调,因此您无法加快缓存填充操作,您只能继续访问数据,一段时间后,数据将包含在缓存中,性能将得到改善。
此外,LVM 缓存会尝试加快随机访问模式。它很少缓存任何顺序访问的内容,并且这种启发式方法也无法调整。缓存旨在用于具有可用顺序读写速度但随机访问模式性能较差的存储设备前面。
至于写入,如果您使用writethrough
模式,则写入期间不会使用缓存,您显然会获得与底层设备完全相同的性能。