SSD Performance

Hi All,

I’ve been doing some testing on my unmatched to see how it compares to my daily-use desktop (short summary: It’s about half the performance of my Intel Celeron J1900).
One thing I noticed is the SSD read performance. My 970 Evo Plus should be able reach a few GB’s per second, but when I do:

dd if=/dev/nvme0n1 of=/dev/null bs=1024k

I get about 170 MB/s. What kind of read performance are you seeing on yours?

1 Like

That’s lower than I would expect. I haven’t put an NVME in mine yet, but I will be trying that out at some point soon and will update this thread with the results.

What speed does: dd if=/dev/zero of=/dev/null run at? Maybe try with a few different block sizes. That will at least test to see if there’s a bottleneck/latency issue somewhere, since the above should just read 0s from memory and discard them as fast as possible…

Thanks for your reply. From /dev/zero to /dev/null gives the type of numbers I would expect from my SSD :slight_smile:

unmatched ~ # dd if=/dev/zero of=/dev/null
^C2258356+0 records in
2258355+0 records out
1156277760 bytes (1.2 GB, 1.1 GiB) copied, 4.06147 s, 285 MB/s

unmatched ~ # dd if=/dev/zero of=/dev/null bs=1024k
^C3710+0 records in
3710+0 records out
3890216960 bytes (3.9 GB, 3.6 GiB) copied, 2.05212 s, 1.9 GB/s

unmatched ~ # 

Is there some (known) bottleneck in the PCI bus of the unmatched?

1 Like

It seems that the parameters for dd make a difference. I reproduced the original low bandwidth then adjusted some of the parameters. The “iflag=direct” seems to make a big difference as well as the block size “bs=1024”.

root@unmatched:~# dd if=/dev/nvme0n1p4 of=/dev/null bs=1024k status=progress iflag=direct iflag=fullblock
5838471168 bytes (5.8 GB, 5.4 GiB) copied, 3 s, 1.9 GB/s
6656+0 records in
6656+0 records out
6979321856 bytes (7.0 GB, 6.5 GiB) copied, 3.5668 s, 2.0 GB/s

I did some further testing with my SSD in a nvme-usb adapter. Connected via USB3.0 i get about 350MB/s (which i think is the bus limit), and connected to a new-style USB (i keep forgetting the fancy names they made up), i get up to 970MB/s, which again might be the bus limit.

Thanks for the info @Jim , i tried the same command and the iflag=direct indeed makes all the difference, i get the a similar result with 2 GB/s. This might mean there is some kernel parameter that needs to be changed, dd should be able to reach this speeds also without the iflag=direct option.

Celeron J1900 is a Bay Trail version of Silvermont, which wikipedia thinks is a die shrink of Bonnell. Bonnell, apparently, is in-order with two integer pipelines, essentially similar to an updated Pentium but with new instructions (SSE etc).

J1900 is 2.0 GHz bursting to 2.4 GHz.

So, based on microarchitecture and MHz, twice faster than Unmatched is basically exactly in line.

My J1900 is fixed at 2.0 GHz, and given the fact that there’s a lot of optimalizations for x86_64, and I did some crypto benchmarks for which it uses all it’s fancy extensions, I think RISC-V is doing pretty well in keep up with it, especially given the difference in clock frequency.

1 Like