最高のパフォーマンスのハードウェア構成は何ですか?


35

正確なベンチマークの数値はメーカーによって異なることを知っていますが、一般的にハイエンドのフラッシュドライブ、SDカード、USB HDDのみを考慮し、Raspberry Piがネットワークから最も高速な構成であるイーサネットスイッチを介してネットワークに接続されている場合データ転送の観点から?私は人々が実際に以下にリストされた構成を試し、理論ではなく実際の結果を得る答えを探しています。

明らかに、ブートサイクルの少なくとも一部に必要であるため、SDカードを使用する必要がありますが、Raspberry Piで最高のネットワーク転送速度を持つ以下の各デバイスに追加のデータパーティションがあると仮定しましょう。

  1. SDカード
  2. USBフラッシュドライブ
  3. USB HDD

イーサネット通信に接続されたストレージデバイスの1つに関連する処理オーバーヘッドが転送速度に影響を与える可能性があるため、Raspberry PiのイーサネットポートもUSBバスによって制御されるため、一般的にスループットは次の影響を受けます。イーサネットデータ転送とUSBメディアデータ転送の調整。SDカードがUSBポートおよびイーサネットポートと同じ共有USBバス上にあるかどうかはわかりませんが、そうでない場合は、パフォーマンスの面でかなり大きなメリットになると思います。

ベンチマークの要件としてネットワーク転送を含めるように編集


1
sudo hdparm -t /dev/sdx参考までに、回答者はベンチマークの有用なツールとして使用できます。
-Jivings

2
ベンチマークはありませんが、一般的な知識です。ssd> hdd> flash> sd> optical media
Alexander-Reinstate Monica

+1-SDポートの良い点-USB /イーサネットと同じバス上にありますか?SDおよび接続されたUSBストレージの共有負荷はより適切に機能しますか?
ジョンイガートン

@XAleXOwnZXそれらのデバイスが存在するバスがデバイスの最大性能と一致する場合、それは注文ですが、Raspberry PiにはUSBしか搭載されていないため、注文はssd = hdd = flash> opticalのようになりますSDは、USBポートとは別の独自のバスがあるかどうかに基づいて、リスト内のどこにでも存在できます。
ダンB

それは良い点ですが、HDD>フラッシュは確かです。私のUSBハードドライブは、フラッシュドライブの5-10と比較して30 mb / sを取得します
アレクサンダー-モニカを復活

回答:


35

ベンチマークでは、常に制限を設定する必要があります。なぜなら、そのLANから100MBを取得することを期待するのであれば、あなたは自分をだますだけだからです!

RaspberryPI Model-Bのこのブロックデザインを見てください ここに画像の説明を入力してください

したがって、ここで非常に重要な事実を確立します。イーサネットは、私たちが確立したブロック図から、USBハブに接続されているため、USBコントローラーによってボトルネックになります。(別のバスを使用しているのか、単にUSB2を使用しているのか、明確な兆候はありませんか?)

ああ見て-別のブロック図、

ここに画像の説明を入力してください

状況がさらに明らかになりました。10/100コントローラーはUSBハブに接続されています-残念ながら、仕様のどこにもハブがLANコントローラーと通信する速度は記載されていません-USB速度とLANがネゴシエートされるという重要な事実を期待してください混合速度のUSB環境向け。

SDカードはどこにありますか?

SDカードはBCM2835(65ページ)に直接接続されており、さまざまな構成レベルからパフォーマンスにどのように影響するかが詳細に説明されています。注目すべき重要な点は、SDカードに専用のクロックがある場合、コアCPU / GPUから独立してフルスピードで実行できることです(使用されているカードと標準にかかわらず、いくつかの標準をサポートしていることがわかります)。

ここに画像の説明を入力してください

それはどういう意味ですか?

より高速なSDカードと安っぽいペンドライブ(4gb / 8gb)のベンチマークを行うと、パフォーマンスに大きな違いが生じる可能性が高いことを意味します。そこで、この素晴らしい組み込みデバイス(usb / lanチップ)との通信をCPU / GPUがどのように処理し、どの速度で通信できるかという疑問が生じます。

ベンチマークを実際に行う前に、理論が実際にどれだけ遠くまで到達できるかおわかりでしょうか?ここでのもう1つの重要なポイントは、CPUがデータのフローをどのように制御するかです。推奨されているように、個別のクロックチャネルを使用しますか?

理想的な世界では、このLAN / USBで処理できると思います。しかし、それにはMCUが必要です。そのブロック図のどこにでもMCYが表示されますか?いいえ!

したがって、CPUはIO DATAにUSBポートを送信するように要求し、LANポートに(同じUSBハブを介して)はい。

また、USBペンドライブにコピーしたり、SDカードからLAN経由でコピーしたりすると、トラフィックが発生する可能性があることに注意してください。

さまざまな側面をベンチマークする必要があります

ベンチマークしようとしているものを確立する際に、現実世界の質問をすることができます。

  1. 内部USBはSDからのデータをどのくらい速く処理しますか?
  2. SDからLANへの読み取り/書き込みに使用されるCPUはどれくらいですか?
  3. USBペンドライブの読み取り/書き込みに使用されるCPUはどれくらいですか?
  4. データのコピーはCPU使用率に直接影響しますか?
  5. 埋め込まれたUSB / LANチップは、2つのソースからLANポートへのデータの読み取りをどの程度処理し、CPUに比例して影響しますか?
  6. lanがUSBハブのある状態によってボトルネックになっているため、lanが完全な10 mb / sを取得するかどうかをテストする必要はありません。

今、あなたはあなたが何のために戦っているのか知っているので、私は彼らにあなた自身に答えるようにあなたに挑戦します。

これは非常に良い出発点になるかもしれません。

参照資料

が、ほとんど、

自分の組み込みの経験に基づいて、自分の技術的な知識と評価を行いました。OPは非常に良い質問をしましたが、システムの理論的な理解がなければ、実際の問題を評価/解決しようとする運命にあることを理解することはできません。

結果

(4) この答えは、現実的な海賊テストにいくらかを示しています。また、激しいデータトランザクションを行うとCPUに直接影響することが証明されています(SDカードまたはBCMチップ内のデータをUSB / LANチップにシフトするプロセスが不明です)

(6)唯一のボトルネックがソース(たとえば、遅いSDカード)になることが証明されていますUSBハブはデータを90%以上で送り出すことができますが、質問4と5への回答はこのパフォーマンスに直接影響します。

したがって、他のユーザーの調査と貢献を行って、予備的な結果を確立して取得し始めています。

ここに、私たちが扱っているものを視覚化するのに役立つ素晴らしいチャートがあります。

ここに画像の説明を入力してください


1
+1すばらしい回答。画像のソースを提供してもらえますか?
-Jivings

1
この回答は、異なるストレージメディアのそれぞれが非常に異なるパフォーマンス番号を持つ理由を説明する質問に詳細を追加するという素晴らしい仕事をします。そもそも質問に自分で追加すべきだった追加情報をありがとう。
ダンB

1
USBはまだ約30 MB /秒です。つまり、100 Mbitネットワークに十分な余裕があります。
トールビョーンラウンアンデルセン

@ThorbjørnRavnAndersenはい、そうです。しかし、私の質問の1つは、組み込みUSBハブのパフォーマンスに関するものです。本当に速いの?また、ARM CPUに依存しますか?また、LAN経由でフォーム2のソースをコピーするとどうなりますか。これはベンチマークに値するものです。私はそれがそれをしないとは言っていませんが、確かにいくつかの状況では問題になる可能性があります。
ピョートルクラ

現場での経験があるようですね。実際に測定してもらえますか?
トールビョーンラウンアンデルセン

3

明らかに、最高のパフォーマンスはRAMディスクを使用することです。

これは、ネットワーク接続ストレージデバイスにはあまり使用されませんが、その場合、その固定アプリケーションにとって必ずしもpiが最良の選択とは限りません。

piの柔軟性が非常に適しているいくつかの場合、実際のストレージ要件はRAMディスクから明示的に、またはディスクキャッシュメカニズムを介してRAMから明示的に実行するのに十分小さい場合があります(Linux RAMディスクは、バッキングディスクなしのディスクキャッシュです)。

ブートにはカードが必要ですが、RAMから実行することの副次的な利点として、カードを読み取り専用にして、破損のリスクを最小限に抑えることができます。


起動にカードは必要ありません。オペレーティングシステム/ブートローダーが必要です!ブートローダーを変更した場合は、シリアルインターフェイスまたはLANから起動できます。技術的に十分であれば、RPIに3GBのRAMを追加できますが、それは強制的にトピックから外れています。事実は、すべてが愚かなUSBハブを通過するということです!ブリーエ
ピョートルクラ

ブートローダは、少なくとも変更可能なものではなく、SDカードにありますか?ただし、設定ピンのストラップを変更すると、別のソースから内部ブートROMをロードできる場合があります。
クリスストラットン

BCMチップはほぼ肯定的です。たとえば、arduinoのようなものにはブートローダーがあります。RPiのブートローダーを変更します。1、2年待ちます。
ピョートルクラ

arduinoのATMEGAは、フラッシュを内蔵してスタンドアロンで実行するように設計されたマイクロコントローラーの例です。booloaderはユーザーがカスタマイズできます。一方、piのSOCは、外部メモリを必要とするより大きなシステム部品のクラスのものであるようです。通常、これらはブートローダーを備えていますが、工場出荷時に変更できないマスクROMです。そのようなものに基づいた従来の製品では、4〜8 MBの外部フラッシュチップがあります。しかし、piは代わりに取り外し可能なSDカードを使用しているようで、誰かがはんだ付けされたフラッシュを破損する問題を回避しています。
クリスストラットン

それは興味深い。この起動データを含むのはFATパーティションですか?それともSDの隠された部分のどこかに保存されていますか?theroyでは、その後、さらに簡単試みで、他の...デバイス上で「ハッキング」へのロード処理をリダイレクトするように試みることができる
ピョートル・クラ

0

USB HDDまたはUSB SSDは、最速のパフォーマンスを提供するはずです。SDカードはクラス10デバイス用に約12 MB / sを書き込み、USBは最大30 MB / sを取得できます。

HUBは400 Mbit / sを維持でき、イーサネットは100であるため、USBハブがRPiのイーサネットをボトルネックにしていることに同意しません。したがって、理論的には最大4 x Fast Ethernet 100Mb / sポートを維持できます。


これまでにテストしたクラス10のSDはすべて、書き込み速度が19 MB / sを超えています。14MB /秒のクラス6がありました。45mb / sが50mb / sの読み取りと47mb / sの書き込みを達成すると主張するSanDisk Extreme SDは驚きでした。Lexar 400x SDは、読み取り速度70mb / sでテストした最速ですが、書き込み速度約30mb / sです。USB 2.0では、高速SDカード、HDD、SSDの違いはほとんどありません。私が台無しにしたすべてのUSB 2.0インターフェースは、約35 mb / sの上限です。私は、USB 2.0のサムドライブが約10 mb / sを消費し、それより低いものもあるのを見ました。多くのUSB 3.0サムドライブの書き込み速度は、USB 3.0ポートでも10〜20 mb / sに制限されています。
Therealstubot 14

0

USBフラッシュドライブを使用して最大4Mb / sを取得しますが、USD HDDでも同じです。これは、Windowsネットワーク「ホームグループ」を介してRaspberryに接続されたデバイスにファイルをドロップするだけです。

少なくとも10倍は期待していましたが、転送速度を上げることができませんでした。USB HDDに直接FTP転送を試みました(ラップトップに接続すると、このデバイスは+ 60Mb / sで転送されます)が、結果は非常に悪いです。100KiB / s!その結果、わずか数100 MBで数時間のトラフィックが発生します。

データ転送のためにラップトップとRaspberry Piの間でHDDを移動します:-(


最大24 MbpsのUSBスティックにファイルを直接アップロードできるため、構成/ネットワークの問題があると思います。そして、Wi-Fiの代わりにイーサネットでもっとうまくやれると思います。私は使用していvsftpdます。
モーガンクールベ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.