мой домашний сервер хранения, который в настоящее время состоит из 6 дисков Seagate по 3 ТБ, ОЗУ DDR3 12 ГБ и Core i3 540, имеет очень низкую производительность при чтении или записи на raidz2, который я установил.
Использование / usr / bin / time -h dd if = / dev / zero of = sometestfile bs = 1024 count = 10
:
10240 bytes transferred in 0.000221 secs (46331902 bytes/sec)
и наоборот:
10240 bytes transferred in 0.000107 secs (95656287 bytes/sec)
, что соответствует скорости записи 46 МБ / с и чтения 95 МБ / с . Это кажется немного медленным. Или это совершенно нормально?
Спасибо
Тобиас Тимпе
С помощью приведенной выше команды вы не проверяете производительность записи на диск. Вы тестируете множество факторов, но в основном задержку контроллера и диска. Чтобы проверить производительность чтения с диска, вам нужно перепрыгнуть через обручи, чтобы исключить кеширование диска из ваших тестов, что нетривиально для ZFS, поскольку это означает отключение кеша ARC. Гораздо проще проверить производительность записи: напишите файлы гораздо большего размера, желательно по размеру, превышающему встроенную оперативную память вашей системы.
Я выполнил эту команду на своем домашнем файловом сервере ZFS (Core i3-4130T с зеркальным WDC WD80):
# /usr/bin/time -h dd if=/dev/zero of=sometestfile bs=1024 count=10000000
10240000000 bytes transferred in 55 secs (186900359 bytes/sec)
Это не очень хорошо, но это гораздо лучший тест реальной производительности записи. Интересным результатом является то, что я достиг 187 МБ / с, а номинальная производительность моих дисков - 178 МБ / с. Это немного странно, потому что типичные тесты производительности составляют значительную часть номинальной производительности. Превышение этого параметра можно объяснить сжатием диска ZFS.
Мои диски находятся в зеркале ZFS (2-кратная скорость чтения для меня более полезна, чем эффективность хранения)но если предположить, что скорость вращения ваших дисков также составляет 5400 об / мин, вы должны ожидать сопоставимой производительности записи.
Чтобы понять, почему даже гораздо большее количество с использованием dd
не является хорошим тестом, проверьте это:
# /usr/bin/time -h dd if=/dev/zero of=sometestfile bs=1M count=1000000
1048576000000 bytes transferred in 223.56 secs (4690377542 bytes/sec)
увеличив размер блока до 1M, производительность моего диска теперь просто потрясающая. Пока вы не поймете, что чтение из / dev / zero означает, что источник данных не имеет энтропии и хорошо сжимается. dd - не лучший инструмент для тестирования производительности дисков.
В дереве портов FreeBSD есть и другие инструменты (в прошлом я использовал bonnie & iozone), которые могут рассказать вам больше информации о производительности ваших дисков. Если вам действительно интересно, посмотрите на них. В противном случае, НАМНОГО лучшего теста производительности для домашнего файлового сервера является копирование содержимого DVD или Blu-ray между двумя дисками и время этого копирования.