通过USB实现的树莓PI-UASP、Trim和Boot性能

2020-09-20 11:51:03

在过去的几周里,我回顾了Raspberry Pi4上的USB驱动器性能,以及UASP支持对USB驱动器性能的重要性。

这两个帖子都引起了很大的讨论,我想在这篇后续文章中谈到三件事,即:

作为参考,这里是我在这篇文章中测试的所有产品(产品链接指向他们的亚马逊产品页面,从中间上方开始,顺时针方向):

首先,在上一篇文章中,我完全忘记了讨论我测试的哪些USB驱动器支持UASP,哪些不支持UASP。

对于更新器,UASP允许Raspberry PI使用SCSI协议与驱动器通信,这在文件复制和磁盘性能方面比旧的USB大容量存储协议快两倍。

您可以使用命令lsusb-t检查您自己的驱动器是否支持UASP。如果输出显示';UAS';,则表示支持开箱即用。如果它显示';usb-storage';,则不会。

看起来,我测试的所有最快的硬盘都支持它,而所有最慢的硬盘都不支持它。这并不令人惊讶;速度较快的硬盘使用的芯片组更好,这些芯片组都是为固态硬盘性能而打造的。

不过,奥坎特是一个异常值。它不支持UASP,但它的价格确实表现得很好。有时它的行为有点像固态硬盘-我稍后会谈到这一点。

对于我想要报道的第二件事,不是别人,正是树莓PI的工程总监戈登·霍林沃斯(Gordon Hollingworth)在他的Twitter帖子中提示我的。他说:

真正有趣的是,不同的SD卡、USB闪存和NVMe存储在引导时间和从命令行启动网页的时间方面有何比较……。

-戈登·霍林沃斯(@gsholling)2020年8月7日。

测量引导时间时,最重要的是找到一种使用客观测量来比较不同设备的方法。也就是说,你不想坐在那里拿着秒表,试着从插件到桌面都计时,看起来就像开机时间一样。这有时可能会有帮助,但这不是很客观。

取而代之的是,我使用Raspberry PI OS中的内置工具,称为systemd-Analyze。它是一个帮助您分析系统管理器的工具,默认情况下,如果您只运行该命令,它将输出引导时间。这有多容易?!

所有的驱动器都表现得相当不错,尽管非UASP驱动器确实倾向于速度较慢,但奇怪的是SanDisk Ultra Fair例外,它的表现超出了它的重量级别。到目前为止最慢的是SanDisk Ultra Fit,我在上一篇帖子中提到过,它有过热和减速的趋势。

首先,我使用2020年8月版本的Rasbperry PI OS启动,并按照这篇博客文章中的说明配置USB驱动器以启动PI。

其次,PI似乎已经很好地优化了它的引导性能。第一次引导总是有点慢,但在我测试的所有USB驱动器上,随后的引导花费了大约15-17秒。

最大的不同之处在于,在速度较快的固态硬盘和NVMe驱动器上,首次启动速度要快得多,而在廉价的闪存驱动器和microSD卡上,第一次启动速度要慢得多。

戈登在他的推文中提到的另一件事是从命令行测试Web浏览器的启动时间。

这实际上需要做一些工作,想出一种方法从命令行启动Chromium,加载一个网页,然后退出它,并获得该过程的准确时间测量。仅仅使用铬浏览器[这里的URL]并不能解决问题,因为这会启动浏览器,并且在我手动退出浏览器之前,该进程不会退出。

在Twitter上询问其他人可能会做些什么后,我发现了一款名为“木偶”(Puppeteer)的巧妙Node.js实用程序,我可以用它自动完成所有操作,然后我使用Linux中的时间实用程序对每个驱动器的进程进行了三次基准测试。我在这篇文章中详细描述了我是如何做这个基准测试的:测试Chromium打开、加载网页和退出Debian需要多长时间。

差别真的不是那么大。绝对没有我想的那么大。速度更快的驱动器打开Chromium的速度仍然会稍微快一点-特别是在第一次发布时-但速度只有一点点!

我通过VNC连接测试了所有这些PI,在raspi-config中将分辨率设置为1280x720。就像启动时间一样,重启后第一次启动浏览器所需的时间比第二次、第三次、第四次或第五次启动的时间要长一些。

我认为这仅仅意味着只要您有足够的系统内存,Linux中的缓存机制就可以很好地正常化即使是非常慢的引导卷的性能。

一旦第二次启动,在退出并重新启动Chrome之后,最慢的驱动器和NVMe驱动器之间的常见UI任务几乎察觉不到差异。

有些事情,特别是当您在进行升级、安装软件、编写文件或处理大型项目(如我维护的Drupal网站)时,差异会更加明显。

为了测试这一点,我在每个驱动器上安装了php7.3-cli,并检查了这需要多长时间:

还有.。与其他性能测试一样,此测试不是最一致的。我在一些驱动器上运行了几次,在两次运行之间重新刷新了整个驱动器,标准偏差-运行之间的差异-通常在20%左右,所以对这些结果持保留态度。

一般来说,速度较快的驱动器确实做得更好,但在对实际工作负载进行基准测试时,很难获得准确的数字。

您知道GTX和Arcanite是否支持装饰吗?在考虑操作系统存储时,这肯定会有不同之处。

为什么Legogris会对Trim支撑件感兴趣?简而言之,使用固态硬盘时,当少量数据被删除,而新数据需要写入那些旧的已删除位所在的位置时,驱动器可能会减慢速度,并且还会做比应该做的更多的工作。

这是一个非常简单的答案,但基本上可以将其视为SSD的自动碎片整理。我不知道你是否有幸坐在一台旧的Windows电脑前,连续几个小时看着它对你的80MB IDE驱动器进行碎片整理,但它就是这样,速度超快。Trim在技术上不做碎片整理,但它的相似之处在于它让您的固态硬盘通过一些自动清理过程发挥最佳性能。

最困难的是,你必须在你的操作系统--在我们的例子中,Raspberry Pi OS(确实支持TRIM)--和驱动器控制器的固件中都有TRIM支持。

有几种方法可以检查TRIM支持,如运行fstrim命令:

如果它显示不支持丢弃操作,则TRIM当前不适用于您的驱动器。

如果DISC-MAX值为0B,则再次说明,TRIM当前不适用于您的驱动器。

在您按照特殊流程更改其供应模式后,许多适配器将与TRIM一起工作。

我有一篇单独的博客文章,详细介绍了如何启用Trim支持(如果您的固件支持,但默认情况下没有启用):在Raspberry PI上的外部SSD上启用Trim。

某些驱动器控制器可能还需要固件更新才能启用微调支持,因此请查看驱动器制造商的网站。

令人惊讶的是,Inatech外壳似乎没有任何修剪支撑,而TDBT NVMe外壳和海盗船则有。

此外,这是我从未想过的-Raspberry PI实际上支持内置microSD卡的开箱即用的修剪!

但最令人担忧的结果是,Arcanite固件显示了TRIM支持,但当我按照流程更改配置模式并运行fstrim时,驱动器出现了惊人的故障,现在我甚至无法在任何计算机上挂载或初始化它!

所以..。Arcanite固件可能来自SSD,但是闪存本身似乎不能很好地接受fstrim命令。要么是那样,要么是我有一个有缺陷的装置!

最后,我发现在我测试的所有驱动器上都有很多不同的特征,有积极的,也有消极的。如果你只需要一个驱动器来存储大文件,我仍然认为Arcanite是最好的整体价值,即使它不支持UASP,而且如果你尝试启用Trim,它就会爆炸。

如果你追求原始性能,机箱内的NVMe将给你带来最好的回报,以及-至少在我测试的TDBT机箱-完全内饰和UASP支持。

最后,如果你有任何USB3.0驱动器,除了便宜的闪存驱动器,它的性能可能会和Raspberry PI 4中的microSD卡一样好,甚至更好。