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

почему скорость чтения все еще так высока?

Другие вопросы по тегам