(Это очень популярный вопрос - с его вариациями можно ознакомиться на https://stackoverflow.com/q/1198691 , https://serverfault.com/q/219739/203726 и https://askubuntu.com/q/87035/740413 )
Существуют ли лучшие методы [чем dd] для [эталонных дисков]?
Да, но их выполнение займет больше времени и потребует знаний о том, как интерпретировать результаты - нет ни одного числа, которое бы рассказало вам все за один раз, потому что на тип теста, который вы должны выполнить, влияют следующие факторы:
- Вас интересует производительность ввода/вывода, которая является случайной, последовательной или некоторой комбинацией двух?
- Вы читаете с диска или записываете на него (или некоторой комбинации двух)?
- Вас беспокоит латентность, пропускная способность или оба?
- Пытаетесь ли вы понять, как работают разные части одного и того же жесткого диска (как правило, они работают на скорости, которая ближе к центру вращающихся дисков)?
- Вас интересует, как будет работать данная файловая система при использовании вашего диска, или вы хотите, чтобы результаты были ближе к исходной производительности диска, выполняя ввод/вывод непосредственно к блочному устройству?
- Вас интересует, как выполняется ввод/вывод определенного размера?
- Вы выполняете ввод/вывод синхронно или асинхронно?
- Сколько входов/выходов вы отправляете (отправляете слишком мало данных неправильным способом, и все входы/выходы могут быть кэшированы, поэтому вы завершаете проверку скорости вашей оперативной памяти, а не скорости диска)?
- Насколько сжимаемым является содержимое записываемых вами данных (например, только нулевые данные являются высоко сжимаемыми, а некоторые файловые системы/диски даже имеют специальный быстрый путь для нулевых данных, что приводит к цифрам, которые недоступны для другого содержимого)?
И так далее.
Вот краткий список инструментов, которые легче всего запускать сверху и сложнее/глубже/глубже снизу:
- dd (последовательное чтение или запись, только показывает пропускную способность, может быть настроено на использование файловой системы или блочного устройства, может быть настроено на обход блочного кэша/подождать, пока ввод/вывод будет действительно завершен)
- hdparm (только последовательное чтение, только показывает пропускную способность, никогда не использует файловую систему, может быть настроено на обход блочного кэша, тест кэша перечитывает только стартовые 2 МБайта)
- GNOME Disk Utility (легко запускается, никогда не использует файловую систему, графически, но требует полной установки GNOME, дает задержки и номера пропускной способности для различных типов ввода/вывода, но рабочая нагрузка записи на самом деле делает чтение/запись/синхронизацию на размер примера).
- fio (может делать практически всё, что угодно и даёт подробные результаты, но требует конфигурации и понимания того, как интерпретировать указанные результаты). Вот что говорит об этом Лайнус:
Грег - достань код FIO Йенса. Он делает всё правильно, в том числе записывает фактическое псевдослучайное содержимое, которое показывает, выполняет ли диск некоторую "дедупликацию" (так же известную как "оптимизация под бенчмарки"):
.
[ https://github.com/axboe/fio/ ]
Все остальное подозрительно - забудьте о Бонни или других традиционных инструментах.
Источник: комментарий, оставленный на Google Plus Грегу Кроа...Хартман Лайнуса Торвальдса.
.
AnthonyK
23.05.2014, 02:47
Ссылка