Небольшой тест microSD карт для Raspberry Pi
Обычный пользователь, когда возникает необходимость приобрести карту памяти формата microSD, особо не задумывается. Пользователь идет в магазин электроники и говорит «дайте мне карту памяти microSD». Какую? Да все равно, карту памяти и все тут.
Но на самом деле характеристики карт памяти одного и того же формата могут быть весьма различны — думаю, на Geektimes это объяснять не нужно. Но это если карты разных классов. А что, если взять равные по классу карты? Давайте посмотрим на результаты бенчмарка различных карт памяти (список небольшой, всего 5 штук). Понятно, что сравнивать карты различных классов было бы некорректно, поэтому взят Class 10.
Сам тест проводился пользователем сайта о «малинках» вот здесь.
Как и какие тесты проводились?
Для того, чтобы обеспечить каждой карте равные условия, был взят десктопный ПК под управлением Windows 7, ноутбук с Ubuntu и Raspberry Pi 2. На десктопе использовалась утилита CrystalDiskMark. На ноутбуке — штатный инструмент «Disks». На Pi 2 — командная строка и тест, описанный здесь.
Последовательность:
- 1. Форматирование под Windows с использованием SDFormatter;
- 2. Проверка при помощи H2testw;
- 3. Бенчмарк CrystalDiskMark на декстопе;
- 4. Бенчмарк на Ubuntu;
- 5. Запись Raspbian c использованием Win32DiskImager;
- 6. Загрузка Pi и работа с командной строкой.
Проверка оригинальности модели тоже выполнялась, поскольку на рынке сейчас очень много карт памяти от ноунейм производителей с удручающими характеристиками, но с нанесенной маркировкой известных компаний.
Для того, чтобы убедиться в том, что карта именного того производителя, который заявлен, использовалась утилита H2testw 1.4.
Вот, что получилось:
Результаты работы с CrystalDiskMark:
Official Raspberry Pi NOOBs 8GB, Class 10
Kingston 16 GB Class 10
Samsung EVO 16GB, Class 10
SanDisk Ultra 16 GB, Class 10
Toshiba 16GB, Class 10
Результаты сведены в единую табличку:
Ubuntu Disk
Raspbian
Финальный тест проводился с командной строкой ОС Rasbian и рядом команд.
Для чтения CID карты использовалась такая команда:
cd /sys/class/mmc_host/mmc?/mmc?:*
echo «man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)»
Проверка записи:
sync; dd if=/dev/zero of=~/test.tmp bs=500K count=1024
Проверка чтения:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
sync; time dd if=~/test.tmp of=/dev/null bs=500K count=1024
Удаление временного файла, созданного при выполнении предыдущих команд:
rm ~/test.tmp
Заключение
Исходя из результатов всех трех тестов, мы наблюдаем следующую картину (места от 1 по 5):
1. SanDisk Ultra 16GB
2. Toshiba 16GB
3. Official NOOBs (SanDisk 8GB)
4. Samsung EVO 16GB и Kingston 16GB
Производительность карты памяти практически не зависит от цены карты. Зачем платить больше?
С Kingston случились проблемы при тестировании под Убунту, поэтому результаты в этом тесте получить не удалось;
Карта SanDisk Ultra заняла первое место только потому, что разница скорости чтения с Toshiba в Убунту была значительной.