Что здесь происходит?! Я сбит с толку.
serveradmin@FILESERVER:/Volumes/MercuryInternal/test$ sudo dd if=/dev/zero of=/Volumes/MercuryInternal/test/test.fs bs=4096k count=10000
10000+0 records in
10000+0 records out
41943040000 bytes (42 GB) copied, 57.0948 s, 735 MB/s
serveradmin@FILESERVER:/Volumes/MercuryInternal/test$ sudo dd if=/Volumes/MercuryInternal/test/test.fs of=/dev/null bs=4096k count=10000
10000+0 records in
10000+0 records out
41943040000 bytes (42 GB) copied, 116.189 s, 361 MB/s
ПРИМЕЧАНИЕ: Мой RAID50 состоит из 3 комплектов по 8 дисков. - Возможно, это не лучшая конфигурация для SPEED.
ОС: Ubuntu 12.04.1 x64
Аппаратный рейд: RocketRaid 2782 - 24-портовый контроллер
Тип жесткого диска: Seagate Barracuda ES.2 1 ТБ
Драйверы: драйверы для Linux с открытым исходным кодом v1.1.
Итак, 24 диска по 1 ТБ, разбитые на разделы с использованием parted. Файловая система - ext4. Планировщик ввода-вывода не работал, но изменил его на крайний срок без видимой выгоды / затрат на производительность.
serveradmin@FILESERVER:/Volumes/MercuryInternal/test$ sudo gdisk -l /dev/sdb
GPT fdisk (gdisk) version 0.8.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 41020686336 sectors, 19.1 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 95045EC6-6EAF-4072-9969-AC46A32E38C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41020686302
Partitions will be aligned on 2048-sector boundaries
Total free space is 5062589 sectors (2.4 GiB)
Number Start (sector) End (sector) Size Code Name
1 2048 41015625727 19.1 TiB 0700 primary
Для меня это должно работать нормально. Я не могу придумать ничего, что могло бы вызвать эти другие, кроме фундаментальных ошибок драйвера? Кажется, я не могу получить много / если даже больше, чем 361 МБ в секунду, это поражает скорость соединения «SATA2», которую не следует указывать, это карта PCIe2.0. Или, может быть, какая-то причуда кеширования - у меня включена обратная запись.
У кого-нибудь есть предложения? Тесты для меня выполнить? Или, если вам потребуется дополнительная информация, я с радостью ее предоставлю!
Это видео-файловый сервер для машин редактирования, поэтому мы отдаем предпочтение быстрому чтению, а не записи. Я просто ожидал большего от RAID 50 и 24 дисков вместе ...
РЕДАКТИРОВАТЬ: (результаты hdparm)
serveradmin@FILESERVER:/Volumes/MercuryInternal$ sudo hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 17458 MB in 2.00 seconds = 8735.50 MB/sec
Timing buffered disk reads: 884 MB in 3.00 seconds = 294.32 MB/sec
РЕДАКТИРОВАТЬ2: (подробности конфигурации)
Кроме того, я использую размер блока RAID 256 КБ. Мне сказали, что больший размер блока лучше для больших (в моем случае больших видео) файлов.
РЕДАКТИРОВАТЬ3: (Результаты Bonnie ++. Хотелось бы получить совет по этому поводу!)
Используйте специальный инструмент для тестирования производительности, например Йозон чтобы лучше понять реальную производительность системы. Слишком часто я вижу людей, использующих dd
для сравнения. Это не очень хорошее представление о реальных рабочих нагрузках ввода-вывода.
Основываясь на результатах теста Iozone, я бы, вероятно, посмотрел на ситуацию с кешированием и, возможно, у вас есть какие-либо барьеры. Это странно, потому что ваша проблема связана со скоростью чтения. Хм ...
Вы определенно не выходите за пределы канала SAS / SATA. Вы делать иметь 24 сквозных соединения, верно? В миксе нет расширителя SAS, верно?