Я проверял, насколько быстро работает мой сервер хранения ZFS. У меня есть несколько больших файлов (> 30 ГБ), и я использую dd piped в /dev/null для проверки скорости чтения.

Когда я запускаю dd для определенного файла в первый раз, я получаю постоянный результат около 95 МБ / с. Я использовал оба сигнала и pv для мониторинга прогресса, и они дали одинаковые результаты.

Однако при повторном запуске dd происходит нечто необычное:

407+0 records in
406+0 records out
425721856 bytes (426 MB, 406 MiB) copied, 4.61932 s, 92.2 MB/s
911+0 records in
910+0 records out
954204160 bytes (954 MB, 910 MiB) copied, 9.66672 s, 98.7 MB/s
1412+0 records in
1411+0 records out
1479540736 bytes (1.5 GB, 1.4 GiB) copied, 14.7018 s, 101 MB/s
12374+0 records in
12373+0 records out
12974030848 bytes (13 GB, 12 GiB) copied, 19.7579 s, 657 MB/s
12854+0 records in
12853+0 records out
13477347328 bytes (13 GB, 13 GiB) copied, 24.7491 s, 545 MB/s

Что вызывает внезапный всплеск от 1,5 до 13 ГБ? Я думаю, что кеш ZFS ответственен (сервер имеет 64 ГБ ОЗУ, поэтому это возможно), однако сервер (FreeBSD) подключен к моему клиенту (OSX) по одной ссылке 1 Гбит / с, которая определенно не может обрабатывать 657 МБ / с. скорость. Сжатие также маловероятно, поскольку файл содержит почти случайные данные.


Изменить: Извините, возможно, я задал свой вопрос в замешательстве.

У меня есть сервер FreeBSD с файловой системой ZFS. Этот сервер разделяет файл, используя протокол AFP. Я подключаюсь к нему с помощью настольного ПК под управлением OSX 10.10. И конечно я запускаю dd на клиенте.

dd if=/Volumes/NetworkShare/testfile.dat of=/dev/null bs=1048576

При запуске непосредственно на сервере, dd показывает более 625 МБ / с (что кажется нормальным, поскольку zpool имеет данные, чередующиеся на 8 дисках).

1 ответ1

0

Прежде всего, пожалуйста, включите команду dd которую вы использовали для запуска теста. Как указано в комментарии, размер написанного файла растет, поэтому, скорее всего, что-то не так (если каждый тест не копировал отдельный файл). Также к этому моменту имеет значение, насколько большие куски данных вы пишете, т.е. опция bs должна быть достаточно большой. См. Этот тест скорости потока ZFS для примера.

Во-вторых, вы можете использовать инструмент diskinfo, чтобы получить максимальную теоретическую скорость вашего диска, например:

diskinfo -tv /dev/ada0

В-третьих, я бы порекомендовал попробовать разные инструменты, чтобы получить более широкую картину, например, iozone , упомянутую в теме, которую я разместил.

Наконец, когда вы копируете файл в /dev/null данные никогда не покидают ваш сервер. Так что вы правы, разница в скорости, скорее всего, связана с кэшированием ZFS. Попробуйте скопировать файл по сети, и вы не сможете получить скорость более 100 Мбит / с (теоретическая скорость соединения 1 Гбит составляет 125 Мбит / с).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .