我目前使用mdadm实用程序在Linux下构build了一个软件RAID,我已经阅读了一些文章,介绍了如何增加该RAID的stripe_cache_size值以及如何为stripe_cache_size计算适当的值。
我已经增加到16384,而我在/ proc / mdstat中的新RAID5的当前同步速率已经从71065K /秒跳到了143690K /秒(翻了一番!),这是个好消息。 我也看到匹配和预期增加的内存使用量,但我找不到有关此设置和它是如何工作的任何文档。
它似乎是RAM中存在的RAID的某种caching。 我可以通过改变它的名字和效果来看出这一点。 有没有官方的“Linux”文档对此进行设置和描述?
从我的理解stipe_cache_size是条带caching中条带条目的数量。 条目条目因系统而异,但主要由页面大小控制(Linux系统上默认为4096字节)( https://github.com/torvalds/linux/blob/master/drivers/md/raid5.c #L73 ,这个文件具有条带caching的所有逻辑,如果你想深入挖掘),所以在4个磁盘的RAID5中,32768的stripe_cache_size会花费你512MB的内存。 据我所知,它只影响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