LINUX.ORG.RU
ФорумAdmin

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

 , , ,


1

1

В виртуалке крутится сервак, хочу перенести его на SSD, вот что намерил сейчас:

root@PostgreSQL:/home/user# dd if=/dev/zero of=./largefile bs=4k count=1024
1024+0 записей получено
1024+0 записей отправлено
4194304 байт (4,2 MB, 4,0 MiB) скопирован, 0,00418696 s, 1,0 GB/s
root@PostgreSQL:/home/user# hdparm -Tt /dev/sdb1

/dev/sdb1:
 Timing cached reads:   13910 MB in  2.00 seconds = 6959.06 MB/sec
 Timing buffered disk reads: 786 MB in  3.00 seconds = 261.71 MB/sec
root@PostgreSQL:/home/user# dd if=/dev/zero of=./largefile bs=1024k count=1024
1024+0 записей получено
1024+0 записей отправлено
1073741824 байт (1,1 GB, 1,0 GiB) скопирован, 4,54418 s, 236 MB/s

Цифры заоблачные, как более реальный результат получить?

Хочу узнать насколько SSD будет быстрее механического рейда...



Последнее исправление: Shulman (всего исправлений: 3)

есть старая утилита, которая меряет линейную скорость и iops, забыл блин название, кто знает, напомните!

anonymous
()
Ответ на: комментарий от anonymous

а не, наврал, она просто меряет скорость случайного доступа

anonymous
()

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

Линейная запись:
dd if=/dev/urandom of=./largefile bs=1M count=1024 oflag=direct

Линейное чтение:
dd if=./largefile of=/dev/null bs=1M count=1024 iflag=direct

chaos_dremel ★★
()
Последнее исправление: chaos_dremel (всего исправлений: 1)
Ответ на: комментарий от chaos_dremel

Топик стартер только собирается вроде переходить с рейда на ssd.

1. urandom потребляет cpu, здесь может быть bottleneck.

2. Про куски в 4k согласен.

3. hdparm менее предпочтителен особенно под VM, лучше dd.

dd if=/dev/zero of=./largefile bs=1024k count=1024 - нормальный вариант. У меня на ssd кстати выдаёт 249 MB/s. Но SSD старый.

Mike_RM
()

Также в SSD важны IOPS'ы, а не линейные чтения/запись. Там где у HDD 150-200 IOPS максимум, у SSD 1000 IOPS минимум и с перекурами. Поэтому лучше мерять случайные чтение/запись через FIO или вообще pgbench погонять.

chaos_dremel ★★
()
Ответ на: комментарий от chaos_dremel

Да, если кусок данных не в разы больше оперативки. А с флагами надо ещё и bs подобрать правильно. Я обычно колхозю такие скрипты:

TARGET=/dev/sdЁ
for p in `seq 9 20`; do
  bs=$((2**p))
  echo "====== bs=2^$p=$bs ======"
  dd if=/dev/urandom of=$TARGET count=10k bs=$bs oflag=direct
done

Да, надо убедиться, что urandom быстрее, чем SSD. Если нет, то нагенерить в tmpfs заранее.

legolegs ★★★★★
()

Для этих целей придумали intel iometer.

anonymous
()

SSD - 30MB/s
HDD - 0,5 MB/s

Deleted
()

Хочу узнать насколько SSD будет быстрее механического рейда...

В далёком 2009м году, заменив raid10 из 8 sas15k на одиночный Intel X25-E 64GB (да, он тогда стоил 1000 баксов), получили ускорение работы серверной аппликухи от 8 до 20 раз.

Deleted
()

fio, bonnie++ и т.п. тебе в помощь.

Deleted
()

Микроскопом.

anonymous
()
Ответ на: комментарий от Deleted

какие то заоблачные цифры получаются

Shulman
() автор топика
Ответ на: комментарий от Shulman

можешь не заниматься ерундой

БД требует иопсы, а у SSD они на 2 порядка выше любого рейда из HDD

узкое место у тебя будет в vio, если не хватит иопсов придется прокидывать контроллер с этим SSD внутрь виртуалки.

Minona ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.