0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用USB3.0和固态硬盘启动树莓派 并进行性能测试

如意 来源:百家号 作者: 虫虫搜奇 2020-06-27 17:11 次阅读

近日,树莓派基金会宣布了树莓派的8G内存版本,并发布了一个支持USB引导的固件版本。借此来解决长期以来令人诟病的磁盘IO问题。此前硬件版本树莓派最大外部磁盘速度受到限制,尤其是 USB 2.0 总线与网络适配器共享,进一步限制了其带宽,即使 USB 启动也快不到哪去。

树莓派 Pi 4 架构中不仅将网络适配器与USB总线分离,而且开始支持USB 3.0,其理论上可以比USB 2.0快10倍。所以此次USB引导测试版的新固件为提高树莓派的性能带来了曙光。日前一个小哥Jeff Geerling就分享了他的对新版本体验,并且做了基准测试,本文我们就一起来学习下小哥的实践过程。

用USB 引导树莓Pi 4

首先,用一个32GB SanDisk Pro microSD制作了最新的64位测试版树莓派操作系统。该测试版本系统可以从树莓派论坛下载

要制作引导盘,需要使用使用dd。实践中使用了一台老的Mac,当然也可以直接使用树莓派官方镜像。

然后,按照USB 引导测试版设置说明,进行以下操作:

1、启动SD卡引导的树莓派系统。

2、在树莓派操作系统中打开终端,也可以通过SSH 从另一台计算机执行。

3、运行以下命令,升级系统

sudo apt update

sudo apt full-upgrade

4、修改/etc/default/rpi-eeprom-update文件,将其值由“CRITICAL”修改为“BETA”。

5、 运行下面命令,更新EEPROM :

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-06-03.bin

6、 重新启动,并通过打开终端并运行检查引导加载程序版本:

vcgencmd bootloader_version

应该输出类似下面的信息

Jun 3 2020 13:53:47

version b5de8c32f4f45a12a1fdfe107254df82965f9d56 (release)

timestamp 1591188827

这样表示引导成功,接下来还需要将 Pi OS flash到外部 USB SSD 或 HDD。首先,最好在启动驱动器时将需要加载的设备插入并确保系统已经识别了它(应该出现在桌面上或者使用lusb找的到)。注意:不是任何外部驱动器和 USB SATA 适配器支持开箱即用。

该试验中使用的是金士顿A400 240GB SSD,硬盘盒使用的是Inateck USB 3.0 SATA enclosure。

将USB驱动器插入主计算机(之前制作microSD卡的电脑),并将树莓派操作系系统烧录到它,和microSD 操作一样。

在引导boot卷之前,需要将卷上的一些文件替换为 GitHub 的最新版

在树莓派固件GitHub 存储库(github.com/raspberrypi/firmware),下载发布的zip压缩包或者git clone整个仓库。

在boot目录中,复制所有以.elf和.dat的结尾的文件到boot卷(替换已存在的同名文件)。

弹出boot卷,然后拔下 USB 驱动器。

重启当前以microSD 卡运行的系统,拔下microSD卡,然后插入USB驱动器。

请确保将驱动器插入到了USB 3.0端口(蓝色端口)。

打开树莓派电源,大约一分钟后,如果正常就可以应该可以启动,引导界面如下:

用USB3.0和固态硬盘启动树莓派 并进行性能测试

注意:上图有个错误提示,主要是引导加载程序不能启动通过USB-HDD后系统重新启动的问题,不影响使用。目前解决方案拔下引导usb设备树莓派完全关闭电源, 然后插入它回来。

基准测试

为了了解其microSD卡启动时磁盘和USB SSD启动的性能差距,小哥进行了一系列的基准测试。

第一个基准测试是对大文件写入及小文件(4K)随机访问读取/写入。这两者都很重要,但在许多方面,当使用像树莓派这样的通用计算机时,后者的差异会更有意义,因为计算机不不会整天读取和写入大型文件(大量顺序访问),例如摄像机或无人机(这是大多数microSD卡都会优化的用例)。

如果要自行运行此基准测试。记录在Pi Dramble维基的磁盘访问基准页。注意,对于 USB SSD,测试中修改了hdparm路径由/dev/mmcblk0改成了/dev/sda1。结果如下图:

用USB3.0和固态硬盘启动树莓派 并进行性能测试

结果确实可以说明问题。对于顺序操作,使用 USB SSD 比使用 microSD 卡快 3-4 倍。对于随机访问,随机读取速度稍快一些,但写入速度约为8倍。这在很多活动中有所不同,例如启动应用、运行具有许多选项卡的 Web 浏览器。顺序性能意味着可以轻松流式传输和录制4K高清视频,树莓派也有足够的带宽用于其他内容。

为了了解磁盘访问如何影响熟悉的真实应用程序的性能(并且能够以高度准确的结果彻底进行基准测试),还测试运行多年的Pi Dramble Drupal 基准,运行了一组Drupal基准。测试会运行Docker容器化的Drupal系统和MariaDB数据库,然后通过Nginx访问。结果如下:

用USB3.0和固态硬盘启动树莓派 并进行性能测试

和前面一样,也运行了所有测试 4x,在同一配置上,所有结果都相差不到 0.5%,因此很明显,SSD 在许多操作中产生了巨大的不同:Drupal 的安装和第一页加载导致数百个文件被访问和/或写入磁盘,因此在 SSD 上更快。因此,它有意义。

另外还测试了另一个方案:在 Drupal 中加载和重新加载页面:

用USB3.0和固态硬盘启动树莓派 并进行性能测试

这些基准测试显示,对于某些操作,磁盘IO性能差异并不明显。在 Drupal的案例中,处理和返回每个页面时会将所需的数据将缓存(opcache 或者memcache,redis等数据库的缓存中),可以保持读取和写入最小化。

总结

本文中尝试了在树莓派中运行USB SSD的尝试。根据基准测试使用USB3.0和SSD硬盘可以极大提高树莓派的IO性能。在这种方案下,可以一定程度上扩充树莓派的存储和访问性能,可以让树莓派的通用性加大,而不仅仅是个玩具。当然我们的呼声是树莓派能提供真正的磁盘接口,而不仅仅是USB。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    59

    文章

    7432

    浏览量

    258095
  • 固态硬盘
    +关注

    关注

    11

    文章

    1356

    浏览量

    56496
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104736
收藏 人收藏

    评论

    相关推荐

    使用CYUSB3014作为USB3.0数据传输,USB3.0无法识别的原因?

    我们使用CYUSB3014作为USB3.0数据传输方案,目前处于试产阶段。试产过程中偶尔出现板卡连接至PC后,USB3.0无法识别的情况。 固件使用的官方SlaveFifoSync固件。问题板卡上电
    发表于 02-23 06:12

    PCIe-6328 八口USB3.0图像采集卡:专为工业自动化和机器视觉设计

    。绝大多数现有USB3.0卡兼用多个接口于一个USB3.0控制核心上,如此操作将会使得性能显著下降。为最大化每个端口的性能,PCIe-6328拥有4颗独立Rene
    的头像 发表于 01-22 17:05 173次阅读
    PCIe-6328 八口<b class='flag-5'>USB3.0</b>图像采集卡:专为工业自动化和机器视觉设计

    USB3.0高速接口布局指南

    电子发烧友网站提供《USB3.0高速接口布局指南.pdf》资料免费下载
    发表于 01-02 10:21 2次下载

    【爱芯 Pro 开发板试用体验】CPU性能测试,与树莓4B对比

    coremark源码下载到爱芯Pro上: git clone https://github.com/eembc/coremark.git 下载完成后,可以看到如下文件: 三、CoreMark性能测试 3.1
    发表于 01-01 16:36

    USB3.0如何辨别

    泛的还是USB3.0,本篇也是主要介绍USB3.0。它是超高速传输接口,可以提供最高5.0Gbit/s的传输速率,并且相比与USB2.0,增加了新的电源管理功能,支持待机,睡眠等,更加省电。并且也从半双工
    的头像 发表于 11-07 11:01 770次阅读
    <b class='flag-5'>USB3.0</b>如何辨别

    什么是USB3.0usb3.0usb2.0有什么区别?

    什么是USB3.0usb3.0usb2.0有什么区别 USB3.0是指“超级速度USB”,它是一种高速数据传输技术,是
    的头像 发表于 10-27 14:31 4450次阅读

    绿联三口 USB3.0 HUB接口拆解

    可以看到USB HUB用的GL5320,是一个常见的4口方案,USB3.0转以太网用掉一个,所以只有3个USB口给用户。 USB 3.0
    发表于 10-09 09:23 615次阅读
    绿联三口 <b class='flag-5'>USB3.0</b> HUB接口拆解

    面向USB3.0的新型ESD防护设计

    电子发烧友网站提供《面向USB3.0的新型ESD防护设计.pdf》资料免费下载
    发表于 10-08 14:31 1次下载
    面向<b class='flag-5'>USB3.0</b>的新型ESD防护设计

    USB3.0一致性测试那点事

    USB3.0又称为SuperSpeed USB,比特率高达5Gbps,相比目前USB2.0的480Mbps的速率,提高了10倍以上。
    发表于 10-02 16:06 1014次阅读
    <b class='flag-5'>USB3.0</b>一致性<b class='flag-5'>测试</b>那点事

    基于FPGA的USB3.0回环传输测试方案

    本文开源一个FPGA项目: USB3.0 LoopBack 。基于FPGA的USB3.0通信方案有很多,其中非常好用的一款USB3.0芯片是 FT600/601Q 。
    的头像 发表于 10-01 09:49 1749次阅读
    基于FPGA的<b class='flag-5'>USB3.0</b>回环传输<b class='flag-5'>测试</b>方案

    请教下,USB3.0的HUB接下行接4个USB2.0设备,上行是使用USB3.0通讯还是2.0?

    如题,USB3.0的HUB接下行接4个USB2.0设备,上行是使用USB3.0通讯还是2.0? 是这样,USB3.0的HUB,下行接了4个USB
    发表于 09-12 13:21

    USB3.0合规性研讨会中的CV和xHCI测试用户指南

    电子发烧友网站提供《USB3.0合规性研讨会中的CV和xHCI测试用户指南.pdf》资料免费下载
    发表于 07-25 18:27 0次下载
    <b class='flag-5'>USB3.0</b>合规性研讨会中的CV和xHCI<b class='flag-5'>测试</b>用户指南

    树莓派CM4_Ultra扩展板硬件资源介绍原生千兆 2.5G以太网 USB3.0 WiFi6 5G SSD固态硬盘

    的WiFi6、M.2 M key NVME SSD固态硬盘、PCIE 2.5G以太网、PCIE转四路USB3.0。CM4_Ultra扩展板资源较为丰富,除了上述PCIE扩展接口外还板载一路原生千兆
    的头像 发表于 07-14 15:36 620次阅读
    <b class='flag-5'>树莓</b>派CM4_Ultra扩展板硬件资源介绍原生千兆 2.5G以太网 <b class='flag-5'>USB3.0</b> WiFi6 5G SSD<b class='flag-5'>固态</b><b class='flag-5'>硬盘</b>

    USB3.0投屏芯片MS9132介绍

    MS9132是一款USB3.0投屏芯片,内部集成USB3.0 Device控制器、数据收发模块、音视频处理模块。MS9132可以通过USB3.0接口将PC、智能手机、平板电脑上的信息显示或扩展到更大尺寸的显示设备,支持HD视频接
    的头像 发表于 06-26 17:05 1897次阅读
    <b class='flag-5'>USB3.0</b>投屏芯片MS9132介绍

    凯智通SSD固态硬盘测试解决方案

    关于SSD固态硬盘测试座,顾名思义SSD固态硬盘测试座是用于
    的头像 发表于 05-22 17:19 502次阅读