Сценарий: мы запускаем большую (всего 3 ТБ в кластере) установку Solr в EC2. Меня беспокоит только производительность диска при чтении. Мы подозреваем, что мы ограничены дисковым вводом-выводом и конкретно сталкиваемся с проблемами, когда том EBS начинает работать нестабильно и замедляться.
Я подумываю о том, чтобы попробовать RAID 1. Насколько я понимаю, программный RAID Linux разделит чтение между дисками, но я не уверен, насколько он умен. Если для одного из дисков в паре RAID 1 создается резервная копия при чтении, отправит ли он больше операций чтения на другой диск? Если чтение было отложено слишком долго, будет ли перенесено чтение на другой диск?
Я не могу придумать способ проверить это поведение. Я был бы рад просмотреть код, но я даже не уверен, будет ли это обрабатываться планировщиком ввода-вывода или это часть драйверов рейда. Я не могу найти никакой документации, которая была бы более глубокой, чем программное обеспечение RAID HowTo.
Балансировка чтения обрабатывается драйверами md в ядре; драйверы / md / raid1.c
Это не супер умно. Он пытается свести к минимуму поиски, вот и все. Я не уверен, что какая-то из реализаций RAID настолько умна, насколько вы хотите ...
Достаточно ли памяти в вашей системе? Если это действительно много чтения, кеширование должно немного помочь.