Какая конфигурация оборудования наиболее эффективна?

35

Я знаю, что точные показатели будут различаться у разных производителей, но в целом, если учесть только флэш-диски более высокого уровня, SD-карты и жесткие диски USB, а Raspberry Pi подключен к сети через Ethernet-коммутатор, что является самой быстрой конфигурацией из сети точка зрения передачи данных? Я только ищу ответы, в которых люди действительно попробовали конфигурации, перечисленные ниже, и получили реальные результаты, а не теорию.

Очевидно, что SD-карта должна использоваться, потому что она требуется по крайней мере для части цикла загрузки, но давайте предположим, что у вас есть дополнительный раздел данных на каждом из перечисленных ниже устройств, который имеет самые высокие скорости передачи по сети на Raspberry Pi?

  1. SD-карта
  2. Флешка
  3. USB HDD

Этот вопрос нетривиален, поскольку в какой-то момент накладные расходы на обработку, связанные с одним из запоминающих устройств, связанных с сетевым соединением, могут повлиять на скорость передачи, также порт Ethernet на Raspberry Pi контролируется шиной USB, поэтому в общем случае пропускная способность должна зависеть от координация передачи данных по сети Ethernet и передачи данных с USB-носителя. Я не знаю, находится ли SD-карта на той же общей USB-шине, что и USB-порты и Ethernet-порт, но если это не так, я полагаю, это было бы довольно большим преимуществом с точки зрения производительности.

Отредактировано, чтобы включить передачу сети как требование для эталона

Дэн Б
источник
1
К вашему сведению, ответчики могут использовать sudo hdparm -t /dev/sdxв качестве полезного инструмента для сравнительного анализа.
Дживингс
2
У меня нет эталонных тестов, но это общеизвестно: ssd> hdd> flash> sd> оптический носитель
Александр - восстановить Монику
+1 - Хороший вопрос по поводу порта SD - он на той же шине, что и USB / ethernet? Совместная загрузка на SD и подключенном USB-накопителе работает лучше?
Джон Эгертон
@XAleXOwnZX уверен, что если шины, на которых работают эти устройства, могут соответствовать максимальной производительности устройства, то это порядок, но я держу пари, что, поскольку Raspberry Pi имеет только USB, ваш заказ будет больше похож на ssd = hdd = flash> оптический и SD может находиться в любом месте этого списка, если у него есть собственная шина, отдельная от портов USB.
Дан Б
Это хороший момент, но HDD> Flash точно. Мой жесткий диск USB получает 30 Мбит / с по сравнению с 5-10 флэш-накопителем на моем компьютере
Александр - Восстановите Монику

Ответы:

35

В бенчмаркинге вы всегда должны устанавливать свои пределы. Потому что, если вы ожидаете получить 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-карты все по локальной сети ... это будет вызывать некоторый трафик.

Нам нужно сравнить различные аспекты

При определении того, что мы пытаемся сопоставить, мы можем задать реальный вопрос.

  1. Как быстро внутренний USB обрабатывает данные с SD?
  2. Сколько ЦП используется для чтения / записи на SD, а затем в LAN?
  3. Сколько ЦП используется для чтения / записи на USB-накопитель?
  4. Влияет ли копирование каких-либо данных непосредственно на использование процессора?
  5. Насколько хорошо встроенный чип USB / LAN обрабатывает чтение данных из 2 источников обратно в порт LAN и пропорционально ли это влияет на процессор?
  6. Нет необходимости проверять, будет ли LAN заполняться до 10 Мбит / с, поскольку его узкое место связано с состоянием, в котором находится USB-концентратор.

Теперь, когда вы знаете, за что боретесь, я призываю вас ответить на них самим.

Вы можете найти это очень хорошей отправной точкой.

Ссылки

Но в основном,

мои собственные технические знания и оценки, которые я сделал, основываясь на своем собственном встроенном опыте. ОП задала очень хороший вопрос, но не понимает, что без теоретического понимания системы вы обречены на попытку оценить / решить практические проблемы.

Полученные результаты

(4) Этот ответ показывает некоторые приземленные пиратские испытания. И это доказывает, что выполнение интенсивных транзакций данных напрямую влияет на процессор (просто не уверен, является ли его SD-карта или процесс переноса данных внутри чипа BCM на чип USB / LAN)

(6) Было доказано, что единственным узким местом будет источник (например, медленная SD-карта). USB-концентратор может качать данные на 90% +, но ответы на вопросы 4 и 5 могут напрямую влиять на эту производительность.

Делая некоторые исследования и вклад других пользователей, мы начинаем устанавливать и получать предварительные результаты.

Вот хороший график, чтобы помочь визуализировать то, с чем мы имеем дело.

введите описание изображения здесь

Петр Кула
источник
1
+1 Отличный ответ. Хотя можете ли вы предоставить источники для ваших изображений?
Jivings
1
Этот ответ отлично дополняет вопрос подробностями, объясняющими, почему каждый из разных носителей может иметь очень разные показатели производительности. Спасибо за дополнительную информацию, которую я должен был добавить к вопросу в первую очередь.
Дан Б
1
Скорость USB все еще составляет около 30 МБ / с, то есть достаточно места для сети 100 Мбит.
Турбьёрн Равн Андерсен
@ ThorbjørnRavnAndersen да, это правда. Но один из моих вопросов касается производительности встроенного USB-концентратора. Хав быстро это правда? и зависит ли это от процессора ARM, а также от того, что происходит, когда вы копируете источники формы 2 через локальную сеть. Я не говорю, что он этого не сделает, но, безусловно, может быть проблемой в некоторых ситуациях.
Петр Кула
Похоже, у вас есть опыт работы в этой области. Не могли бы вы сделать реальные измерения?
Турбьёрн Равн Андерсен
3

Очевидно, самая высокая производительность была бы с виртуальным диском.

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

В некоторых случаях, когда гибкость pi уникально подходит, фактические требования к хранилищу могут быть достаточно малы для явного запуска с ramdisk или, возможно, неявно с ram через механизм кэширования диска (ramdisk linux - это просто дисковые кэши в любом случае без резервного диска).

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

Крис Страттон
источник
Вам не нужна карта для загрузки. Операционная система / загрузчик требует этого! Вы можете загрузиться с последовательного интерфейса или локальной сети, если вы изменили загрузчик для этого. Если бы вы были достаточно технически, вы могли бы добавить 3 ГБ оперативной памяти в RPI - но это совершенно не по теме. Дело в том, что все идет через тупой USB-хаб! bleeeh
Петр Кула
Разве загрузчик, по крайней мере тот, который вы можете изменить, не находится на SD-карте? Возможно, вы сможете получить внутренний загрузочный диск для загрузки из другого источника, если вы измените некоторые привязки конфигурации.
Крис Страттон
Я почти уверен, что чип BCM ... так же, как, например, arduino имеет загрузчик ... (как BIOS на ПК) Должна быть какая-то начальная программа для загрузки следующей программы и так далее. смена загрузчика на RPi .. подожди год или два.
Петр Кула
ATMEGA от Arduino является примером микроконтроллера, разработанного для автономной работы с внутренней вспышкой. Загрузчик там настраивается пользователем. SOC пи, с другой стороны, кажется, принадлежит к классу больших системных частей, которые требуют внешней памяти. Обычно у них есть загрузчик, но это маска, которую нельзя изменить после того, как они покинут завод. В традиционном продукте, основанном на чем-то подобном, была бы внешняя флэш-микросхема объемом 4–8 МБ. Но пи, кажется, использует вместо этого съемную SD-карту, чтобы избежать проблемы, связанной с повреждением запаянной вспышки.
Крис Страттон
Это интересно. Так это раздел FAT, который содержит эти данные загрузки? или он хранится где-то еще на скрытой части SD? В theroy вы могли бы затем в еще более простой попытке попытаться перенаправить процесс загрузки на другое «взломанное» устройство ...
Петр Кула
0

USB HDD или USB SSD должны обеспечить вам максимальную производительность. Карты SD записывают около 12 МБ / с для устройств класса 10, а USB - до 30 МБ / с.

Я не согласен с тем, что концентратор USB является узким местом для Ethernet на RPi, поскольку концентратор может поддерживать 400 Мбит / с, а Ethernet - 100. Поэтому теоретически он может поддерживать до 4-х портов Fast Ethernet 100 Мбит / с.

Ангел Генчев
источник
КАЖДЫЙ класс 10 SD, который я когда-либо тестировал, составляет> 19 Мб / с. У меня был класс 6, который сделал 14mb / s. SanDisk Extreme SD, которые утверждают, что 45 Мбит / с достигают 50 Мбит / с для чтения и 47 Мбит / с для записи, что было неожиданностью. Lexar 400x SD являются самыми быстрыми, которые я тестировал при скорости чтения 70 Мбит / с, но при скорости записи около 30 Мбит / с. На USB 2.0 практически нет разницы между быстрыми SD-картами, жесткими дисками и твердотельными накопителями. Все интерфейсы USB 2.0, с которыми я столкнулся, имеют пропускную способность около 35 Мбит / с. Я видел флэш-накопители USB 2.0, которые работают со скоростью около 10 Мбит / с, а некоторые даже ниже. Многие флэш-накопители USB 3.0 имеют скорость записи, ограниченную 10-20 Мбит / с, даже на портах USB 3.0!
Therealstubot
0

Я получаю максимум 4 Мбит / с, используя флэш-накопитель USB и то же самое для жесткого диска USD. Это при простом сбрасывании файлов через «домашнюю группу» Windows на устройство, подключенное к Raspberry.

Я ожидал, по крайней мере, 10 раз, но мне не удалось ускорить передачу. Я попытался передать по FTP напрямую на жесткий диск USB (это устройство передает со скоростью + 60 Мбит / с при подключении к ноутбуку), но результаты очень плохие. 100KiB / с! В результате часы трафика всего за несколько 100 МБ.

Теперь я перемещаю жесткий диск между ноутбуком и Raspberry Pi для передачи данных :-(

NookaV
источник
Я думаю, что у вас есть проблемы с конфигурацией / сетью, потому что я могу загрузить файл непосредственно на мою флешку до 24 Мбит / с. И я думаю, что я мог бы сделать лучше с Ethernet вместо Wi-Fi. Я использовал vsftpd.
Морган Курбе