Когда люди планируют использовать платформу для разработки для своего проекта, они, в основном, фокусируются на требованиях самой платы, а также на поддержке программного обеспечения. Но, выбор правильных аксессуаров может быть столь же важным для хорошей производительности и стабильности. Например, важно выбрать правильный источник питания, так как плата может замерзнуть или произвольно перезагрузиться, если подается не правильное напряжение. Так же, часть этого процесса, выбор кабеля micro USB , так как вам нужен кабель с минимальным сопротивлением, который может быть достигнут с помощью более коротких кабелей и/или низкого значения AWG. Другим важным элементом, который может повлиять на стабильность и производительность систем, являются микро SD-карты, используемые для запуска операционной системы в платах для разработчиков.
Общие сведения о показателях производительности SD-карт
До некоторого времени (Micro) SD-карты были основными для хранения данных, таких как фотографии, видео и музыка. В этих случаях вы имеете большие файлы, которые извлекают выгоду из высокой последовательной скорости чтения и записи. Вот почему ассоциация SD создала различные классы, чтобы специфицировать минимальную скорость записи с классом скорости, классом скорости UHS и, в последнее время, классом скорости видео.
Это важно так как вам не нужны одинаковые скорости записи для копирования музыкальных файлов или записи видео с 4K-камеры, а карты с более низким классом обычно дешевле. Обратите внимание, что большинство (все?) недорогих платформ для разработки не поддерживают интерфейс UHS-II или UHS-III, поэтому, он может работать, но вы не сможете достичь максимальной производительности карты. Контроллеры карт Micro SD также часто подключаются через SDIO, что ограничивает последовательную производительность до 23 МБ / с.
Однако эти классы лишь в незначительной мере полезны для карт micro SD, используемых в платформах для разработки, поскольку операционные системы генерируют множество небольших операций чтения и записи, например, для баз данных и веб-кэшей, а не для обработки больших файлов. Поэтому устройства хранения могут также включать в себя IOPS для чтения и записи (вход/выход в секундах), которые более полезны для данного типа использования. В приведенной ниже таблице Samsung eMMC и UFS отображаются некоторые из этих чисел.
Единственная проблема заключается в том, что, до недавнего времени, вы не могли узнать минимальные числа R/W IOPS для SD-карт, поскольку они просто были скрыты производителями, поэтому вместо этого люди рекомендовали Micro SD-карты 10 класса, которые может не лучшим образом подходят для их использования в платформах для разработки. Однако, с момента внедрения Adoptable Storage в Android, где карты micro SD могут использоваться для приложений, а не только для хранения данных, значение IOPS стало более важным, и теперь ассоциация SD вводит класс A1 и класс A2 производительности для SD-карт, определяющих минимальные значения IOPS R/W вместе с минимальной последовательной скоростью записи 10 МБ/с.
Замечательно! Значит проблема решена? Не совсем так, поскольку производители только начали использовать логотипы класса производительности приложений на своих более дорогих SD-картах с высокой емкостью, например 256 ГБ, которые обычно стоят в несколько раз больше, чем у вашей стандартной платы для разработчиков. Поэтому, нам нужно полагаться на сообщество для тестирования R/W-значений IOPS или случайных скоростей чтения и записи.
Программное обеспечение для SD-карт
Существует несколько программ, которые могут протестировать производительность. Наиболее популярны Hdparm и dd, но первые тестируют только последовательную скорость в течение очень короткого времени, а последние тестируют только последовательную скорость, и многие люди могут не учитывать время, необходимое для флеш-кэша к реальной карте (например, с синхронизацией). Это приводит к результатам, вводящим в заблуждение и, в основном, не имеет отношения к нашему прецеденту.
Поэтому вместо этого существуют специальные инструменты для тестирования как последовательных скоростей, так и случайных операций ввода-вывода. Bonnie ++ – один из них, но, в последнее время, iozone стал эталоном для тестирования ввода-вывода на диске, и именно он, используется в тестах, описанных ниже.
Многие руководства рекомендуют запускать прошивку с помощью Win32DiskImager в Windows или dd в Linux. Однако, хотя я сам не испытывал этой проблемы, мне сказали, что последнее может не всегда обнаруживать ошибки во время прошивки, и сейчас рекомендуется новый инструмент: Etcher . Он работает в Windows, Linux или Mac OS с помощью графического интерфейса или командной строки и проверяет SD-карту после прошивки, убедившись, что во время процесса ничего не случилось.
Тесты SD-карт
Учитывая все вышесказанное, нам нужны микро SD-карты с хорошей случайной R/W-производительностью, которые мы можем протестировать с помощью iozone3, и для многих приложений достаточно 8 – 32 ГБ. Мы планировали протестировать самостоятельно, но Андреас Шписс уже опубликовал видеоролики, добавленные далее ниже, эффективно используя работы pidramble, использующими несколько микро SD-карт на макете Raspberry Pi 3. Также, еще больше результатов и обсуждения можно найти на форумах Armbian . Некоторое время назад Линаро сделал обзор микро SD-карт .
Скорости чтения и записи в MB / s – карты, отсортированные по произвольной скорости записи
Вот основные выдержки из тестов:
- Большие карты обычно быстрее, но не всегда (см. Результаты Samsung EVO + 64GB).
- Показатели отличаются между запусками для данной карты с 10 до 20% вариантов
- У большинства недорогих микро SD-карт / подделок, действительно, есть плохая случайная производительность записи.
- Карты Samsung и Sandisk обеспечивают наилучшую производительность входов / выходов
- Не всегда необходимо покупать самые дорогие карты для нормальной производительности.
Вывод заключается в том, что для лучшей производительности выбирайте такие карты, как Samsung EVO + 32GB или Samsung Pro + 32GB, продаваемые, соответственно, за 18 долларов США и 25 долларов США на Amazon US. Дешевая карта, которая должна работать прилично – Sandisk Extreme Pro 8GB продается за 8 долларов .
Проблема поддельных карт Micro SD
Похоже, теперь мы нашли достойный список карт micro SD для использования с нашими платформами для разработки. Есть еще проблема – некоторые из них подделываются даже на таких сайтах, как Amazon, поскольку производитель поддельной карты может вставить их в цепочку поставок. Один из способов двойной проверки, если у вас есть оригинал, – проверить номер идентификатора CID ( Card Identification). В Linux вы можете сделать это следующим образом:
1 2 |
cat /sys/block/mmcblk0/device/cid 035344534c3038478049731d9201063d |
Первые две цифры представляют идентификатор производителя. Нет никакого общепризнанного списка, но “1b” для Samsung. Вы можете расшифровать полный CID тут.
Если Вы купили SD-карту Samsung, и идентификатор производителя отличается от 0x1b, то у Вас, почти наверняка, поддельная SD-карта Samsung. Если число – 0x1b, Вы так же не можете быть на 100% уверены, что у Вас подлинная SD-карта, поскольку у подделки, возможно, также подделать и эту часть.
К сожалению, нет никакого другого способа проверить, настоящая ли карта или фальшивка. Проверка производительности с подобными другим отчетам, найденными в сети может помочь подтвердить, что у Вас настоящая карта. В статье Bunnie 2010 года указано больше деталей о поддельных SD-картах.
Долговечность и надежность микро SD-карты
Я использую микро SD карты в течение 5 лет в обеих платах для разработчиков и на моем телефоне, и, я должен сказать, что, через некоторое время, я вынужден был выбросить многие из них из-за ошибки ввода/вывода. Я также обнаружил, что мои картридеры также работают несколько месяцев. До сих пор, я, в основном, покупал более дешевые модели, так что это может быть объяснением. К сожалению, производители не обеспечивают MTBF (среднее время между отказами) для SD-карт, так что нет никаких данных как о жестких дисках и SSD.
Тем не менее, есть способы уменьшения износа микро SD-карт с помощью ограниченной записи, либо сделав руфтс только для чтения, что прекрасно подходит для встраиваемых проектов, и меньше, если вы планируете использовать вашу плату, как компьютер, или с помощью log2ram, расширяющий буфер записи фиксации интервала, и т.д. Еще больше обсуждений о том, как увеличить продолжительность жизни карты SD можно найти в блоге Пита Скаргилла.
Некоторые люди также сталкиваются с повреждением флешки, которая больше не загружается после сбоя питания или аварии, так как повреждается файловая система. Это не связано непосредственно с самой SD-картой, и это, вероятнее всего, произойдет, если у вас плохой источник питания. Шаги, чтобы уменьшить вероятность повреждения, включают те же шаги, которые уже упоминались ранее, по ограничению износа с файловой системой только для чтения и так далее.
Другое решение, позволяющее избежать большинства проблем, упомянутых выше, состоит в том, чтобы использовать платы с флэш-памятью EMMC, но, конечно, следование этому пути, будет означать, что вы должны избегать плат Raspberry Pi, обнажая RPI Compute модуль. Несмотря на это, сочетание тщательно подобранного источника питания, кабеля USB и микро-карты SD позволит Вам избежать многих потенциальных проблем с Вашей платой.
Благодарим сайт cnx-software.com за предоставленную информацию.
Оригинал статьи тут