Я хочу сравнить ssd (возможно, с зашифрованными файловыми системами) и сравнить его с тестами, выполненными crystaldiskmark в windows.
Итак, как я могу измерить примерно то же самое, что и crystaldiskmark?
Для первого ряда (Seq) я думаю, что я мог бы сделать что-то вроде
LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024
Но я не уверен насчет dd
параметров.
Для произвольных 512КБ, 4КБ, 4КБ (Глубина очереди = 32) скоростных тестов чтения / записи, я не знаю, как воспроизвести измерения в Linux? Так как я могу это сделать?
Для тестирования скоростей чтения что-то подобное sudo hdparm -Tt /dev/sda
не имеет смысла для меня, так как я хочу, например, тестировать что-то вроде encfs
монтирования.
редактировать
@Alko, @iain
Возможно, мне следует написать кое-что о мотивации этого вопроса: я пытаюсь сравнить мой ssd и сравнить некоторые решения для шифрования. Но это другой вопрос ( Лучший способ сравнить различные решения для шифрования в моей системе ). Во время серфинга в Интернете о ssd и бенчмаркингах я часто видел, как пользователи публикуют свои результаты CrystelDiskMark на форумах. Так что это единственная мотивация для вопроса. Я просто хочу сделать то же самое на Linux. Для моего конкретного теста см. Мой другой вопрос.
источник
Ответы:
Я бы сказал, что у fio не будет проблем с производством этих нагрузок. Обратите внимание, что, несмотря на свое название, CrystalDiskMark на самом деле является эталоном файловой системы на конкретном диске - он не может выполнять необработанный ввод-вывод для одного диска. Как таковой, он всегда будет иметь накладные расходы на файловую систему (не обязательно плохо, но что-то, о чем следует знать, например, потому что сравниваемые файловые системы могут не совпадать).
Пример, основанный на репликации выходных данных на скриншоте выше, дополнен информацией из руководства CrystalDiskMark (это не завершено, но должно дать общее представление):
БУДЬТЕ ОСТОРОЖНЫ - этот пример навсегда уничтожает данные в
/mnt/fs/fiotest.tmp
!Список параметров fio можно увидеть по адресу http://fio.readthedocs.io/en/latest/fio_doc.html .
источник
fio
для Windows.Я создал скрипт, который пытается повторить поведение crystaldiskmark с fio. Скрипт выполняет все тесты, доступные в различных версиях crystaldiskmark вплоть до crystaldiskmark 6, включая тесты 512K и 4KQ8T8.
Сценарий зависит от fio и df . Если вы не хотите устанавливать df, удалите строки с 19 по 21 (скрипт больше не будет отображать, какой диск тестируется) или попробуйте модифицированную версию с комментария . (Может также решить другие возможные проблемы)
Который будет выводить результаты, как это:
(Результаты имеют цветовую кодировку, чтобы удалить цветовую кодировку, удалите все экземпляры
\033[x;xxm
(где x - число) из команды echo в нижней части скрипта.)Скрипт при запуске без аргументов проверит скорость вашего домашнего диска / раздела. Вы также можете ввести путь к каталогу на другом жестком диске, если вы хотите проверить это вместо этого. При запуске сценарий создает скрытые временные файлы в целевом каталоге, которые он очищает после завершения работы (.fiomark.tmp и .fiomark.txt)
Вы не можете видеть результаты теста по мере их завершения, но если вы отмените команду во время ее выполнения до того, как она завершит все тесты, вы увидите результаты завершенных тестов, а временные файлы также будут удалены впоследствии.
После некоторых исследований я обнаружил, что результаты теста CrystalDiskmark для той же модели диска, что и у меня, по-видимому, относительно близко соответствуют результатам этого теста FIO, по крайней мере, с первого взгляда. Поскольку у меня нет установки Windows, я не могу проверить, насколько точно они действительно находятся на одном диске.
Обратите внимание, что иногда вы можете слегка отклониться от результатов, особенно если вы выполняете какие-либо действия в фоновом режиме во время выполнения тестов, поэтому рекомендуется проводить тест два раза подряд для сравнения результатов.
Эти тесты занимают много времени. Настройки по умолчанию в скрипте в настоящее время подходят для обычного (SATA) SSD.
Рекомендуемая настройка размера для разных дисков:
High End NVME обычно имеет скорость чтения ~ 2 ГБ / с (Intel Optane и Samsung 960 EVO являются примерами; но в последнем случае я бы рекомендовал 2048 вместо этого из-за более медленных скоростей 4 КБ.), Low-Mid End может иметь где-то между Скорость чтения ~ 500-1800МБ / с.
Основная причина, по которой эти размеры должны быть скорректированы, заключается в том, сколько времени потребуется для проведения тестов, например, для более старых / более слабых жестких дисков скорость чтения может составлять всего 0,4 МБ / с и 4 КБ. Вы пытаетесь подождать 5 циклов по 1 ГБ на этой скорости, другие тесты по 4 КБ обычно имеют скорость около 1 МБ / с. У нас их 6 Каждый из которых работает по 5 циклов, ждете ли вы 30 ГБ данных для передачи на этих скоростях? Или вы хотите уменьшить это значение до 7,5 ГБ данных (при 256 МБ / с это 2-3-часовой тест)
Конечно, идеальный метод для решения этой ситуации - запуск последовательных тестов и тестов по 512 Кб отдельно от тестов по 4 Кб (поэтому выполните последовательные тесты и тесты по 512 Кб с чем-то вроде, скажем, 512 м, а затем выполните тесты по 4 Кб на 32 м)
Более поздние модели жестких дисков более высокого класса и могут получить гораздо лучшие результаты, чем это.
И там у вас есть это. Наслаждайтесь!
источник
--output-format=json
анализируйте вывод fio, читаемый человеком, - используйте и анализируйте JSON. Вывод Fio, читаемый человеком, не предназначен для машин и он не стабилен между версиями fio. Смотрите это видео на YouTube о том, как проверка результатов работы fio привела к нежелательному результату )Вы можете использовать
iozone
иbonnie
. Они могут делать то же, что и метка кристалла, и многое другое.Я лично
iozone
много использовал при тестировании и стресс-тестировании устройств от персональных компьютеров до корпоративных систем хранения. Он имеет автоматический режим, который делает все, но вы можете настроить его под свои нужды.источник
Я не уверен, что различные более глубокие тесты имеют какой-то реальный смысл при рассмотрении того, что вы делаете в деталях.
Такие параметры, как размер блока и глубина очереди, являются параметрами для управления низкоуровневыми параметрами ввода / вывода интерфейса ATA, на котором находится SSD.
Это все хорошо, когда вы просто выполняете какой-то базовый тест на жестком диске, например, в большом файле в простой многораздельной файловой системе.
Как только вы начинаете говорить о бенчмаркинге encfs, эти параметры больше не применяются к вашей файловой системе, файловая система - это просто интерфейс с чем-то еще, что в конечном итоге возвращается к файловой системе, которая подключается к диску.
Я думаю, что было бы полезно понять, что именно вы пытаетесь измерить, потому что здесь есть два фактора - скорость ввода-вывода на сыром диске, которую вы можете проверить, синхронизируя различные команды DD (приведите примеры, если это то, что вы хотите) / без / encfs, иначе процесс будет ограничен ЦП шифрованием, а вы пытаетесь проверить относительную пропускную способность алгоритма шифрования. В этом случае параметры для глубины очереди и т. Д. Не особенно актуальны.
В обоих случаях, команда timed DD даст вам базовую статистику пропускной способности, которую вы ищете, но вы должны учитывать, что вы собираетесь измерять, и соответствующие параметры для этого.
Эта ссылка, по-видимому, является хорошим руководством по тестированию скорости диска с использованием синхронизированных DD-команд, включая необходимый охват «победы над буферами / кешем» и так далее. Скорее всего, это предоставит вам необходимую информацию. Решите, что вас больше интересует, производительность диска или производительность шифрования, одно из двух будет узким местом, и настройка без узкого места ничего не даст.
источник