Яка апаратна конфігурація найвищої ефективності?


35

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

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

  1. SD-карта
  2. USB-флешка
  3. USB-жорсткий диск

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

Відредаговано, щоб включити мережеву передачу як вимогу до еталону


1
FYI, відповідачі можуть використовувати sudo hdparm -t /dev/sdxяк корисний інструмент для порівняльного аналізу.
Відхилення

2
У мене немає орієнтирів, але загальновідомо: ssd> hdd> flash> sd> оптичні носії
Alexander - Reinstate Monica

+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 введіть тут опис зображення

Тож ми встановлюємо тут дуже важливий факт. Ethernet є вузьким місцем через USB-контролер, оскільки форма блокової діаграми, яку ми встановлюємо, підключена до USB концентратора. (Немає чітких ознак, чи використовується інша шина або просто USB2?)

Подивіться - ще одна блок-схема,

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

Тепер, коли проливають ще більше світла на ситуацію. Контролер 10/100 підключений до концентратора USB - на жаль, знову ж таки, там, де на специфікації не сказано, як швидко концентратор спілкується з контролером lan-- очікуйте на ключовий факт, який говорить про узгодження швидкості usb та lan. для середовищ із змішаною швидкістю.

Де карта SD?

Виявляється, SD-карта безпосередньо підключена до BCM2835 (стор. 65), і вони детально розглядають, як впливають на продуктивність різні рівні конфігурації. Важливо зауважити, що якщо SD-карта має спеціальний тактовий годинник, вона може працювати незалежно від основного процесора / графічного процесора на повній швидкості (незалежно від того, яка карта та стандарт використовуються - ви можете бачити, що вона підтримує кілька стандартів.)

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

То що це означає?

Це означає, що якщо ви орієнтуєте на більш швидку SD-карту та дивний привід ручки (4gb / 8gb), ви, швидше за все, отримаєте значні відмінності в продуктивності. Тож тепер виникає питання, як CPU / GPU обмінюється зв’язком із цим чудовим вбудованим пристроєм (мікросхемою usb / lan) та з якою швидкістю він здатний спілкуватися.

Ви бачите, як далеко може насправді пройти теорія, перш ніж ми насправді зробимо якісь бенчмаркінг? Ще один ключовий момент тут - як CPU контролює потік даних. Він використовує окремий тактовий канал, як рекомендовано?

В ідеальному світі ви могли б подумати, що ця локальна мережа / USB буде справлятися з цим. Але для цього потрібен MCU .. чи бачимо ми MCY в цій блок-схемі? НІ!

Таким чином, процесор повинен просити IO DATA надіслати йому USB-порт, потім він перейде до порту LAN (через той же USB HUB). Так, це спричинить десь проблеми зі швидкістю.

Також чудово відзначити, що відбувається при копіюванні на USB-накопичувач і на SD-карту через локальну мережу .. це призведе до певного трафіку.

Нам потрібно орієнтувати різні аспекти

Встановлюючи те, що ми намагаємось орієнтувати, ми можемо задати питання реального світу.

  1. Наскільки швидко внутрішній USB обробляє дані з SD?
  2. Скільки ЦП використовується для читання / запису на SD, потім до локальної мережі?
  3. Скільки ЦП використовується для читання / запису на USB-накопичувач?
  4. Чи впливає копіювання будь-яких даних безпосередньо на використання процесора?
  5. Наскільки добре вбудований USB / LAN чіп обробляє зчитування даних з двох джерел назад в порт 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ørn Ravn Andersen

@ ThorbjørnRavnAndersen так, це правда. Але одне з моїх питань стосується продуктивності вбудованого концентратора usb. Хоу швидко це насправді? і чи це залежить від процесора ARM, а також, що відбувається при копіюванні джерел 2 форми через локальну мережу. Це щось варте тестування. Я не кажу, що це не зробить, але, безумовно, це може бути проблемою в деяких ситуаціях.
Пьотр Кула

Здається, у вас є досвід у цій галузі. Не могли б ви зробити фактичні вимірювання?
Thorbjørn Ravn Andersen

3

Очевидно, що найвища ефективність була б з ramdisk.

Це не буде багато користі для мережевого пристрою зберігання даних, але тоді, pi не обов'язково є найкращим вибором для цієї фіксованої програми.

Для деяких речей, де гнучкість pi унікально підходить, фактичні вимоги до пам’яті можуть бути достатньо малі, щоб явно запускатись з рамного диска, або, можливо, неявно з оперативної пам’яті через механізм кешування диска (Linux ramdisks - це лише кеші диска без резервного диска в будь-якому випадку).

Вам все одно знадобиться картка для завантаження, але в якості побічної переваги роботи від оперативної пам’яті ви можете тримати картку лише для читання і мінімізувати ризик її пошкодження.


Вам не потрібна карта для завантаження. Операційна система / завантажувач вимагає цього! Ви можете завантажуватися з послідовного інтерфейсу або локальної мережі, якщо ви змінили завантажувач на це. Якщо ви були достатньо технічними, ви можете додати 3 Гб оперативної пам’яті до RPI - але це безперечно. Справа в тому, що все проходить через дурний USB-концентратор! bleeeh
Piotr Kula

Чи не завантажувач, принаймні той, який ви могли змінити, розташований на SD-карті? Ви можете отримати внутрішній завантажувальний диск для завантаження з іншого джерела, якщо змінити деякі конфігураційні шпильки.
Кріс Страттон

Я майже позитивний, чіп BCM .. такий же, як arduino, наприклад, має завантажувач .. (як BIOS на ПК). Для завантаження наступної програми має бути якась початкова програма. міняючи завантажувач на RPi .. зачекайте рік-два.
Пьотр Кула

ATMEGA arduino - приклад мікроконтролера, призначеного для роботи окремо, із внутрішнім спалахом. Завантажувач там налаштовується користувачем. З іншого боку, піктограма SOC, схоже, відноситься до класу більших системних частин, які потребують зовнішньої пам'яті. Зазвичай вони мають завантажувач, але це маска, яку неможливо змінити, як тільки вони покинуть завод. У традиційному продукті, заснованому на чомусь подібному, був би зовнішній флеш-чіп 4-8 Мбайт. Але пі, здається, замість цього використовується знімна SD-карта, щоб уникнути проблеми з пошкодженням спаяної спалаху.
Кріс Страттон

Це цікаво. Так це розділ FAT містить ці дані завантаження? або він зберігається десь в прихованій частині SD? Тоді ви могли б у ще більш спрощеній спробі спробувати перенаправити процес завантаження на інший "зламаний" на пристрої ...
Piotr Kula

0

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

Я не згоден з тим, що USB-концентратор обмежує мережу Ethernet на RPi, тому що HUB може підтримувати 400 Мбіт / с, а Ethernet - 100. Тож теоретично він може підтримувати до 4-х порту швидкої Ethernet 100Mb / s.


КОЖНИЙ 10 клас SD, який я коли-небудь перевіряв, - це> 19 Мб / с. У мене був клас 6, який робив 14 мб / с. SanDisk Extreme SD, які вимагають 45 Мб / с, досягають 50 Мб / с читання та 47 Мб / с запису, що було несподіванкою. Lexar 400x SD - це найшвидший тест, який я перевірив зі швидкістю 70 Мб / с, але приблизно 30 Мб / с. На USB 2.0 практично немає різниці між швидкими картами SD, жорсткими дисками та SSD. Всі інтерфейси USB 2.0, з якими я переплутався, з ковпаком близько 35 Мб / с. Я бачив накопичувачі USB 2.0, які обмежують близько 10 Мб / с, а деякі навіть нижче. Багато USB-накопичувачів USB 3.0 мають швидкість запису з обмеженою швидкістю 10-20 Мбіт / с, навіть на порти USB 3.0!
Therealstubot

0

Я отримую максимум 4 Мбіт / с за допомогою флеш-пам’яті USB і те саме для USD HDD. Це при простому перенесенні файлів через домашню групу Windows до пристрою, підключеного до Raspberry.

Я очікував щонайменше 10 разів на це, але мені не вдалося збільшити швидкість передачі. Я спробував передачу FTP безпосередньо на жорсткий диск USB (цей пристрій передається зі швидкістю + 60 Мб / с при підключенні до мого ноутбука), але результати дуже погані. 100 КБ / с! У результаті трафіку виходить лише кілька 100 Мб.

Зараз я переміщу жорсткий диск між ноутбуком та Raspberry Pi для передачі даних :-(


Я думаю, у вас проблема з конфігурацією / мережею, тому що я можу завантажити файл безпосередньо на USB-накопичувач до 24 Мбіт / с. І я думаю, що я міг би краще зробити з Ethernet замість Wi-Fi. Я використовую vsftpd.
Морган Курбе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.