Я знаю, что точные показатели будут различаться у разных производителей, но в целом, если учесть только флэш-диски более высокого уровня, SD-карты и жесткие диски USB, а Raspberry Pi подключен к сети через Ethernet-коммутатор, что является самой быстрой конфигурацией из сети точка зрения передачи данных? Я только ищу ответы, в которых люди действительно попробовали конфигурации, перечисленные ниже, и получили реальные результаты, а не теорию.
Очевидно, что SD-карта должна использоваться, потому что она требуется по крайней мере для части цикла загрузки, но давайте предположим, что у вас есть дополнительный раздел данных на каждом из перечисленных ниже устройств, который имеет самые высокие скорости передачи по сети на Raspberry Pi?
- SD-карта
- Флешка
- USB HDD
Этот вопрос нетривиален, поскольку в какой-то момент накладные расходы на обработку, связанные с одним из запоминающих устройств, связанных с сетевым соединением, могут повлиять на скорость передачи, также порт Ethernet на Raspberry Pi контролируется шиной USB, поэтому в общем случае пропускная способность должна зависеть от координация передачи данных по сети Ethernet и передачи данных с USB-носителя. Я не знаю, находится ли SD-карта на той же общей USB-шине, что и USB-порты и Ethernet-порт, но если это не так, я полагаю, это было бы довольно большим преимуществом с точки зрения производительности.
Отредактировано, чтобы включить передачу сети как требование для эталона
sudo hdparm -t /dev/sdx
в качестве полезного инструмента для сравнительного анализа.Ответы:
В бенчмаркинге вы всегда должны устанавливать свои пределы. Потому что, если вы ожидаете получить 100 МБ от этой сети, вы просто дурачите себя!
Посмотрите на этот дизайн блока RaspberryPI Model-B
Таким образом, мы устанавливаем очень важный факт здесь. Контроллер USB является узким местом Ethernet, так как мы устанавливаем блок-биграмму, которая подключена к концентратору USB. (Нет четкого указания, использует ли он другую шину или просто USB2?)
Ооо, смотрите - еще одна блок-схема,
Теперь это проливает еще больше света на ситуацию. Контроллер 10/100 подключен к USB-концентратору - опять же, к сожалению, нигде в спецификации не указано, как быстро концентратор взаимодействует с контроллером локальной сети - ожидайте ключевого факта, который говорит о том, что скорость USB и LAN согласованы для сред USB со смешанной скоростью.
Где находится SD-карта?
Оказывается, карта SD напрямую подключена к BCM2835 (стр. 65), и они очень подробно рассказывают о влиянии производительности на различных уровнях конфигурации. Важно отметить, что если на SD-карте есть выделенные часы, она может работать независимо от основного процессора / графического процессора на полной скорости (независимо от используемой карты и стандарта - видно, что она поддерживает несколько стандартов).
Так что это значит?
Это означает, что если вы сравните более быструю SD-карту и дерьмовый перьевой привод (4 ГБ / 8 ГБ), вы, скорее всего, получите огромные различия в производительности. Так что теперь возникает вопрос, как CPU / GPU управляет связью с этим замечательным встроенным устройством (микросхема usb / lan) и на каких скоростях он способен обмениваться данными.
Вы видите, как далеко может продвинуться теория до того, как мы начнем проводить сравнительный анализ? Другой ключевой момент здесь - как процессор управляет потоком данных. Использует ли он отдельный канал синхронизации в соответствии с рекомендациями?
В идеальном мире вы могли бы подумать, что этот LAN / USB справится с этим. Но для этого требуется MCU ... мы видим MCY где-нибудь на этой блок-схеме ... НЕТ!
Таким образом, ЦПУ должен запросить IO DATA отправить его через порт USB, затем он идет в порт LAN (через тот же USB-концентратор) Да ... так что это может вызвать проблемы со скоростью.
Также замечательно отметить, что происходит, когда вы копируете на USB-накопитель и с SD-карты все по локальной сети ... это будет вызывать некоторый трафик.
Нам нужно сравнить различные аспекты
При определении того, что мы пытаемся сопоставить, мы можем задать реальный вопрос.
Теперь, когда вы знаете, за что боретесь, я призываю вас ответить на них самим.
Вы можете найти это очень хорошей отправной точкой.
Ссылки
Но в основном,
мои собственные технические знания и оценки, которые я сделал, основываясь на своем собственном встроенном опыте. ОП задала очень хороший вопрос, но не понимает, что без теоретического понимания системы вы обречены на попытку оценить / решить практические проблемы.
Полученные результаты
(4) Этот ответ показывает некоторые приземленные пиратские испытания. И это доказывает, что выполнение интенсивных транзакций данных напрямую влияет на процессор (просто не уверен, является ли его SD-карта или процесс переноса данных внутри чипа BCM на чип USB / LAN)
(6) Было доказано, что единственным узким местом будет источник (например, медленная SD-карта). USB-концентратор может качать данные на 90% +, но ответы на вопросы 4 и 5 могут напрямую влиять на эту производительность.
Делая некоторые исследования и вклад других пользователей, мы начинаем устанавливать и получать предварительные результаты.
Вот хороший график, чтобы помочь визуализировать то, с чем мы имеем дело.
источник
Очевидно, самая высокая производительность была бы с виртуальным диском.
Это не очень пригодится для устройства хранения данных, подключенного к сети, но тогда пи не обязательно является лучшим выбором для этого фиксированного приложения.
В некоторых случаях, когда гибкость pi уникально подходит, фактические требования к хранилищу могут быть достаточно малы для явного запуска с ramdisk или, возможно, неявно с ram через механизм кэширования диска (ramdisk linux - это просто дисковые кэши в любом случае без резервного диска).
Вам все равно понадобится карта для загрузки, но в качестве побочного преимущества работы от оперативной памяти вы можете оставить карту только для чтения и минимизировать риск ее повреждения.
источник
USB HDD или USB SSD должны обеспечить вам максимальную производительность. Карты SD записывают около 12 МБ / с для устройств класса 10, а USB - до 30 МБ / с.
Я не согласен с тем, что концентратор USB является узким местом для Ethernet на RPi, поскольку концентратор может поддерживать 400 Мбит / с, а Ethernet - 100. Поэтому теоретически он может поддерживать до 4-х портов Fast Ethernet 100 Мбит / с.
источник
Я получаю максимум 4 Мбит / с, используя флэш-накопитель USB и то же самое для жесткого диска USD. Это при простом сбрасывании файлов через «домашнюю группу» Windows на устройство, подключенное к Raspberry.
Я ожидал, по крайней мере, 10 раз, но мне не удалось ускорить передачу. Я попытался передать по FTP напрямую на жесткий диск USB (это устройство передает со скоростью + 60 Мбит / с при подключении к ноутбуку), но результаты очень плохие. 100KiB / с! В результате часы трафика всего за несколько 100 МБ.
Теперь я перемещаю жесткий диск между ноутбуком и Raspberry Pi для передачи данных :-(
источник
vsftpd
.