Низкие скорости чтения и записи на FreeBSD ZFS

мой домашний сервер хранения, который в настоящее время состоит из 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 МБ / с . Это кажется немного медленным. Или это совершенно нормально?

Спасибо

Тобиас Тимпе

3
задан 17 February 2017 в 23:44
1 ответ

С помощью приведенной выше команды вы не проверяете производительность записи на диск. Вы тестируете множество факторов, но в основном задержку контроллера и диска. Чтобы проверить производительность чтения с диска, вам нужно перепрыгнуть через обручи, чтобы исключить кеширование диска из ваших тестов, что нетривиально для 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 между двумя дисками и время этого копирования.

4
ответ дан 3 December 2019 в 06:01

Теги

Похожие вопросы