树莓派4B已经发布一年多了,8G内存版本也发布了半年了。树莓派 Pi 4B架构中不仅将网络适配器与USB总线分离,而且开始支持USB 3.0,其理论上可以比USB 2.0快10倍。
![05258d758a2177182f40e85fb844a63e.png](https://i-blog.csdnimg.cn/blog_migrate/31574c674d8fc8dec3d74d4c03b5c22d.jpeg)
USB 3.0带来了UASP和TRIM技术可以弥补树莓派没有内置硬盘存储方面的缺点。本文我们参考Jeff Geerling的测试,来看看树莓派4B USB性能和UASP和TRIM支持的情况。
概述
为了测试树莓派4B USB3.0的性能,Jeff Geerling测试了常见的一些产品,包括:
金士顿120GB SSD,带有XPG SX6000 128GB NVMe的TDBT M.2 enclosure,海盗船Flash Voyager GTX 128GB ,Arcanite 128GB USB 3.1 闪存,闪迪 Ultra Flair 16GB USB 3.0 闪存,闪迪 Ultra Fit 128GB USB 3.0闪存,三星Evo+ 32GB microSD
![f3845c69045fb05792eb680735fd3108.png](https://i-blog.csdnimg.cn/blog_migrate/6da0a216c676352c8d375fb8b80d4029.jpeg)
UASP支持
USAP是USB-IF制定的USB接口全新传输协议,USAP可以让大容量储存设备的传输速度提高20%,并降低CPU的利用率、数据延迟和等待时间。UASP技术可以让Raspberry Pi使用SCSI协议与驱动器进行通信,其文件复制和磁盘性能的速度是旧版协议的两倍。可以使用lsusb -t命令检查驱动器是否支持UASP:
如果输出显示"uas",则表示该产品开箱即用。
如果显示"usb-storage",则表示不支持。
下面我们列出了测试的设备对UASP的支持。
![9860358b6aa76beab2578fd91c99d624.png](https://i-blog.csdnimg.cn/blog_migrate/f77576d99d52831ceee38248ae9f3e58.jpeg)
基准测试中,比较快的设备都支持是支持UASP,比较慢的都不支持。那里没有什么大的惊喜。需要提及的,Arcanite设备尽管不支持UASP,性价比更好。
性能测试
启动性能
测量启动时间时最重要的事情是找到一种使用客观测量方法比较不同设备的方法。为了测试不过usb设备下树莓派的启动时间,测试中树莓派 OS中使用了一个内置工具,称为systemd-analyze。用该工具可以帮助分析系统,默认情况下如果运行该命令,会输出引导系统需要时间。
对每个驱动器执行了三次操作,并对结果取平均值:
![6667120b208e5737995143b356dfa5c3.png](https://i-blog.csdnimg.cn/blog_migrate/e036535d9f6948c57b74d369ea71b460.jpeg)
所有的驱动器性能表现都很好,尽管非UASP驱动器的确速度较慢。启动最慢的是SanDisk Ultra Fit,还会有过热和速度缓慢下降的问题。
启动的2020年8月版的Rasbperry Pi OS,并配置了USB驱动器,使其能够启动Pi。其次,似乎Pi已经很好地优化了其启动性能。在测试的所有USB驱动器上,首次启动总会慢一些,但随后的启动大约需要15-17秒。最大的不同是,在速度更快的SSD和NVMe驱动器上的首次启动速度要快得多,而在廉价闪存驱动器和microSD卡上的启动速度要慢一些。
浏览器启动时间
还测试了从命令行测试Web浏览器的启动时间。测试了从命令行启动Chromium,加载网页然后退出的方法,并获得了该过程的准确时间度量。过程使用了一个名为puppeteer的简洁Node.js实用程序,可以用来自动完成所有操作。在Linux中使用该程序对每个驱动器进行3次基准测试。结果如下:
![79a7e401f349374878f4e8693207d2de.png](https://i-blog.csdnimg.cn/blog_migrate/0b7ed39c9566f635818a8afd01086258.jpeg)
结果显示的差别实际上并没有那么大。更快的驱动器打开Chromium的速度仍然要快一点(尤其是在首次启动时),显示优势并不明显。
通过VNC连接测试了所有这些Pi,分辨率设置raspi-config为1280x720。就像启动时间一样,重新启动后浏览器的首次启动要比第二,第三,第四或第五次启动花费更长的时间。这意味着Linux的缓存机制擅长标准化引导性能,即使启动速度非常慢,只要有足够的系统内存。
第二次启动后,退出并重新启动Chrome后,最慢的驱动器和NVMe驱动器之间的任务差异几乎是无法察觉的。
在某些方面,尤其是进行升级,安装软件,编写文件或从事大型项目时,两者之间的差异更加明显。
为了测试这一点,Jeff Geerling在php7.3-cli在每个驱动器上进行了安装,并检查了花费的时间:
![126782379abc31ce1d1cbbc446f88437.png](https://i-blog.csdnimg.cn/blog_migrate/4845a7c7853cbbcfd8bc5c6e0887d947.jpeg)
与其他性能测试一样,这不是最一致的。在某些驱动器上运行了几次,重新刷新两次运行之间的整个驱动器,并且标准偏差(两次运行之间的差异)通常为20%左右。
一般而言,更快的驱动器那样做的更好,但它是硬标杆真实世界的工作负载时得到确切的数字。
TRIM支持
使用SSD,当删除少量数据,并且需要将新数据写入这些旧删除的位置时,驱动器可能会变慢,并且执行的工作量超出其应有的水平。
![99d6a539df21047e80221df022720571.gif](https://i-blog.csdnimg.cn/blog_migrate/153c3c7034e583df315e2a7d9871d598.gif)
这是一个非常简单的答案,但基本上可以将其视为SSD的"自动碎片整理"。从技术上讲,TRIM不会进行碎片整理,但它的相似之处在于,它可以让SSD通过一些自动清理过程发挥最佳性能。
困难的是,必须在操作系统(在本例中为Raspberry Pi OS(确实支持TRIM))和驱动器控制器的固件中都具有TRIM支持。
有几种检查TRIM支持的方法,例如fstrim命令:
sudo fstrim -v /
如果显示the discard operation is not supported,则TRIM当前设备不支持TRIM。。
也可以运行以下lsblk命令:
lsblk -D
如果该DISC-MAX值为0B,则再次说明当前设备不支持TRIM。某些驱动器控制器可能还需要更新固件以启用TRIM支持,因此请访问驱动器制造商的网站。测试设备对TRIM的支持情况:
![009073c2cadd333ff07605b62784a4aa.png](https://i-blog.csdnimg.cn/blog_migrate/c05f5c3d9d63584cf50518820402e2fb.jpeg)
令人惊讶的是,Inatech似乎并不支持TRIM,而TDBT NVMe和海盗船却支持。
而且, 树莓派的MicroSD卡对TRIM支持却是开箱即用。
总结
最后,在我测试的所有设备都有很多不同的特性,无论是正面的还是负面的。如果只需要一个设备来存储大文件,即使它不支持UASP,Arcanite是最佳的整体价值,如果需要启用TRIM,则可能会有问题。
而且,如果追求原始性能,则TDBT M.2 enclosure NVMe是性能最好的,而且能全面支持TRIM和UASP。
最后,如果有任何USB 3.0设备(廉价闪存驱动器之外),它性能可能会比树莓派4B的microSD卡好。