什么是性能最高的硬件配置?


35

我知道确切的基准数字会因制造商而异,但是通常,如果您仅考虑高端闪存驱动器,SD卡和USB HDD,并且Raspberry Pi通过以太网交换机连接到网络,那么从网络上最快的配置是什么数据传输的观点?我只是在寻找答案,在这些答案中人们实际上已经尝试过以下所列的配置并获得了实际的结果,而不是理论上的结果。

显然,必须使用SD卡,因为至少在启动周期的一部分需要使用SD卡,但是假设您在下面列出的每个设备上都具有一个额外的数据分区,该分区在Raspberry Pi上具有最高的网络传输速度?

  1. SD卡
  2. USB随身碟
  3. USB硬盘

这个问题并非无关紧要,因为在某些时候,与其中一个与以太网通信相结合的存储设备相关的处理开销可能会影响传输速率,而且Raspberry Pi上的以太网端口也受USB总线控制,因此一般而言,吞吐量应受到以下因素的影响:以太网数据传输和USB媒体数据传输的协调。我不知道SD卡是否与USB端口和以太网端口位于同一共享USB总线上,但是如果不是这样,我认为这将是一个很大的好处。

编辑以将网络传输作为基准要求


1
仅供参考,回答者可以sudo hdparm -t /dev/sdx用作基准测试的有用工具。
吉文斯

2
我没有基准,但它是常识:固态硬盘>硬盘>闪存>固态硬盘>光学媒体
亚历山大

+1-关于SD端口的要点-它与USB /以太网在同一总线上吗?SD和共享USB存储设备上的共享负载工作得更好吗?
乔恩·埃格顿

@XAleXOwnZX确保这些设备所在的总线是否可以匹配设备的最大性能,这就是命令,但我敢打赌,由于Raspberry Pi仅具有USB,因此您的命令将更像ssd = hdd = flash> Optical根据SD是否具有自己的总线(与USB端口分开),SD可以位于该列表中的任何位置。
Dan B

那是一个好点,但是可以肯定的是,HDD> Flash。我的USB硬盘驱动器的速度为30 mb / s,而我的闪存驱动器的驱动器速度为5-10
Alexander

Answers:


35

在基准测试中,您必须始终确定自己的极限。因为如果您希望从该局域网中获得100mbs,那么您只会自欺欺人!

看看RaspberryPI Model-B的此模块设计 在此处输入图片说明

因此,我们在这里建立了一个非常重要的事实。以太网是USB控制器的瓶颈,因为我们建立的模块图已连接到USB集线器。(没有明确的指示是使用其他总线还是仅使用USB2?)

哦,看-另一个框图,

在此处输入图片说明

现在,这可以进一步了解情况。10/100控制器连接到USB集线器-再次不幸的是,规格上没有说明集线器与lan控制器的通信速度有多快-期望关键事实是USB速度和lan能够协商适用于混合速度的USB环境。

SD卡在哪里?

事实证明,SD卡直接连接到BCM2835(第65页),并且它们详细介绍了各种配置级别如何影响性能。需要注意的重要一点是,如果SD卡具有专用时钟,则它可以全速独立于核心CPU / GPU运行(无论使用哪种卡和标准-您都可以看到它支持一些标准)。

在此处输入图片说明

那是什么意思呢?

这意味着,如果您对更快的SD卡和笨拙的笔式驱动器(4gb / 8gb)进行基准测试,则很可能会遇到巨大的性能差异。因此,现在提出了一个问题:CPU / GPU如何处理与这种出色的嵌入式设备(usb / lan芯片)的通信,以及通信的速度。

您看到理论在实际进行基准测试之前可以走多远?这里的另一个关键点是-CPU如何控制数据流。是否按照建议使用单独的时钟通道?

在理想的世界中,您会认为此LAN / USB可以处理它。但这需要MCU。在框图中的任何地方都可以看到MCY吗?

因此,CPU必须请求IO DATA向其发送USB端口,然后它才通过相同的USB HUB进入LAN端口。是的,这样会在某些地方引起速度问题。

还需要注意的是,当您全部通过LAN复制到USB随身碟或从SD卡复制时会发生什么,这会引起一些流量。

我们需要对各个方面进行基准测试

在建立我们试图进行基准测试时,我们可以提出一个现实世界的问题。

  1. 内部USB处理SD数据的速度有多快?
  2. 要使用多少CPU来读写SD,然后再写入LAN?
  3. 用来读写USB随身碟的CPU数量是多少?
  4. 复制任何数据是否直接影响CPU使用率?
  5. 嵌入式USB / LAN芯片处理来自2个源的数据读回到LAN端口的性能如何,并按比例影响CPU?
  6. 不需要测试lan是否会达到完整的10mb / s,这是因为USB集线器所处的状态使lan成为瓶颈。

现在您知道了您要争取的是什么,我挑战您回答自己的问题。

您可能会发现这是一个很好的起点。

参考文献

但主要是

我根据自己的嵌入式经验进行的技术知识和评估。OP提出了一个很好的问题,但是缺乏理解,如果没有理论上对系统的理解,那么您注定要尝试评估/解决实际问题。

结果

(4) 此答案显示了一些切实可行的测试。并且证明了进行大量数据传输会直接影响CPU(只是不确定是SD卡还是将BCM芯片内部的数据转移到USB / LAN芯片的过程)

(6)已经证明,唯一的瓶颈将是源(例如,慢速SD卡)USB集线器设法以90%+的速度泵送数据,但是对问题4和5的回答可以直接影响该性能。

因此,在进行其他用户的研究和贡献后,我们开始建立并获得初步结果。

这是一个不错的图表,可帮助您直观地了解我们正在处理的内容。

在此处输入图片说明


1
+1好答案。虽然可以请提供图片来源吗?
吉文斯

1
这个答案在向问题添加细节方面做得很好,解释了为什么每个不同的存储介质都可能具有非常不同的性能数字。首先,感谢您本人应在问题中添加的其他信息。
丹B

1
USB仍约为30 MB / s,即足以为100 Mbit网络保留。
托尔比约恩Ravn的安德森

@ThorbjørnRavnAndersen是的,这是真的。但是我的问题之一与嵌入式USB集线器的性能有关。真的快叫吗?并且它是否取决于ARM CPU,以及通过LAN复制Form 2源时会发生什么。。这值得进行基准测试。我并不是说它不会这样做-但在某些情况下肯定会是一个问题。
Piotr Kula 2012年

听起来您在该领域有经验。您可以进行实际测量吗?
托尔比约恩Ravn的安德森

3

显然,最高性能是使用虚拟磁盘。

对于网络连接存储设备来说,这并没有多大用处,但是,pi不一定是该固定应用程序的最佳选择。

对于pi的灵活性特别适合的某些情况,实际存储需求可能足够小,可以从ramdisk显式运行,或者通过磁盘缓存机制从ram隐式运行(Linux ramdisk只是磁盘高速缓存,无论如何都不支持磁盘)。

您仍然需要从中引导卡,但是从ram运行的附带好处是,您可以使卡保持只读状态,并最大程度地降低损坏卡的风险。


您不需要卡来启动。操作系统/引导加载程序需要它!如果更改了引导加载程序,则可以从串行接口或LAN引导。如果您有足够的技术,则可以在RPI中添加3GB的ram-但这绝对不是主题。事实是一切都通过愚蠢的USB集线器进行!bleeeh
Piotr Kula

引导加载程序(至少可以更改的引导加载程序)不是位于SD卡上吗?如果您更改一些配置引脚的捆扎带,则可能能够从另一个源加载内部启动rom。
克里斯·斯特拉顿

我几乎肯定BCM芯片..像arduino一样,有一个bootloader ..(例如PC上的BIOS)必须有一些初始程序才能加载下一个程序,依此类推。更改RPi上的bootlaoder。请等待一两年。
Piotr Kula 2012年

arduino的ATMEGA是设计为独立运行并带有内部闪存的微控制器的示例。用户可以自定义booloader。另一方面,pi的SOC似乎来自需要外部存储器的较大系统部分。这些通常确实具有引导加载程序,但是这是一个掩码rom,一旦离开工厂就无法更改。在基于此类传统产品的传统产品中,将有一个4-8 MB的外部闪存芯片。但是pi似乎改用可移动SD卡,从而避免了有人损坏焊接下来的闪光灯的问题。
克里斯·斯特拉顿

这太有趣了。那么包含该引导数据的FAT分区是吗?还是将其存储在SD的隐藏部分中的其他位置?在理论上,您可以尝试更轻松地尝试将加载过程重定向到设备上的另一个“被黑客入侵” ...
Piotr Kula,

0

USB HDD或USB SSD应该为您提供最快的性能。对于10类设备,SD卡的写入速度约为12 MB / s,而USB的最高速度可达30 MB / s。

我不同意USB集线器会限制RPi上的以太网,因为HUB可以支持400 Mbit / s,而以太网是100。因此,理论上它可以支持多达4个100Mb / s快速以太网。


我测试过的每一个10级SD的写入速度都> 19mb / s。我有一个速度为14mb / s的6级课程。声称速度为45mb / s的SanDisk Extreme SD的读取速度为50mb / s,写入速度为47mb / s,这令人惊讶。我测试过的Lexar 400x SD最快,读取速度为70mb / s,但写入速度约为30mb / s。在USB 2.0上,快速SD卡,HDD和SSD之间几乎没有区别。我搞砸的所有USB 2.0接口的输出速度都约为35mb / s。我见过USB 2.0拇指驱动器的速度约为10mb / s,有些甚至更低。即使在USB 3.0端口上,许多USB 3.0拇指驱动器的写入速度也限制在10-20 mb / s!
Therealstubot 2014年

0

使用USB闪存驱动器时,最大速度为4Mb / s,对于USD HDD,速度相同。这只是通过Windows网络“ homegroup”将文件拖放到连接到Raspberry的设备上。

我原本以为至少有10倍的预期,但是我没有设法加快传输速度。我尝试直接将FTP传输到USB HDD(连接到笔记本电脑后,该设备以+ 60Mb / s的速度传输),但是效果非常差。100KiB / s!仅几百MB就导致数小时的流量。

现在,我将HDD在笔记本电脑和Raspberry Pi之间移动以进行数据传输:-(


我认为您有配置/网络问题,因为我可以将文件直接上传到USB记忆棒中,速度最高为24 Mbps。而且我认为我可以使用以太网而不是Wi-Fi做得更好。我一直在用vsftpd
Morgan Courbet
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.