![是什么导致从 USB 设备运行 Ubuntu 的速度变慢](https://linux22.com/image/903319/%E6%98%AF%E4%BB%80%E4%B9%88%E5%AF%BC%E8%87%B4%E4%BB%8E%20USB%20%E8%AE%BE%E5%A4%87%E8%BF%90%E8%A1%8C%20Ubuntu%20%E7%9A%84%E9%80%9F%E5%BA%A6%E5%8F%98%E6%85%A2.png)
我想随时随地使用可移植的 Ubuntu,所以我买了一个 USB 棒(DT50/64),规格为 100MB 读取速度,并在其上安装了(持久安装,不是实时 USB)Ubuntu 18.04。即使在安装过程中,我也注意到该过程花费的时间比我预期的要长得多。安装后,我意识到它有多慢。启动时间长,工作时不断挂起。我注意到 USB 棒在工作时会发热很多。经过一番谷歌搜索,我禁用了交换文件,将日志切换到 RAM,但系统在这种设置下仍然运行得很慢。
所以我想知道在这种情况下瓶颈是什么?是 USB 驱动器本身的问题吗?是 USB 驱动器速度慢吗?还是 USB 端口限制?如果我使用外部 USB SSD,速度会更快吗?
顺便说一句,我正在插入 USB 3.0 端口。
更新:总结一下这里的所有答案,瓶颈在于 USB 棒技术本身,而不是 USB 端口,便宜的外部 SSD 应该能给我提供可接受的工作速度(类似于内部 HDD 甚至更好)。一旦我获得 SSD 并在其上测试系统,我将立即更新此帖子。(外部 SSD)
更新:感谢@thomasrutter。我确实找到了一个带有 USB 插槽的旧硬盘,经过一些测试后,我得到了这个:
- gdisk 基准测试显示,我的 USB 棒的 R/W 为 105/80 MB/s,连接到 USB 的 HDD 的 R/W 为 44/40。尽管 USB 棒的平均速度明显优于其他产品,但图形呈现锯齿状(在整个时间线上时而跳到最高速度,时而跳到最低速度),而 HDD 的“线”则比较稳定。
- 在 USB 上安装 Ubuntu 需要 30 多分钟,在 HDD(连接到 USB 端口)上安装则需要不到 10 分钟
- 通过 USB 启动 Ubuntu,经过以下调整后:noswap、禁用日志……运行起来很慢 - 经常挂起一段时间。HDD 运行良好,可以不受干扰地克隆 git 存储库并安装节点模块,应用程序运行速度非常快,启动速度也很快。
结论:我会选择一些带有口袋的中型SSD并使用它。
答案1
瓶颈具体是驱动器的随机写入速度。
对于只读工作负载,USB 速度很快。对于连续写入,USB 速度足够快。但对于随机写入,它们非常非常慢。
以下是 USB 驱动器的典型速度测试:
请注意,在右栏中,512KB 块的写入速度很差(小于 2MB/s),但 4KB 块的写入速度非常差(小于 0.03MB/s)!您的系统驱动器需要能够频繁地对临时文件、日志记录和缓存(例如通过 Web 浏览器)进行小规模写入,而这些活动会堵塞 USB 棒。
这个特定的驱动器的随机 4K 读取速度也相当慢,但 0.76 MB/s 的速度仍然比 4K 写入速度快一个数量级。
相比之下,以下是典型 SSD 的结果:
SSD 使用磨损均衡和写入重映射,这是两项复杂的技术,既可以延长驱动器寿命,又可以大幅加快写入速度。
相比之下,传统 HDD 在 4K 写入时的速度约为 1.0 - 1.5MB/s。一旦达到该性能水平(现在 SSD 的性能已超越该水平很多倍),SSD 便可用作系统驱动器。
有一些罕见的 USB 棒(例如 Sandisk Extreme 系列的最新型号)使用类似 SSD 的技术来实现可观的速度,但这些 USB 棒价格昂贵,而且 99.9% 的 USB 棒都无法达到这一速度。在比较驱动器性能时,谷歌搜索驱动器的 CrystalDiskMark 基准测试会很有用。
答案2
我同意@user535733 - I/O 速度。这些小型拇指驱动器中使用的闪存技术非常便宜 - 不幸的是,您付出的钱物有所值,而且制造商可能并不关注试图从它们启动的用户 - 即使是高端台式机/ PCI - 与 SATA 相比,USB3 也不是那么好。您可以尝试使用“NVMe PCIe”驱动器和 USB3 NVMe PCIe 外壳(只需检查详细信息并确保外壳是高端的)
我相信大多数人都会非常快。