我目前正在使用mdadm
实用程序在 Linux 下构建软件 RAID,并且我已经阅读了一些文章,这些文章描述了如何增加该 RAID 的 stripe_cache_size 值以及如何计算 stripe_cache_size 的适当值。
我已将我的增加到 16384,并且我当前在 /proc/mdstat 中的新 RAID5 上的同步率从 71065K/秒跃升至 143690K/秒(翻了一番!),这是个好消息。我还看到 RAM 使用量的匹配和预期增加,但是我找不到任何关于此设置的作用及其工作原理的文档。
它似乎是 RAM 中存在的 RAID 的某种缓存。这就是我可以从它的名称和更改它所看到的效果中看出的全部内容。有没有关于这个设置和描述的官方“Linux”文档?
据我了解, stipe_cache_size 是条带缓存中条带条目的数量。条带条目因系统而异,但主要由页面大小控制(Linux 系统上默认为 4096 字节)(https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c #L73,如果您想深入挖掘,此文件包含条带缓存的所有逻辑)因此在 4 磁盘 RAID5 中,stripe_cache_size 为 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