Как проверить работоспособность жесткого диска

Как проверить производительность жесткого диска (через терминал или графический интерфейс). Скорость записи. Скорость чтения. Размер кеша и скорость. Случайная скорость.


Метод терминала

hdparm — хорошее место для начала.

  sudo hdparm -Tt/dev/sda/dev/sda: Время чтения из кеша: 12540 МБ за 2,00 секунды = 6277,67 МБ/с Время чтения с буферизованного диска: 234 МБ за 3,00 секунды = 77,98 МБ/с   

sudo hdparm -v/dev/sda также предоставит информацию.

dd предоставит вам информацию о скорости записи.

Если на диске нет файловой системы (и только ), используйте of =/dev/sda .

В противном случае смонтируйте его в/tmp и напишите, а затем удалите тестовый выходной файл.

  dd if =/dev/zero of =/tmp /output bs = 8k count = 10k;  rm -f/tmp/output10240 + 0 записей in10240 + 0 записей out83886080 байт (84 МБ) скопировано, 1.08009 с, 77,7 МБ/с  

Графический метод

  1. Перейдите в раздел Система -> Администрирование -> Дисковая утилита.
    • Или же запустите дисковую утилиту Gnome из командной строки, запустив gnome-disks
  2. Выберите жесткий диск на левой панели.
  3. Теперь нажмите кнопку «Benchmark — Measure Drive Performance» справа. панель.
  4. Откроется новое окно с графиками. Вы найдете и две кнопки. Один предназначен для «Запуск теста только для чтения», а другой — «Запуск теста чтения/записи». Когда вы нажимаете любую кнопку, начинается тестирование жесткого диска.

Как протестировать дисковый ввод-вывод

Статья

Хотите чего-нибудь еще?


Суоминен прав, мы должны использовать какую-то синхронизацию; но есть более простой метод, conv = fdatasync выполнит эту работу:

  dd if =/dev/zero of =/tmp/output conv = fdatasync bs = 384k count =  1к;  rm -f/tmp/output1024 + 0 записей in1024 + 0 записей out402653184 байта (403 МБ) скопировано, 3,19232 с, 126 МБ/с  

6


Если вам нужна точность, вы должны использовать fio . Для этого нужно прочитать руководство ( man fio ), но оно даст вам точные результаты. Обратите внимание, что для любой точности вам нужно точно указать, что вы хотите измерить. Некоторые примеры:

Скорость последовательного чтения с большими блоками (это должно быть рядом с числом, которое вы видите в спецификациях для вашего привода):

  fio --name TEST --eta-newline = 5s --filename = fio-tempfile. dat --rw = чтение --size = 500m --io_size = 10g --blocksize = 1024k --ioengine = libaio --fsync = 10000 --iodepth = 32 --direct = 1 --numjobs = 1 --runtime =  60 --group_reporting  

Скорость последовательной ЗАПИСИ с большими блоками (это должно быть около числа, которое вы видите в спецификациях для вашего накопителя):

  fio --name TEST --eta-newline = 5s --filename = fio-tempfile.dat --rw = write --size = 500m --io_size = 10g -  -blocksize = 1024k --ioengine = libaio --fsync = 10000 --iodepth = 32 --direct = 1 --numjobs = 1 --runtime = 60 --group_reporting  

Случайное чтение 4К QD1 (это число, которое действительно имеет значение для реальной производительности, если вы не знаете наверняка лучше):

  fio -  name TEST --eta-newline = 5s --filename = fio-tempfile.dat --rw = randread --size = 500m --io_size = 10g --blocksize = 4k --ioengine = libaio --fsync = 1 -  iodepth = 1 --direct = 1 --numjobs = 1 --runtime = 60 --group_reporting  

Смешанное случайное чтение 4K и запись QD1 с синхронизацией (это наихудшее число, которое вы когда-либо ожидали от вашего диска, обычно менее 1% чисел, перечисленных в спецификации):

  fio --name  ТЕСТ --eta-newline = 5s --filename = fio-tempfile.dat --rw = randrw --size = 500m --io_size = 10g --blocksize = 4k --ioengine = libaio --fsync = 1 --iodepth  = 1 --direct = 1 --numjobs = 1 --runtime = 60 --group_reporting  

Увеличьте аргумент - size , чтобы увеличить размер файла. Использование файлов большего размера может уменьшить получаемые числа в зависимости от технологии накопителя и прошивки. Маленькие файлы дадут «слишком хорошие» результаты для вращающихся носителей, потому что считывающей головке не нужно так сильно перемещаться. Если ваше устройство почти пусто, использование файла, достаточно большого, чтобы почти заполнить диск, даст вам худшее поведение для каждого теста. В случае SSD размер файла не имеет такого большого значения.

Однако обратите внимание, что для некоторых носителей размер файла не так важен, как общее количество байтов, записанных за короткий период времени . Например, некоторые твердотельные накопители имеют значительно более высокую производительность с предварительно удаленными блоками или могут иметь небольшую область флэш-памяти SLC, которая используется в качестве кеша записи, и производительность изменяется после заполнения кеша SLC (например, серия Samsung EVO с кешем SLC 20-50 ГБ) . В качестве другого примера, жесткие диски Seagate SMR имеют около 20 ГБ кэш-памяти PMR, которая имеет довольно высокую производительность, но после ее заполнения запись непосредственно в область SMR может снизить производительность до 10% от исходной. И единственный способ увидеть это снижение производительности — это сначала записать 20+ ГБ как можно быстрее и сразу после этого продолжить настоящий тест. Конечно, все это зависит от вашей рабочей нагрузки: если ваш доступ для записи прерывистый с долгими задержками, которые позволяют устройству очистить внутренний кеш, более короткие тестовые последовательности будут лучше отражать вашу реальную производительность. Если вам нужно выполнять много операций ввода-вывода, вам нужно увеличить параметры - io_size и - runtime .. Обратите внимание, что некоторые носители (например, большинство дешевых флеш-устройств) пострадают от такого тестирования, потому что флеш-чипы достаточно плохи, чтобы изнашиваться очень быстро. На мой взгляд, если какое-либо устройство достаточно плохое, чтобы не проводить такого рода тестирование, его ни в коем случае не следует использовать для хранения каких-либо ценных данных. Тем не менее, не повторяйте большие тесты записи 1000 раз, потому что все флеш-ячейки будут иметь некоторый уровень износа при записи.

Кроме того, некоторые высококачественные SSD-устройства могут иметь еще более интеллектуальное выравнивание износа. алгоритмы, в которых внутренний кэш SLC имеет достаточно умных элементов для замены данных на месте, которые перезаписываются во время теста, если они попадают в то же адресное пространство (то есть, если тестовый файл меньше, чем общий кеш SLC, устройство всегда записывает только в кеш SLC ). Для таких устройств размер файла снова начинает иметь значение. Если вам нужна реальная рабочая нагрузка, лучше всего протестировать с размерами файлов, которые вы действительно увидите в реальной жизни. В противном случае ваши числа могут выглядеть слишком хорошо.

Обратите внимание, что fio создаст требуемый временный файл при первом запуске. Он будет заполнен случайными данными, чтобы избежать получения слишком хороших чисел от устройств, которые пытаются обмануть в тестах путем сжатия данных перед их записью в постоянное хранилище. Временный файл будет называться fio-tempfile.dat в приведенных выше примерах и храниться в текущем рабочем каталоге. Поэтому сначала вам следует перейти в каталог, который смонтирован на устройстве, которое вы хотите протестировать. fio также поддерживает использование прямого носителя в качестве тестовой цели, но я определенно рекомендую прочитать страницу руководства, прежде чем пытаться это сделать, потому что опечатка может перезаписать всю вашу операционную систему, когда вы используете прямой доступ к носителю (например, запись на устройство с ОС вместо тестового устройства).

Если у вас хороший твердотельный накопитель и вы хотите видеть еще более высокие значения, увеличьте значение - numjobs выше. Это определяет параллелизм для чтения и записи. Во всех приведенных выше примерах для numjobs установлено значение 1 , поэтому тест посвящен чтению и записи однопоточного процесса (возможно, с очередью, установленной с помощью iodepth ). Высококачественные твердотельные накопители (например, Intel Optane 905p) должны получать большие числа даже без значительного увеличения numjobs (например, 4 должно быть достаточно, чтобы получить самые высокие номера спецификаций) но для некоторых «корпоративных» SSD требуется диапазон 32 128 для получения номеров спецификаций, поскольку внутренняя задержка этих устройств выше, но общая пропускная способность безумие.

26


I не рекомендовал бы использовать /dev/urandom , потому что он программный и медленный как свинья. Лучше взять кусок случайных данных на ramdisk. При тестировании жесткого диска случайный выбор не имеет значения, потому что каждый байт записывается как есть (также на ssd с dd). Но если мы протестируем удаленный пул zfs с чистыми нулевыми или случайными данными, будет огромная разница в производительности.

Другая точка зрения должна заключаться в включении времени синхронизации; все современные файловые системы используют кэширование для файловых операций.

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

  time sh -c "dd if =/dev/zero of = testfile bs = 100k count = 1k && sync"  

с помощью этого метода вы получите вывод:

  sync;  time sh -c "dd if =/dev/zero of = testfile bs = 100k count = 1k && sync";  rm testfile 1024 + 0 записей в 1024 + 0 записей из 104857600 байт (105 МБ) скопировано, 0,270684 с, 387 МБ/sreal 0m0.441suser 0m0.004ssys 0m0.124s  

, поэтому диск объем данных составляет всего 104857600/0,441 = 237772335 бит/с -> 237 МБ/с

Это более чем на 100 МБ/с ниже, чем при кэшировании.

Удачного тестирования,

1


Если вы хотите контролировать скорость чтения и записи диска в реальном -time вы можете использовать инструмент iotop.

Это полезно для получения информации о том, как диск работает для конкретного приложения или рабочей нагрузки. Вывод покажет вам скорость чтения/записи для каждого процесса и общую скорость чтения/записи для сервера, аналогично top .

Установить iotop :

  sudo apt-get install iotop  

Запустить:

  sudo iotop  

Этот инструмент помогает понять, как диск работает при определенной рабочей нагрузке, по сравнению с более общими и теоретическими тестами.


bonnie ++ — это лучшая тестовая утилита, которую я знаю для Linux.

(в настоящее время я готовлю livecd linux для работы с bonnie ++ на нем, чтобы протестировать с ним нашу машину на базе Windows!)

Он заботится о кешировании, синхронизация, случайные данные, случайное расположение на диске, обновления небольшого размера, большие обновления, чтение, запись и т. д. Сравнение usbkey, жесткого диска (поворотного), твердотельного накопителя и файловой системы на основе RAM может быть очень информативным для ne wbie.

Понятия не имею, включен ли он в Ubuntu, но вы можете легко скомпилировать его из исходников.

http://www.coker.com. au/bonnie ++/

1


Скорость записи

  $ dd if =/dev/zero of =./largefile bs = 1M count = 1024 · 1024 + 0 записей в 1024 +  0 записей из 1073741824 байта (1,1 ГБ) скопировано, 4,82364 с, 223 МБ/с  

Размер блока на самом деле довольно велик. Вы можете попробовать с меньшими размерами, например 64 КБ или даже 4 КБ..


Скорость чтения

Выполните следующую команду, чтобы очистить кеш памяти

  $ sudo sh -c "sync && echo 3>/proc/sys/vm/drop_caches"  

Теперь прочтите файл, который был создан в тесте записи :

  $ dd if =./largefile of =/dev/null bs = 4k165118 + 0 записей in165118 + 0 записей out676323328 байт (676 МБ) скопировано, 3,0114 с, 225  МБ/с  

1


несколько советов о том, как используйте bonnie ++

  bonnie ++ -d [TEST_LOCATION] -s [TEST_SIZE] -n 0 -m [TEST_NAME] -f -b -u [TEST_USER] bonnie ++ -d/tmp -  s 4G -n 0 -m ТЕСТ -f -b -u james  

Еще немного в: ПРИМЕР ПРОСТОГО BONNIE ++.

Оцените статью
motary.ru
Добавить комментарий