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

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

252 голоса | спросил Luis Alvarado 12 MonEurope/Moscow2011-12-12T04:22:57+04:00Europe/Moscow12bEurope/MoscowMon, 12 Dec 2011 04:22:57 +0400 2011, 04:22:57

8 ответов


329

Терминальный метод

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 /output

10240 + 0 записей в
10240 + 0 записей
83886080 байт (84 МБ) скопировано, 1.08009 с, 77,7 МБ /с
 

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

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

test

Как тестировать диск ввода /вывода

Статья

Есть ли что-то еще, что вам нужно?

ответил Panther 12 MonEurope/Moscow2011-12-12T04:34:44+04:00Europe/Moscow12bEurope/MoscowMon, 12 Dec 2011 04:34:44 +0400 2011, 04:34:44
70

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

  dd if = /dev /zero of = /tmp /output conv = fdatasync bs = 384k count = 1k; rm -f /tmp /output
1024 + 0 записывается в
1024 + 0 записывает
402653184 байта (403 МБ) скопировано, 3.19232 с, 126 МБ /с
 
ответил Tele 18 PM000000100000000531 2013, 22:31:05
41

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

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

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

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

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

  sync; time sh -c "dd if = /dev /zero of = testfile bs = 100k count = 1k & amp; sync"; rm testfile
1024 + 0 записей в
1024 + 0 записывает
104857600 байт (105 МБ) скопировано, 0.270684 с, 387 МБ /с

реальный 0m0.441s
пользователь 0m0.004s
sys 0m0.124s
 

, поэтому диск datarate равен только 104857600 /0.441 = 237772335 B /s -> 237MB /с

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

Счастливый бенчмаркинг,

ответил Pasi Suominen 7 FriEurope/Moscow2012-12-07T03:18:05+04:00Europe/Moscow12bEurope/MoscowFri, 07 Dec 2012 03:18:05 +0400 2012, 03:18:05
29

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

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

Для установки iotop:

  sudo apt-get install iotop
 

Чтобы запустить его:

  sudo iotop
 
ответил Lars 17 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 17 Sep 2013 18:24:44 +0400 2013, 18:24:44
22

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

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

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

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

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

ответил Corto 3 FebruaryEurope/MoscowbMon, 03 Feb 2014 20:13:15 +0400000000pmMon, 03 Feb 2014 20:13:15 +040014 2014, 20:13:15
15

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

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

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


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

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

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

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

  $ dd if =. /largefile of = /dev /null bs = 4k
165118 + 0 записей в
165118 + 0 записей
676323328 байт (676 МБ) скопировано, 3,0114 с, 225 МБ /с
 
ответил Limon Monte 6 Mayam16 2016, 01:12:32
12

некоторые подсказки о том, как использовать 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 TEST -f -b -u james
 

Еще немного: ПРОСТОЙ БОННИЙ ++ ПРИМЕР .

ответил nyxee 28 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 28 Sep 2015 22:02:09 +0300 2015, 22:02:09
8

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

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

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

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

  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
 

Случайный 4K читать 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-10% от числа, указанного в спецификации):

  fio --name TEST --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 размер файла не имеет значения.

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

ответил Mikko Rantalainen 1 Jpm1000000pmMon, 01 Jan 2018 21:14:49 +030018 2018, 21:14:49

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132