In my system are two M.2 SSD of the same type (Corsair Force MP600). One for Windows, one for Linux. Copying bigger files on Windows always runs with ~4..5GB/s. Surpassing 5GB/s on larger files - and this is obviously including the NTFS overhead.
Yet, on Linux, even a no-FS sequential read:
# cat /dev/nvme0n1p4 | pv > /dev/null
8.86GiB 0:00:12 [ 535MiB/s]
cat /dev/nvme1n1p1 | pv > /dev/null
71GiB 0:00:07 [ 287MiB/s]
Speed fluctuates between 115MB/s up to 800MB/s while averaging at ~300MB/s. Even any SATA SSD is faster:
# cat /dev/sda | pv > /dev/null
63GiB 0:00:09 [ 511MiB/s]
cat /dev/sdd | pv > /dev/null
63GiB 0:00:08 [ 521MiB/s]
What could possibly be wrong here? Is there a kernel config that I have missed? Any help would be greatly appreciated!
Edit: more system info (from neofetch):
OS: Gentoo Base System release 2.7 x86_64
Kernel: 5.15.11-gentoo-x86_64
CPU: AMD Ryzen Threadripper 3970X (64) @ 3.700GHz
Memory: 89322MiB / 193169MiB
cat /dev/zero| pv > /dev/null
averages around 5.5GiB/s. So even if it adds overhead, I think in the realm of the measured 300MiB/s it is not really relevant. – IdleMaster Jan 05 '22 at 10:55dd
with a larger block size pointed at/dev/null
? You can sendSIGUSR1
to it to get it to print progress and time its operation. – binki Jan 05 '22 at 14:55lspci
and make sure you built support for your specific system? Maybe you’re not enabling the newest version of PCI Express or something. I don’t know what things are called or what to look for. – binki Jan 05 '22 at 14:58genkernel
and kernel modules? – binki Jan 05 '22 at 14:59dd if=/dev/nvme0n1 of=/dev/null bs=10M count=2k
gives21 GB, 20 GiB) copied, 48.1178 s, 446 MB/s
I will try to boot a live system (maybe a standard Ubuntu) and compare - good idea! – IdleMaster Jan 05 '22 at 18:50