Скорость записи на SD-карту в 14 раз ниже скорости чтения

11

Сегодня вечером я записывал на SD-карту из внутреннего устройства чтения карт Mac Book Air, и заявленная производительность составляла 1,4 МБ / с. Позже я прочитал, проверил его на Raspberry Pi и получил 20 МБ / с. Это карта класса 6, и ни одна из этих фигур не кажется реалистичной!

Я использую ddдля моих тестов. Результаты одинаковых тестов чтения и записи на обоих компьютерах:

Raspberry Pi: чтение 20 МБ / с. Запись 11 МБ / с ...
Воздух: чтение 3 МБ / с. Запись 1,4 МБ / с

Используя эти команды:

Написать тест:

sudo dd if=/dev/zero of=/dev/mmcblk0p3 bs=1M count=400

Читать тест:

sudo dd of=/dev/null if=/dev/mmcblk0p3 bs=1M count=400

Это указывает на то, что обнаруженная аномалия была фактически паршивой работой встроенного устройства чтения карт Mac Book Air SD! Это делает для очень медленного создания изображения.

ScrollerBlaster
источник
Sandisk утверждает, что скорость чтения карт класса 6 составляет 20 Мбит / с, хотя Kingston утверждает, что скорость чтения карт класса 6 составляет 15 Мбит / с. Я не знаю, есть ли в Mac Book встроенный считыватель SD-карт или нет. Но для внешних версий (USB 2.0) качество считывателя SD-карт (какие чипы использовались и т. Д.) Также имеет большое значение для общей производительности. Но чтение всегда быстрее на этих устройствах, чем написание.
Икку
Спасибо. Это интегрировано. Довольно хорошая производительность чтения. Действительно плохая производительность записи.
ScrollerBlaster

Ответы:

6

Рейтинг класса скорости SD-карты определяет минимальную производительность чтения / записи, которую карта должна иметь при записи видео. Номер класса - это нижний предел скорости в МБ / с, который вы должны получить при использовании карты.

Имейте в виду, однако, что чтение с карты обычно намного проще (и, следовательно, быстрее), чем запись. Вот почему обычная карта класса 6 будет иметь скорость записи 6 МБ / с и скорость чтения 15-20 МБ / с (но гарантируется только 6 МБ / с).

Скорость чтения / записи может быть ограничена не только картой, но и множеством различных факторов, как аппаратных, так и программных. Особенно это может быть ограничено некоторыми проблемами с устройством чтения / записи карт.

Таким образом, в вашей ситуации кажется, что у вашей карты действительно плохая производительность на Mac Book Air, а у RaspberryPi - надлежащая (и реалистичная) производительность. Однако мы не можем быть уверены, что вы протестировали скорость записи на Mac Book и скорость чтения на RaspberryPi, и, как я упоминал ранее, они несопоставимы. Также сложно комментировать, почему вы получаете такие результаты, так как вы не указали, как вы тестируете эти скорости.

Кшиштоф Адамски
источник
Мне нужно проверить чтение и запись на обеих платформах. Я используюdd
ScrollerBlaster
@ScrollerBlaster: Вы не можете сравнивать скорость чтения и записи друг с другом. Аналогично, при тестировании чего угодно, хорошее правило - менять только одну вещь за раз. Но вы изменили все (ОС, хост-компьютер, кард-ридер), но одну вещь (SD-карту) в вашей настройке, так что это не даст вам значимых результатов.
Кшиштоф Адамски
Я сказал, что буду сравнивать чтение с записью на той же ОС. У вас есть проблемы с этим подходом?
ScrollerBlaster
@ScrollerBlaster: Нет, совсем нет. Я просто хотел уточнить, что я имею в виду, говоря, что они не сопоставимы в моем ответе. Помните, что этот ответ предназначен не только для вас, но и для всех других людей, которые могут столкнуться с подобной проблемой в будущем, поэтому я стараюсь сделать мой совет как можно более общим.
Кшиштоф Адамски
Когда вы указали в своем посте, что мой тест не сравнивал яблоки и апельсины, это был очень верный момент. В своем первом комментарии я заявил, что буду повторять тест, то есть я буду повторять чтение и запись на обеих платформах. После этого ваш последующий совет мне был не нужен. В дальнейшем любые выводы относительно Air и PI все еще преждевременны. Наиболее релевантным тестом будет тест чтения-записи на PI, учитывая, что это форум PI. Если у вас есть ddкоманды для безопасного теста записи, я буду их использовать!
ScrollerBlaster
10

Чтобы получить максимальную скорость от SD-слота вашего MacBook, вам нужно использовать устройство «сырой диск».

Это карта SanDisk Ultra Class 10:

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/disk1 bs=8m
231+1 records in
231+1 records out
1939865600 bytes transferred in 1076.078932 secs (1802717 bytes/sec)

Сравните это с использованием /dev/rdisk1вместо/dev/disk1

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/rdisk1 bs=1m
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 129.712100 secs (14955163 bytes/sec)

1,8 МБ / с по сравнению с 14,9 МБ / с - почти в 10 раз лучше!

Берт
источник
В чем разница между диском и rdisk?
Валентин
«Они ближе к физическому диску, чем кеш буфера. С другой стороны, узлы / dev / disk являются буферизованными блочно-специальными устройствами и используются в основном кодом файловой системы ядра». - Проверьте hidutilсправочную страницу для получения дополнительной информации.
Берт
1
Это может ввести в заблуждение, так как размер блока изменился между двумя тестами.
Ник
FWIW: Я изменил размер блока на 1 м, а устройство / dev / rdisk1 и моя скорость записи изменились с ~ 1,75 МБ / с до ~ 11,4 МБ / с с картой класса 10.
Гарднер Бикфорд
Я могу это подтвердить - написание образа для моей RPi SD-карты происходит в 20 раз быстрее при использовании rdisk2. Я сохранил постоянный размер блока для этого (4 м). Используя / dev / disk2, GDD записывает со скоростью 197 кБ / с. Используя / dev / rdisk2, он пишет со скоростью 10,6 МБ / с
judepereira
1

Вы также можете использовать эти команды для бенчмаркинга без влияния на кеш, который загружается в RAM:

тест скорости чтения: $ sudo dd if = / dev / sdX1 of = / dev / zero bs = 1M count = 400 iflag = direct

тест скорости записи: $ sudo dd if = / dev / zero of = / dev / sdX1 bs = 1M count = 400 skip = 1000 oflag = direct

Обязательно всегда используйте oflag = direct и iflag = direct при выполнении тестов на запись и чтение соответственно, иначе вы рискуете получить результаты, которые фактически являются таймингами записи и чтения файлового кэша.

valentt
источник
0

На моем MBP 2015 под управлением OSX 10.11.5 я получил следующие скорости записи при использовании dd:

при записи в / dev / disk: 1,80 МБ / с при записи в / dev / rdisk: 12,80 МБ / с

Fr. Остин
источник