0

I've recently migrated from Ubuntu 24.04 to Debian 13 with GNOME (thought it doesn't have that much issues but alas). I've read tons of information trying to find a solution or an answer (some say it's a known bug which isn't considered by developers, some say it's a normal behaviour...).

I'm trying to copy some data around external SDD drives. What I've discovered that the speed is extremely slow. It drops from 60 MB/s (megabytes, not megabits) to less than 1 MB/s. I tried using different USB cables, connecting to different USB ports (USB 3.0 and USB 2.0, on the front and back PC panels), used rsync for copying, added async option in Disks utility (nosuid,nodev,nofail,x-gvfs-show,uid=1000,async).

Today I ran some fio tests and I've discovered the following:

  • reading speed is quite good (about 400-600 MB/s) on all drives: internal and external, SSD and HDD;
  • writing speed is good enough on the system (internal) SSD partition (about 500 MB/s);
  • writing speed on the internal HDD and internal SSD partitions (by the way, this partition is on the same SSD as the system) and all external HDD and SSD is extremely low (it very quickly drops from 50-60 MB/s to about 1.5 MB/s and less up to 100 kB/s).

The tests I ran (/PATH/TO/DISK/TEST was replaced with actual paths):

fio --name=fiotest --blocksize=4k --directory=/PATH/TO/DISK/TEST --size=5g --ioengine=libaio --iodepth=256 --runtime=60 --rw=randwrite --direct=1
fio --directory=/PATH/TO/DISK/TEST --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=60 --numjobs=3 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --size=1G

I reran the tests and got the same results.

Also, smartctl showed the disks are healthy.

Also tried setting dirty bytes:

sudo sysctl vm.dirty_background_bytes=$((64*1024*1024))
sudo sysctl vm.dirty_bytes=$((128*1024*1024))

Question: Maybe somebody knows how to increase the writing speed to a reasonable (for SSD, HDD) rate?


Update (reply to Tom's comments)
The system partition (which is fast) is ext4. The rest are NTFS (System Monitor names their type as fuseblk).

sudo dmesg | grep -i ses gives:

[ 3955.118333] scsi 7:0:0:1: Enclosure         SanDisk  SES Device       8055 PQ: 0 ANSI: 6
[ 3955.121837] ses 7:0:0:1: Attached Enclosure device
[ 3955.121981] ses 7:0:0:1: Attached scsi generic sg3 type 13
[ 3955.122124] ses 7:0:0:1: Failed to get diagnostic page 0x1
[ 3955.122130] ses 7:0:0:1: Failed to bind enclosure -19

I'm copying files from SanDisk (sdc) to Samsung (sdd).

iostat 5 5 -N outputs the reading and writing speeds which look consistent:

           1.69    0.00    0.46    5.95    0.00   91.90

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
sdc               3.80      1638.40         0.00         0.00       8192          0          0
sdd               3.60         0.00      1843.20         0.00          0       9216          0

I also tested copying files from the system partition (ext4) and the writing speed is still about 1.5 MB/s most of the time but sometimes it reaches 100-150 MB/s for short periods of time and drops again to 1.5 MB/s.


Update #2 (reply to Tom's and Cas' comments)
lsblk -f output:

NAME FSTYPE FSVER LABEL        UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                
├─sda1
│                                                                                  
├─sda2
│    ext4   1.0                83e3f693-2043-406e-88ce-b989162770f4  162.3G     6% /
├─sda3
│    swap   1                  4cae0365-911f-424f-9136-1bb25525b16d                [SWAP]
└─sda5
     ntfs         SSD_Volume   12E7C9690C5CA552                       84.9G    69% /mnt/SSD_Volume
sdb                                                                                
├─sdb1
│                                                                                  
├─sdb2
│    ntfs         Internal_HDD A6505DCE505DA639                       12.3G    99% /mnt/Internal_HDD
└─sdb5
     ntfs         HDD_Small    33D3C68F4222B7C3                      488.9M    11% /mnt/HDD_Small
sdc                                                                                
└─sdc1
     ntfs         SanDisk_4TB  108BFDA749FC5E38                        1.5T    60% /mnt/SanDisk_4TB
sdd                                                                                
└─sdd1
     ntfs         Samsung_4TB  6B666CCA02B40C8D                        3.4T     5% /mnt/Samsung_4TB

sudo blkid output:

/dev/sdd1: LABEL="Samsung_4TB" BLOCK_SIZE="512" UUID="6B666CCA02B40C8D" TYPE="ntfs" PARTUUID="8178173d-d087-438c-813e-1862da33d89b"
/dev/sdb2: LABEL="Internal_HDD" BLOCK_SIZE="512" UUID="A6505DCE505DA639" TYPE="ntfs" PARTUUID="e5b5b7a8-02"
/dev/sdb5: LABEL="HDD_Small" BLOCK_SIZE="512" UUID="33D3C68F4222B7C3" TYPE="ntfs" PARTUUID="e5b5b7a8-05"
/dev/sdc1: LABEL="SanDisk_4TB" BLOCK_SIZE="512" UUID="108BFDA749FC5E38" TYPE="ntfs" PARTUUID="94cd78f9-e299-4109-b967-0d7601ac376d"
/dev/sda2: UUID="83e3f693-2043-406e-88ce-b989162770f4" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="b17e5783-b225-44b6-bd7f-3b8b87015429"
/dev/sda5: LABEL="SSD_Volume" BLOCK_SIZE="512" UUID="12E7C9690C5CA552" TYPE="ntfs" PARTUUID="49c6d460-2269-4b53-8619-af83b3ffb031"
/dev/sda3: UUID="4cae0365-911f-424f-9136-1bb25525b16d" TYPE="swap" PARTUUID="239cd834-a356-4291-8978-3044b19fda9a"
/dev/sda1: PARTUUID="ce85a18d-7fb5-4f71-b808-bd974bef09b7"

Update #3 (reply to Tom's comments)
Here is what I entered in Mount Options Filesystem Type and what is type is displayed in System Monitor: enter image description here

I managed to mount both external SSDs (SanDisk and Samsung) with ntfs3. So, SanDisk is connected to USB 2.0 and Samsung -- to USB 3.0. I copy files from SanDisk to Samsung. System Monitor shows writing speed jumping back and forth from 1.5 MB/s to 40 MB/s.

18
  • Have you checked if there are any I/O errors or alike in the kernel log (dmesg / journalctl -k) when this occurs? Do all the other drives / partitions have different (type of) filesystems from the system one? (lsblk -f) Commented Oct 1 at 8:04
  • You may also want to iostat the corresponding drive to see if the speed you saw was really a "different speed". Commented Oct 1 at 8:06
  • @TomYan, I've updated my question to add my reply to your comments. It looks like the copied data is flushed from time to time at higher speeds, but I'm not sure. Anyway, even if it is so, are those 1.5 MB/s is OK for SSDs? Commented Oct 1 at 9:12
  • If you can temporarily spare one of your USB SSDs for testing, then try your tests on that drive while formatted as NTFS, vfat, and then ext4. Trim or secure-erase the SSD before partitioning and reformatting for each of those three filesystems. Compare the speeds for each fs - my bet is that ext4 will be fastest, vfat coming in a reasonably close second, and NTFS a distant third. NTFS support in Linux is not very good, and really shouldn't be used unless you're transferring files between Linux and Windows (and even then, vfat would be better unless you're dual-booting). Commented Oct 1 at 9:39
  • BTW, the USB type and speed (both ports and devices) also matters a lot. Using a USB 3 or USB 4 port with a USB drive capable of USB3/USB4 speeds will be a lot faster than either using the same drive in a USB2 port, or using an old USB2 drive in a more modern USB3/4 port. Also, as @TomYan asked, please add the ouput of lsblk -f (or blkid) to your question. Commented Oct 1 at 9:46

0

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.