0

TLDR: How do I troubleshoot a slow usb 3.1 device plugged into a laptop.

ISSUE: When I copy (tried GUI and terminal) the first few .iso files copy almost instantly 300mb/s+, but then the 3rd/4th start to slow to below 12mb/s (even if copying one at a time).

HARDWARE:

  • Dell XPS 15 9520 (Fedora Linux 37 - Workstation)
  • Sandisk Extreme GO USB 3.1 64GB (using Ventoy)
  • Dell USB-C to USB-A/HDMI Adapter
  • Anker PowerExpand+ 7-in-1 USB-C PD Hub

TRIED:

  • Reformatting usb (gparted - exfat).
  • Using USB with and without Ventoy installed.
  • Using different ports, different adapters/hubs.
  • Copying lots of .iso files in one go vs copying one file at a time - waiting until each file fully copied.

Either way after a few files (around 4GB) the USB drive becomes very slow. Ejecting the USB (via GUI or terminal) can take a long time but after remounting fast speeds return. When ejecting using GUI I get message device busy - so now use terminal and wait until command has completed.

DRIVER | PORT DETAILS:

$ udevadm info -q path -n /dev/sdc /devices/pci0000:00/0000:00:14.0/usb4/4-1/4-1.1/4-1.1:1.0/host1/target1:0:0/1:0:0:0/block/sdc $ lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/1p, 5000M |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M |__ Port 5: Dev 6, If 0, Class=, Driver=, 480M |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 9, If 0, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 4: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 3: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 3: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 4: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 4: Dev 13, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 3: Dev 15, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 16, If 0, Class=, Driver=, 12M |__ Port 6: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 4, If 2, Class=Video, Driver=uvcvideo, 480M |__ Port 6: Dev 4, If 3, Class=Video, Driver=uvcvideo, 480M |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M |__ Port 10: Dev 10, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 10: Dev 10, If 1, Class=Wireless, Driver=btusb, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 20000M/x2 |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M |__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M |__ Port 3: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M 
9
  • There's nothing software can do here. Your drive is plain slow. Commented Apr 10, 2023 at 12:26
  • This specific drive or USB 3.1 flash drives in general? Is it possible to achieve fast sustained transfer speeds using USB 3.1 flash drives or will I need to use something like a M.2 NVME in external case? Commented Apr 10, 2023 at 12:34
  • this one, specifically. Though it's doing OK-ish for a USB stick, it's not fast. Commented Apr 10, 2023 at 12:36
  • Could you recomend a fast usb flash drive for me please. I'm not sure how to identify a fast one from a slow one. Commented Apr 10, 2023 at 12:43
  • 1
    I’m voting to close this question because it's unrelated to the topic of this site: Slow hardware is slow hardware. Commented Apr 10, 2023 at 13:32

1 Answer 1

0

Detailed reasons for why speeds slow down when copying are discussed in this post (e.g. memory cache). Anecdotally, for me the temperature of the device also seemed to play a part.

This website was useful for setting realistic expectations on what to expect from usb drive devices.

This guide shows how to use hdparm and dd to benchmark drive speeds

Tests:

$ hdparm -tT /dev/sde /dev/sde: Timing cached reads: 36072 MB in 2.00 seconds = 18064.09 MB/sec Timing buffered disk reads: 554 MB in 3.00 seconds = 184.65 MB/sec 

Small amount of data:

$ dd if=/dev/zero of=./largefile bs=8k count=10000 10000+0 records in 10000+0 records out 81920000 bytes (82 MB, 78 MiB) copied, 0.0478257 s, 1.7 GB/s $ dd if=./largefile of=/dev/null bs=8k 10000+0 records in 10000+0 records out 81920000 bytes (82 MB, 78 MiB) copied, 0.473879 s, 173 MB/s 

Larger amount of data

$ dd if=/dev/zero of=./largefile bs=8k count=1000000 1000000+0 records in 1000000+0 records out 8192000000 bytes (8.2 GB, 7.6 GiB) copied, 658.022 s, 12.4 MB/s $ dd if=./largefile of=/dev/null bs=8k 1000000+0 records in 1000000+0 records out 8192000000 bytes (8.2 GB, 7.6 GiB) copied, 45.1854 s, 181 MB/s 

Results/conclusion: Compared slightly faster than the average speed posted on usb.userbenchmark.com and it is nice to now know whats to be expected and a way to test it.

1
  • These tests are pretty meaningless, as you might be caching gigabytes of write data in RAM Commented Apr 24, 2023 at 23:02

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.