Как я могу оценить производительность диска с помощью dd? (запись в /dev/null происходит мгновенно?)

Вопрос или проблема

Я пытаюсь выполнить простой тест производительности диска (пропускная способность) моей файловой системы ZFS с помощью dd.

Вот моя команда:

dd if=/tank/media/video/largefile.mp4 of=/dev/null bs=1M count=1000

Однако он завершается мгновенно:

1000+0 записей выведено
1048576000 байт (1.0 ГБ, 1000 МиБ) скопировано, 0.18307 с, 5.7 ГБ/с

Это явно не считывает файл, потому что такая скорость нереалистична.

Как я могу выполнить тест только на чтение для измерения пропускной способности? Я не хочу записывать файл никуда, потому что тогда я также тестирую скорость записи.

Кроме того, какой размер блока обычно используется? (например, для имитации копирования по сети с использованием SMB или аналогичного)

Ваш файл, по-видимому, закэширован, поэтому вам нужно очистить кэш/буферы файловой системы:

echo 3 | sudo tee /proc/sys/vm/drop_caches

Во-вторых, использование dd и запись в /dev/null не являются бесплатными с точки зрения использования ЦП, есть лучшие инструменты для этого. Но для достаточно больших файлов это не должно быть проблемой.

Ответ или решение

Бенчмаркинг пропускной способности диска с использованием dd

При проведении тестов на пропускную способность диска с помощью команды dd, важно учитывать несколько факторов, которые могут значительно повлиять на результаты ваших замеров. Ваша задача заключается не только в получении правильных данных, но и в исключении внешних факторов, которые могут исказить результаты.

Шаги для корректного тестирования

  1. Очистка кэша файловой системы:
    Кэширование является одной из главных причин, по которой ваш тест завершается мгновенно и показывает нереалистичные скорости. При выполнении предыдущих операций с файлом, системы часто хранят его в оперативной памяти. Чтобы предотвратить это, перед тестом рекомендуется очистить кэш с помощью следующей команды:

    echo 3 | sudo tee /proc/sys/vm/drop_caches

    Примечание: Будьте осторожны при использовании этой команды, так как это сбросит кэш для всей системы, что может временно повлиять на общую производительность.

  2. Корректная команда dd:
    Для того чтобы протестировать лишь чтение с диска, используйте следующую команду:

    dd if=/tank/media/video/largefile.mp4 of=/dev/null bs=1M count=1000

    Однако, вы можете столкнуться с той же проблемой кэша. Поэтому перед выполнением этой команды убедитесь, что кэш был очищен.

  3. Выбор размера блока:
    Подбор размера блока (bs) также имеет значение. Обычно, для имитации копирования файлов по сети, рекомендуется использовать размер блока от 64K до 1M. Размер блока 1M, как вы указали, подходит для тестирования, но вы также можете протестировать другие размеры, чтобы увидеть, как они влияют на производительность.

  4. Запуск нескольких повторных тестов:
    Рекомендуется выполнить несколько тестов и взять среднее значение. Это позволит получить более точные результаты и исключить случайные колебания.

Пример полного процесса тестирования

  1. Очистите кэш:

    echo 3 | sudo tee /proc/sys/vm/drop_caches
  2. Выполните тест dd:

    dd if=/tank/media/video/largefile.mp4 of=/dev/null bs=1M count=1000
  3. Повторите тест несколько раз, меняя размер блока:

    dd if=/tank/media/video/largefile.mp4 of=/dev/null bs=64K count=16000
    dd if=/tank/media/video/largefile.mp4 of=/dev/null bs=512K count=2000

Предостережения и рекомендации

  • Учтите, что dd достаточно чувствителен к различным условиям и может давать разные результаты в зависимости от текущей загруженности системы.
  • Для более продвинутого анализа вы можете рассмотреть использование специализированных инструментов для тестирования производительности, таких как fio или bonnie++, которые предоставляют более подробную информацию о производительности дисков.

Заключение

Бенчмаркинг с помощью dd — это полезный метод для быстрого определения пропускной способности дисков, но необходимо учитывать влияние кэширования и правильно выбирать параметры. Следуя рекомендациям из этого руководства, вы сможете получить более точные и информативные результаты при измерении пропускной способности вашего ZFS файловой системы.

Оцените материал
Добавить комментарий

Капча загружается...