场景:我们在EC2中运行一个很大的(在集群中总共3TB)Solr安装。 我只关心事物读取方面的磁盘性能。 我们怀疑我们受到磁盘I / O的限制,特别是在EBS数量减less的时候遇到问题。
我正在考虑尝试RAID 1.从我所了解的Linux软件RAID将拆分磁盘之间的读取,但我不知道它是多么的聪明。 如果RAID 1对中的一个磁盘在读取时被备份,它是否会向另一个磁盘发送更多读取? 如果读取已经过了很长时间,是否会重新计划读取到另一个磁盘?
我想不出任何方式来testing这种行为。 我很乐意浏览代码,但我甚至不确定这是由I / O调度程序处理,还是它是raid驱动程序的一部分。 我找不到比软件RAID HowTo更深入的任何文档。
读取平衡在内核的md驱动程序中处理; 司机/ MD / raid1.c
这不是超级聪明 它试图尽量减less寻求,这是关于它。 我不确定是否有任何RAID的实现是如你所愿的聪明…
你的系统中有足够的内存吗? 如果真的是重读,caching应该会有所帮助。