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

我目前正在使用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,一个32768的stripe_cache_size将花费你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

转载注明原文:Linux的;什么是stripe_cache_size,它有什么作用? - 代码日志