Linux; 什么是 stripe_cache_size,它有什么作用?

jwb*_*ley 11 linux cache mdadm

我目前正在使用mdadm实用程序在 Linux 下构建软件 RAID ,我已经阅读了一些文章,这些文章描述了如何增加该 RAID 的 stripe_cache_size 值以及如何计算合适的 stripe_cache_size 值。

我已将我的速度提高到 16384,我当前在 /proc/mdstat 中的新 RAID5 上的同步速率已从 71065K/秒跃升至 143690K/秒(翻倍!),这是个好消息。我还看到 RAM 使用量的匹配和预期增加,但是我找不到任何关于此设置的作用及其工作原理的文档。

它似乎是存在于 RAM 中的 RAID 的某种缓存。这就是我从它的名字和改变它所看到的效果所能知道的。是否有任何关于此设置及其描述的官方“Linux”文档?

rud*_*ias 6

根据我的理解, stipe_cache_size 是条带缓存中的条带条目数。条带条目因系统而异,但主要由页面大小控制(Linux 系统上的默认值为 4096 字节)(https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c #L73,如果您想深入挖掘,此文件具有条带缓存的所有逻辑)因此在 4 磁盘 RAID5 中,32768 的条带缓存大小将花费您 512MB 的 RAM。据我所知它只影响raid5。

这里有 2 个文档参考: - https://github.com/torvalds/linux/blob/master/Documentation/md.txt#L603 - https://raid.wiki.kernel.org/index.php/Performance#Some_problem_solving_for_benchmarking