昨天我闪现开源软件在我的新路由器并配置了 samba 服务器等,期望从我连接的 USB 驱动器获得有用的传输速度。出于测试目的(因为我的总线供电外部 usb3 硬盘无法工作),我使用了 ext4 格式8GB USB 2.0 闪存盘测试路由器的传输速度。以下是通过 ssh 在路由器本身上测试的传输速度:
$hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 176 MB in 2.00 seconds = 87.92 MB/sec
Timing buffered disk reads: 74 MB in 3.00 seconds = 24.65 MB/sec
$time dd count=128 bs=1M if=/dev/zero of=test.test
128+0 records in
128+0 records out
real 0m 15.60s
user 0m 0.01s
sys 0m 2.70s
~ 8.5 MB/s
这些值似乎没问题,但通过 sftp 或 samba 的速度却截然相反。我通过以太网电缆和 wlan 连接了我的笔记本电脑,两次传输速率都一样差。通过 samba 我得到了1.1 MB/秒通过 sftp 甚至更糟300 kB/秒,掉速是加密导致的,但 300 kB/s 简直是笑话。这完全没法用,原厂固件快 10 倍,但我想在路由器上保留 OpenWRT。这可能是配置问题吗?
更新:
我现在用 ext2 格式化闪存驱动器,我的传输速率约为6 MB/秒但是 ext2 仅支持小于 4GB 的文件。我将尝试使用 ext3 或 4 格式化驱动器而不使用日志功能。
更新2:
我使用以下选项安装了 ext4 格式的驱动器,并获得了与 ext2 几乎相同的传输速率。也许 OpenWRT wiki 条目关于USB存储應該超负荷工作。
mount -t ext4 /dev/your_mount_device /mnt/your_mount_folder/ -o rw,relatime,data=writeback,errors=remount-ro,nodev