Re: external USB disk: 400MB/s transfer, but get only 40MB/s

From: Jin Guojun[VFF] <jguojun_at_gmail.com>
Date: Thu, 29 Jan 2026 23:12:22 UTC
On 1/28/26 23:59, Matthias Apitz wrote:
> El día miércoles, enero 28, 2026 a las 09:50:17a. m. -0800, Jin Guojun[VFF] escribió:
>
>> 400MB/s is bus speed, the actual speed of USB drives are different, you need
>> to check your disk models and specs.
>>
>> "WD Elements external hard drives generally provide reliable, standard
>> performance for backups and media storage, with typical read/write speeds
>> ranging between 100–130 MB/s for portable HDD models via USB 3.0."
>>
>> You are doing read and write on disks so that the performance is one half of
>> the disk speed (or one half of average of two drives).
>>
>> Try following (assume your drive is ad0)
>>
>> dd if=/dev/zero of=/mnt/file bs=8m
>> for testing writing speed
>>
>> dd if=/dev/ad0 of=/dev/null bs=8m
>> for testing reading speed
> Thanks! I did so, see below, and the read speed matches the above specs,
> but the write speed is three times slower (I put dots in the output of
> dd(1) for better readability).
>
> # usbconfig -d ugen0.4 dump_all_desc
> ugen0.4: <Western Digital Elements 2621> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)
> ...
>
> The full output of usbconfig(8) is attached also below.
>
> 	matthias
>
>
> # mount_ntfs-3g /dev/da0p1 /mnt
>
> # dd if=/dev/zero of=/mnt/file bs=8m count=1000
> 1000+0 records in
> 1000+0 records out
> 8388608000 bytes transferred in 183.003888 secs (45.838.414 bytes/sec)
>
> # dd if=/dev/da0 of=/dev/null bs=8m count=1000
> 1000+0 records in
> 1000+0 records out
> 8388608000 bytes transferred in 67.147415 secs (124.928.234 bytes/sec)

WDC does not provide a technical specification for the Western Digital 
Elements 2621, so we cannot determine its writing speed.

Typically, disk (rotational and SSD) writing speed is about 10-20% 
slower than their reading speed.

Some low-quality SSDs have a writing speed that is only 1/3 of their 
reading speed, but this should not be the case for spinning disks.

A low-quality USB interface (port) may cause writing speed low, but I 
have not seen anything lower than 50% of the spec rate (however this is 
unknown).

The Microsoft file system may also slow down the writing throughput, but 
it should not drop significantly for large data transfers.

You can use "iostat 3" command to monitor the I/O progress. The transfer 
rate should be smooth as below. If some bumpy rates appear, it indicates 
potential hardware issues.

You may try using different USB ports on different computers, testing 
UFS file systems or even using a raw disk by shrinking the NTFS 
partition and creating a new empty slice like p2 (dd if=/dev/zero 
of=/dev/da0p2). Be aware that the inner disk transfer rate can be much 
slower than the outer disk tracks.

#iostat 3

    0    16 23.2    15  0.34 27.3     1  0.03 64.0  1431 89.46  0  0  1  
1 98
    0    16 31.6     7  0.20  6.7     1  0.01 64.0  1426 89.15   0 0  1  
0 99
    0    16 20.0     0  0.00  6.0     0  0.00 64.0  1478 92.40   0 0  1  
1 99
    0    16 14.7     1  0.01  0.0     0  0.00 64.0  1429 89.30   0 0  1  
1 99
    0    16 23.2     1  0.02  4.0     0  0.00 64.0  1435 89.68   0 0  1  
1 99
    1    76 32.0     1  0.02 32.0     1  0.02 64.0   242 15.14   0 0  0  
0 99
...

    0    16 32.0     1  0.02  4.0     0  0.00  984    83 80.10  0  0  1  
0 99
    0    16 12.0     1  0.01  0.0     0  0.00  978    86 81.72   0 0  1  
0 99
    0    16 32.0     2  0.06  4.0     0  0.00  985    82 79.09   0 0  1  
0 99
    0    16  4.0     0  0.00 32.0     0  0.01  988    83 80.51   0 0  1  
0 99
    0    16 20.0     0  0.01 12.2     1  0.01  987    85 82.29   0 0  1  
0 99
    0    16  0.0     0  0.00 13.3     1  0.01  958    90 84.39   1 0  1  
0 98
    0    16 22.7     1  0.03  0.0     0  0.00  988    83 79.68   0 0  1  
0 99
    0    16 68.0     1  0.05  0.0     0  0.00  984    83 80.11   0 0  1  
0 99
    1    76 30.3     3  0.08  0.0     0  0.00  882    34 28.87   0 0  0  
0 99