Ускорение работы md raid1
Создавая в линуксе raid1 ожидается, что скорость вырастет в 2 раза — из-за параллельного чтения с обеих (или со всех) дисков зеркала. К сожалению, это не так. Для последовательного чтения одним потоком используется только один диск.
Для того, чтобы добиться таки увеличения производительности — можно сделать хак — создать raid10 вместо raid1, разбив диски дополнительно на две части (допустим это будут sda2, sda3, sdb2 и sdb3)
Порядок разделов в рейдах важен!
Теперь для полного счастья увеличиваем read-ahead дисков
blockdev --setra 512 /dev/sda
blockdev --setra 512 /dev/sdb
И получаем скорость около 2х при чтении =)
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb 43077.00 0.00 1387.00 14.00 355712.00 106.00 253.97 1.31 0.94 0.71 98.80
sda 0.00 0.00 0.00 14.00 0.00 106.00 7.57 0.01 0.86 0.86 1.20
md0 0.00 0.00 44464.00 0.00 355712.00 0.00 8.00 0.00 0.00 0.00 0.00
Для того, чтобы добиться таки увеличения производительности — можно сделать хак — создать raid10 вместо raid1, разбив диски дополнительно на две части (допустим это будут sda2, sda3, sdb2 и sdb3)
Порядок разделов в рейдах важен!
mdadm --create /dev/md1 --level=1 -n2 --chunk=256 /dev/sda2 /dev/sdb3
mdadm --create /dev/md2 --level=1 -n2 --chunk=256 /dev/sdb2 /dev/sda3
mdadm --create /dev/md0 --level=0 -n2 --chunk=256 /dev/md1 /dev/md2
Теперь для полного счастья увеличиваем read-ahead дисков
blockdev --setra 512 /dev/sda
blockdev --setra 512 /dev/sdb
И получаем скорость около 2х при чтении =)
- 0
- 17 апреля 2012, 13:20
- admin
- Оставить комментарий