![启动 linux toram 时 USB 3.0 外壳中的 SSD 速度缓慢](https://linux22.com/image/229142/%E5%90%AF%E5%8A%A8%20linux%20toram%20%E6%97%B6%20USB%203.0%20%E5%A4%96%E5%A3%B3%E4%B8%AD%E7%9A%84%20SSD%20%E9%80%9F%E5%BA%A6%E7%BC%93%E6%85%A2.png)
toram
我已经在分区上安装了该选项所需的squashfs ext4
。该分区位于外壳中的 SSD 上。
据称该SSD的读取速度高达500MB/s。
当我运行时,hdparm -t /dev/sdb
它显示 SSD 的读取速度约为 370 MB/s。
但是当我启动toram
linux,在内核参数中禁用启动屏幕并使用参数启动内核时toram=filesystem.squashfs
,我可以看到squashfs加载到RAM中的速度。速度只有130MB/s到150MB/s。
所以我想知道是否有办法让内核更快地加载squashfs?
编辑:
以下是lsusb
输出,外壳是总线 002 上的设备 009:
Bus 002 Device 003: ID 0bda:0415 Realtek Semiconductor Corp. 2-Port USB 3.0 Hub
Bus 002 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:5415 Realtek Semiconductor Corp. 2-Port USB 2.0 Hub
Bus 001 Device 004: ID 145f:02c9 Trust Trust Keyboard
Bus 001 Device 008: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
输出lsusb -t
:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 9, If 0, Class=Mass Storage, Driver=uas, 5000M
|__ Port 6: Dev 3, If 0, Class=Hub, Driver=hub/2p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 6: Dev 5, If 0, Class=Hub, Driver=hub/2p, 480M
以及输出的开头lsusb -v -s 002:009
:
Bus 002 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
idProduct 0x0578 JMS578 SATA 6Gb/s
bcdDevice 25.01
iManufacturer 1 JMicron
iProduct 2 External HDD
iSerial 3 0000007788E1
bNumConfigurations 1
答案1
通过 USB 读取和写入
您看到的瓶颈并非来自 SSD。瓶颈来自于 USB 连接的有限传输速度。一旦添加到外部外壳中,SSD 就变成了一个光彩夺目的 USB 闪存驱动器。
USB 3.0规范(我试图通读,但找不到速度被埋没的地方),只能通过验证多个链接/搜索结果曾是:
对于 USB 3.0 技术,平均读取速度范围跃升至 60 至 150 Mbps。至于写入速度,USB 3.0 单元的写入速度预计为 10 至 45 Mbps。
请注意,上述引用被表述为平均吞吐量。
该hdparm
命令返回机柜内的额定速度,即驱动器所连接的适配器与驱动器本身之间的速度。由于机柜模仿 PC 内部的连接,因此这是有道理的。连接适配器也可能只能额定一定的速度,但我只能验证是否您使用附件的链接更新了原始问题。
回应评论
...可以向后兼容旧设备,尽管它们将受限于旧 USB 标准的数据传输速率。
我在引用中省略了速度,因为向后兼容性也适用于所有速度和世代。另请注意,3.2 Gen 2 SuperSpeed 与 3.2 不同什么是 USB 3.0(超高速 USB)?还指出:
USB 3.2 标准于 2017 年 7 月推出。USB 3.2 标准包括与 USB-C 连接器配合使用的新的 20 Gbps 传输模式。它被称为 SuperSpeed+ 或 USB Gen 2x2。 3.2 标准还重新命名了旧的传输速度。
由于命名有些复杂,新的 USB 3.0 设备应在设备徽标中包含支持的最大传输速度。幸运的是,所有 USB 数据传输速率标准都是向后兼容的,这意味着几乎任何设备都可以与任何插头一起使用,并且它会自动回落到相互支持的最佳速度。
OP 在这里期望规范中规定的最大值应该是保证吞吐量,这将永远不会是真的,由于设备制造、操作系统配置等方面的差异。
更新
在阅读了 Google 发现的多篇帖子后,驱动该外壳的 JMicron 微芯片系列似乎并不可靠。看这篇文章在 Mint 论坛上发布以获得GRUB_CMDLINE_LINUX
可能的修复并将 DeviceID 替换为152d:0578