我需要在 USB 或 SD 设备上传输多个大文件,比如说 4 个文件,每个文件 1 GB。
我注意到在 USB 上,多个文件的并发传输比排队复制要慢得多;这是我自己做的一个简单的测试:
测试 1(队列):
$ cp file1 /mnt/usb;cp file2 /mnt/usb;cp file3 /mnt/usb;cp fil41 /mnt/usb;
12分钟。
测试 2 (并发,来自 4 个不同的 shell)
$ cp fileN /mnt/usb
40分钟。
在 MacOS 上不会发生此问题。如果我执行相同的测试,总复制时间几乎相同。
为什么这种情况会发生在 Linux 上?为什么并发写入时性能会下降这么多?还有其他方法可以解决这个问题吗(除了在队列中复制文件)?我尝试了cp
和rsync
。