Как проверить производительность жесткого диска (через терминал или через графический интерфейс). Скорость записи. Скорость чтения. Размер кэша и скорость. Случайная скорость
hard-drive
performance
Луис Альварадо
источник
источник
Ответы:
Терминальный метод
hdparm
это хорошее место для начала.sudo hdparm -v /dev/sda
также даст информацию.dd
даст вам информацию о скорости записи.Если на диске нет файловой системы (и только потом ), используйте
of=/dev/sda
.В противном случае, смонтируйте его в / tmp и запишите, затем удалите тестовый выходной файл.
Графический метод
gnome-disks
Как сравнить дисковый ввод-вывод
Статья
Есть ли что-то еще, что вы хотите?
источник
/dev/urandom
а также/dev/zero
вводить данныеdd
при тестировании SSD, так как сжимаемость данных может сильно повлиять на скорость записи./tmp
наши дни файловая система часто использует виртуальный диск. Таким образом, запись в/tmp
, кажется, проверяет вашу память, а не дисковую подсистему.Суоминен прав, мы должны использовать какую-то синхронизацию; но есть более простой метод, conv = fdatasync сделает эту работу:
источник
Я бы не рекомендовал использовать,
/dev/urandom
потому что это программное обеспечение и медленно, как свинья. Лучше взять кусок случайных данных на ramdisk. На жестком диске случайное тестирование не имеет значения, потому что каждый байт записывается как есть (также на ssd с dd). Но если мы протестируем дедуплицированный пул zfs с чистыми нулевыми или случайными данными, разница в производительности будет огромной.Другой точкой зрения должно быть включение времени синхронизации; все современные файловые системы используют кеширование файловых операций.
Чтобы реально измерить скорость диска, а не памяти, мы должны синхронизировать файловую систему, чтобы избавиться от эффекта кэширования. Это может быть легко сделано:
с этим методом вы получите вывод:
поэтому данные на диске составляют всего 104857600 / 0,441 = 237772335 B / s -> 237MB / s
Это на 100 МБ / с ниже, чем при кешировании.
Счастливый бенчмаркинг,
источник
Если вы хотите отслеживать скорость чтения и записи диска в режиме реального времени, вы можете использовать инструмент iotop .
Это полезно для получения точной информации о том, как диск работает для конкретного приложения или задачи. Вывод покажет вам скорость чтения / записи для каждого процесса и общую скорость чтения / записи для сервера, очень похожую на
top
.Чтобы установить iotop:
Чтобы запустить это:
источник
Если вы хотите точности, вы должны использовать
fio
. Требуется прочитать руководство (man fio
), но оно даст вам точные результаты. Обратите внимание, что для любой точности вам необходимо указать именно то, что вы хотите измерить. Некоторые примеры:Последовательная скорость чтения с большими блоками (это должно быть около числа, которое вы видите в технических характеристиках вашего привода):
Последовательная скорость ЗАПИСИ с большими блоками (это должно быть около числа, которое вы видите в технических характеристиках вашего привода):
Случайное чтение 4K QD1 (это число, которое действительно имеет значение для производительности в реальном мире, если вы не знаете наверняка лучше):
Смешанное случайное чтение и запись в формате 4K QD1 с синхронизацией (это наихудший номер, который вы когда-либо ожидали от своего накопителя, обычно менее 1% от чисел, указанных в спецификации):
Увеличьте
--size
аргумент, чтобы увеличить размер файла. Использование больших файлов может уменьшить количество получаемых вами данных в зависимости от технологии привода и прошивки. Небольшие файлы дадут «слишком хорошие» результаты для ротационных носителей, потому что считывающей головке не нужно слишком много двигаться. Если ваше устройство почти пусто, использование файла, достаточно большого, чтобы заполнить диск, приведет к худшему поведению в каждом тесте. В случае SSD размер файла не имеет большого значения.Однако обратите внимание, что для некоторых носителей размер файла не так важен, как общее количество байтов, записанных за короткий промежуток времени. Например, некоторые твердотельные накопители могут иметь значительно более высокую производительность с предварительно стертыми блоками или могут иметь небольшую область флэш-памяти SLC, которая используется в качестве кэша записи, и производительность изменяется после заполнения кэша SLC. В качестве другого примера, жесткие диски Seagate SMR имеют область кеша PMR объемом около 20 ГБ, которая имеет довольно высокую производительность, но как только она заполняется, запись непосредственно в область SMR может снизить производительность до 10% от исходной. И единственный способ увидеть это снижение производительности - сначала написать как можно быстрее 20+ ГБ. Конечно, все это зависит от вашей рабочей нагрузки: если ваш доступ для записи является пиковым с длительными задержками, которые позволяют устройству очищать внутренний кэш, более короткие последовательности тестов будут лучше отражать ваши реальные результаты. Если вам нужно сделать много ввода-вывода, вам нужно увеличить как
--io_size
и--runtime
параметры. Обратите внимание, что некоторые носители (например, большинство флеш-устройств) получат дополнительный износ в результате такого тестирования. По моему мнению, если какое-либо устройство достаточно плохое, чтобы не справиться с такого рода тестированием, его не следует использовать для хранения каких-либо ценных данных в любом случае.Кроме того, некоторые высококачественные SSD-устройства могут иметь еще более интеллектуальные алгоритмы выравнивания износа, в которых внутренний кэш-память SLC имеет достаточное количество смартов для замены данных на месте, которые перезаписываются во время теста, если он попадает в то же адресное пространство (то есть тестовый файл). меньше, чем общий кэш SLC). Для таких устройств размер файла снова начинает иметь значение. Если вам нужна реальная рабочая нагрузка, лучше всего протестировать с размерами файлов, которые вы действительно увидите в реальной жизни. В противном случае ваши цифры могут выглядеть слишком хорошо.
Обратите внимание, что
fio
при первом запуске будет создан необходимый временный файл. Он будет заполнен случайными данными, чтобы избежать получения слишком хороших чисел с устройств, которые обманывают, сжимая данные перед их записью в постоянное хранилище. Временный файл будет вызыватьсяfio-tempfile.dat
в приведенных выше примерах и храниться в текущем рабочем каталоге. Поэтому вам следует сначала перейти в каталог, который смонтирован на устройстве, которое вы хотите протестировать.Если у вас хороший SSD и вы хотите видеть еще большие цифры, увеличьте их
--numjobs
выше. Это определяет параллелизм для чтения и записи. Во всех приведенных выше примерахnumjobs
установлено,1
что тест относится к однопоточному чтению и записи процесса (возможно, с установленной очередьюiodepth
). Высокопроизводительные твердотельные накопители (например, Intel Optane) должны получать большие числа, даже не увеличиваяnumjobs
их много (например,4
должно быть достаточно, чтобы получить самые высокие номера спецификаций), но некоторые твердотельные накопители "Enterprise" требуют, чтобы32
-128
получить номера спецификаций, потому что внутренняя задержка этих устройства выше, но общая пропускная способность безумна.источник
max_sectors_kb
. Я изменил приведенные выше примеры команд, чтобы использовать размер блока 1 МБ, потому что это похоже на работу с реальным оборудованием. И я также проверил, чтоfsync
не имеет значения для чтения.iodepth
чтобы1
для произвольного доступа именно потому , что в реальном мире программы часто запускать алгоритмы / логики , которая не работает с глубиной выше чем 1. В результате, если такая глубина «слишком низко» устройство ввода / вывода плохо. Это правда, что некоторые SSD-устройства получат выгоду от глубины выше 32. Однако можете ли вы указать на любую реальную рабочую нагрузку, которая требует доступа для чтения и способна поддерживать iodepth выше 32? TL; DR: если вы хотите воспроизвести какое-то безумно высокое число тестов чтения с устройством с высокой задержкой, используйте,iodepth=256 --numjobs=4
но никогда не ожидайте увидеть такие числа по-настоящему.bonnie ++ - лучшая утилита для тестирования производительности, которую я знаю для linux.
(В настоящее время я готовлю linux livecd для работы с bonnie ++, чтобы протестировать наш Windows-компьютер с ним!)
Он заботится о кэшировании, синхронизации, случайных данных, случайном расположении на диске, небольших размерах обновлений, больших обновлениях, чтениях, записи и т. Д. Сравнение usbkey, жесткого диска (поворотного), твердотельного накопителя и оперативной памяти Файловая система может быть очень информативной для новичка.
Я понятия не имею, включен ли он в Ubuntu, но вы можете легко скомпилировать его из исходного кода.
http://www.coker.com.au/bonnie++/
источник
Скорость письма
Размер блока на самом деле довольно большой. Вы можете попробовать с меньшими размерами, такими как 64 КБ или даже 4 КБ.
Скорость чтения
Запустите следующую команду, чтобы очистить кэш памяти
Теперь прочитайте файл, который был создан в тесте записи:
источник
некоторые советы о том, как использовать Бонни ++
Немного больше на: SIMPLE BONNIE ++ EXAMPLE .
источник
F3 - Борьба с мошенничеством
Проверьте целостность, обнаружите фальшивые флешки и протестируйте производительность - все три в одном кадре
Подробнее об этом ответе .
источник