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
    +关注

    关注

    60

    文章

    8372

    浏览量

    281670
  • 固态硬盘
    +关注

    关注

    12

    文章

    1607

    浏览量

    60104
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109692
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    USB3.0 电路板布局指南

    该文章介绍USB3.0的布局布线要求及走线规范
    发表于 08-19 16:50 2次下载

    如何使用树莓与OpenCV实现面部和运动追踪的云台系统?

    使用树莓和OpenCV实时扫描并存储二维码使用树莓和OpenCV实现物体与动物识别使用树莓
    的头像 发表于 08-14 17:45 957次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>与OpenCV实现面部和运动追踪的云台系统?

    【创龙TL3562-MiniEVM开发板试用体验】评估板功能测试(二)

    2.0 HOST 接口读速度约为 30.7MB/s,耗时约为 33.93s。 三、USB3.0 OTG 接口 HOST 模式测试 (1)查看 SSD 固态硬盘信息 找了一个64G的
    发表于 07-31 15:26

    树莓挖掘5种顶级加密货币!

    挖掘的最佳加密货币可通过CPU或硬盘挖掘获得。这些加密货币采用“抗ASIC”算法,树莓能够处理并解决这些算法。我将为您介绍适合在树莓派上
    的头像 发表于 07-21 16:34 927次阅读
    <b class='flag-5'>用</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>挖掘5种顶级加密货币!

    基于FPGA和USB3.0通信的UVC摄像机设计方案

    本次演示的是USB3.0芯片-CYPRESS CYUSB3014(下称 FX3),该芯片是标准的USB3.0 PHY,可以大大简化使用USB通信时FPGA的设计,主需要使用状态机
    的头像 发表于 07-21 16:20 6155次阅读
    基于FPGA和<b class='flag-5'>USB3.0</b>通信的UVC摄像机设计方案

    电流功率检测USB3.0HUB,USB3.0扩展坞,可扩展的USB2.0

    “Power HUB V1.0”,1转7路USB3.0 HUB,电流功率可视化!USB2.0和3.0分工! 演示视频: https://www.bilibili.com/video
    发表于 06-28 00:23

    树莓分类器:树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 984次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:<b class='flag-5'>用</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    使用CYUSB3014作为USB3.0数据传输方案,USB3.0无法识别是什么原因?

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

    树莓“吉尼斯世界记录”:将树莓性能发挥到极致的项目!

    树莓是一款功能强大、体积小巧且高度可定制的设备,多年来,我们见证了它被应用于众多领域。无论是将其装入3D打印的经典游戏机外壳,还是简单地将它隐藏起来作为家庭文件服务器,我们都报道过在社区里
    的头像 发表于 05-22 16:53 1199次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的<b class='flag-5'>性能</b>发挥到极致的项目!

    外在部件将其从USB3.0强制到USB2.0后如何高效重新打开设备?

    使用cyusb.dll(NET), USBDeviceList枚举USB设备,可以正常访问,当我外在部件将其从USB3.0强制到USB2.0后如何高效重新打开设备,重复调用USBDe
    发表于 05-19 06:15

    CYUSB3014无法识别为USB3.0设备怎么解决?

    。CYUSB3014的供电部分我参考了官方文档,但是我0欧姆电阻替代了磁珠。没有磁珠可能会导致无法被识别为USB3.0设备吗?
    发表于 04-30 07:24

    CH634USB3.0HUB控制芯片USB3.0国产控制芯片

    CH634是南京沁恒微电子股份有限公司推出的一款高性能、工业级4端口USB3.0 HUB控制器芯片,该芯片全面符合USB3.2 Gen1协议规范,集成了四口USB HUB和
    的头像 发表于 02-07 16:07 4105次阅读
    CH634<b class='flag-5'>USB3.0</b>HUB控制芯片<b class='flag-5'>USB3.0</b>国产控制芯片

    轩展科技发布4K USB3.0编码采集模块

    及高清视频产品二次开发解决方案提供商,轩展科技一直致力于为客户提供优质、高效的产品和服务。 这款4K USB3.0编码采集模块支持4K超高清分辨率,拥有USB3.0高速数据传输接口,同时还具备TYPE-C与HDMI双4K输出功能。其卓越的
    的头像 发表于 12-30 11:19 998次阅读

    HD3SS6126用于USB3.0信号切换,是否可以级联是,最多可以级联几级?

    我现在是HD3SS6126用于USB3.0信号切换,但是我需要多重信号切换, 请问如果是该芯片是否可以级联是,最多可以级联几级, 如果级联多了使用会不会导致
    发表于 12-26 06:44

    USB3.0 工业相机的传输速率是否受到电脑主板某些硬件的限制?

    设置为500FPS,对应2ms采集一张照片。 ② 电脑为具有4个USB3.0接口的电脑(台式机或者笔记本),目前的测试机为联想拯救者(Ryzen5800H,16GB内存,512GB PCI-E 3.0
    发表于 12-08 21:20