Недавно я установил новый файловый сервер на базе Linux. Я использую дистрибутив Ubuntu 10.10. Я создал два программных рейда следующим образом:
mc@vmr:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdf1[1] sdh1[3] sde1[0] sdg1[2]
19530688 blocks [4/4] [UUUU]
md1 : active raid10 sdh3[3] sdf3[1] sde3[0] sdg3[2]
1912461184 blocks 64K chunks 2 near-copies [4/4] [UUUU]
Устройство / dev / md0 (raid1) монтируется в «/», а / dev / md1 (raid10) монтируется в «/ home». К сожалению, производительность моего raid10 оставляет желать лучшего. Вот производительность каждого жесткого диска:
mc@vmr:~$ sudo hdparm -t /dev/sdh3
/dev/sdh3:
Timing buffered disk reads: 410 MB in 3.00 seconds = 136.57 MB/sec
mc@vmr:~$ sudo hdparm -t /dev/sdf3
/dev/sdf3:
Timing buffered disk reads: 402 MB in 3.01 seconds = 133.60 MB/sec
mc@vmr:~$ sudo hdparm -t /dev/sde3
/dev/sde3:
Timing buffered disk reads: 418 MB in 3.01 seconds = 139.10 MB/sec
mc@vmr:~$ sudo hdparm -t /dev/sdg3
/dev/sdg3:
Timing buffered disk reads: 406 MB in 3.00 seconds = 135.32 MB/sec
Естественно, я ожидал, что скорость чтения будет около 260 МБ / с, но вместо этого я получил следующее:
mc@vmr:~$ sudo hdparm -t /dev/md1
/dev/md1:
Timing buffered disk reads: 172 MB in 3.04 seconds = 56.64 MB/sec
Сначала я предположил, что hdparm
Методу тестирования нельзя доверять на 100%, поэтому я провел тест на чтение в реальном мире, и производительность все еще не соответствовала ожидаемой (random.bin помещен в raid10):
mc@vmr:~$ dd if=random.bin of=/dev/null bs=256k
38800+0 records in
38800+0 records out
10171187200 bytes (10 GB) copied, 96.3874 s, 106 MB/s
Наконец, я хотел бы сказать, что производительность чтения raid1 в точности такая, как ожидалось:
mc@vmr:~$ sudo hdparm -t /dev/md0
/dev/md0:
Timing buffered disk reads: 412 MB in 3.01 seconds = 136.91 MB/sec
Кто-нибудь сталкивался с такой проблемой? Какие-нибудь подсказки?
Я только что снова создал свой массив md1:
leo@stellie:~$ cat /proc/mdstat
Personalities : [raid1] [raid10]
md1 : active raid10 sdc6[0] sdb6[2] sda6[1]
32807040 blocks super 1.2 64K chunks 2 far-copies [3/3] [UUU]
md0 : active raid1 sda1[0] sdb1[2] sdc1[1]
248896 blocks [3/3] [UUU]
Обратите внимание: 1. версия метаданных была обновлена до 1.2 2. удаленные копии вместо близких копий
leo@stellie:~$ sudo hdparm -t /dev/md1
/dev/md1:
Timing buffered disk reads: 372 MB in 3.02 seconds = 123.29 MB/sec
Я провел еще несколько тестов hdparm, пока массив еще не использовался, и: - 64К фрагментов и почти копий работали лучше, чем раньше (~ 70 МБ / сек) - 512К фрагментов имели более низкую скорость передачи (~ 50 МБ / с) - максимальная скорость чтения достигнуто с удаленными копиями и фрагментами размером 64К
Как вы сказали, мне тоже нужно провести тест с iozone.
64K фрагментов
- слишком маленький. Практически все операции ввода-вывода. имеет заметную вероятность задействовать 2 диска с таким размером страйпа, что означает больше потраченных впустую операций ввода-вывода. Я предлагаю не менее 512 КБ и может быть 1-2 МБ.
Кроме того, вы можете найти эту мою ответ полезно.
Есть несколько вариантов
1. Возникла проблема с:
2. попробуйте настроить несколько вещей
в любом случае hdparm на самом деле не лучшее программное обеспечение для тестирования производительности - попробуйте bonni ++, iozone или dd