Bechmarking SD-карты с помощью инструмента iozone
Я пытаюсь получить производительность подключенной SD-карты к своей плате, и я использую инструмент Iozone, но я получаю потрясающие результаты:
команда:
# mount /dev/mmcblk2p2 /mnt/SD
# cd /mnt/SD
# iozone -a -s 10M -r 5K -w -e
Результаты:
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
10240 5 4283 4136 68681 378738 337652 3871 133905 96074 216912 4122 5013 364024 376181
результаты в килобайтах, это означает, что скорость случайного чтения составляет 300 МБ / с?? моя карта 4 класса обычно скорость записи составляет 4 МБ / с, и скорость чтения не очень отличается от этого значения??
2 ответа
iozone -a -s 10M -r 5K -w -e
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
10240 5 4283 4136 68681 378738 337652 3871 133905 96074 216912 4122 5013 364024 376181
Да, ваши результаты в килобайтах / с (КБ / с; не используйте -s
тихий вариант и iozone скажет это Output is in kBytes/sec
) и да, было 380 МБ / с для скорости "перечитывания" (и 200 МБ / с для чтения после перечитывания?). Но перечитать может не скорость вашего блочного устройства (SD-карта /HDD/SSD), если ваш тестовый набор (10 МБ) меньше вашего объема ОЗУ (так оно и есть).
Большинство ОС (и Linux тоже) имеют программный кэш в оперативной памяти для файловых систем и блочных устройств. Когда вы обращаетесь к некоторому блоку в первый раз (с момента загрузки), он будет считан с устройства и сохранен в Page Cache ОС. Следующий доступ (чтение) этого блока будет осуществляться непосредственно из ОЗУ, а не с самого устройства (если только опция O_DIRECT не использовалась в операции ввода-вывода, -I
вариант iozone).
Итак, ваш тестовый прогон неверен. Перед использованием прочитайте man-страницу iozone: http://linux.die.net/man/1/iozone и попробуйте больший набор тестов (гигабайт) или используйте -I
обойти кеш страниц.
Вот результаты, когда я использую опцию -I
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
10240 1024 2356 2950 19693 20865 20833 2095 20111 1734 14375 2875 3566 386809 389443
write seq : 2,3 Mo/s
read seq: 19,2 Mo/s
write rand: 2 Mo/s
read rand: 20 Mo/s
read blk 20 Mo/s
почему скорость чтения все еще так высока?