Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> updating the firmware didn't fix the issue that my 980 Pro NVMes (all 4 of them) only have a write speed of ...

In order to see spec sheet read/write speeds you can/should bypass the filesystem and the buffer cache. On Linux you can write directly to the device node (make sure to enable O_DIRECT and make your write sizes big enough).

EDIT: added a quote to clarify context



nvme set-feature -f 6 -v 1 /dev/nvme0n1 (feature:0x6 (Volatile Write Cache))

dd if=/dev/zero of=~/testfile bs=10000M count=1 oflag=direct -> 1.4 GB/s

dd if=/dev/zero of=~/testfile bs=1000M count=10 oflag=direct -> 3.7 GB/s

dd if=/dev/zero of=~/testfile bs=100M count=100 oflag=direct -> 3.7 GB/s

dd if=/dev/zero of=~/testfile bs=10M count=1000 oflag=direct -> 4.0 GB/s

dd if=/dev/zero of=~/testfile bs=1M count=10000 oflag=direct -> 3.6 GB/s

nvme set-feature -f 6 -v 0 /dev/nvme0n1

dd if=/dev/zero of=~/testfile bs=10000M count=1 oflag=direct -> 412 MB/s

dd if=/dev/zero of=~/testfile bs=1000M count=10 oflag=direct -> 556 MB/s

dd if=/dev/zero of=~/testfile bs=100M count=100 oflag=direct -> 553 MB/s

dd if=/dev/zero of=~/testfile bs=10M count=1000 oflag=direct -> 482 MB/s

dd if=/dev/zero of=~/testfile bs=1M count=10000 oflag=direct -> 267 MB/s

The values I got in my first post were obtained through Ubuntu's "Disks" application which has a benchmarking dialog.


"~/testfile" looks suspiciously like a file mounted on a filesystem. What happens if you bypass the filesystem?


They need concurrency at the flash level. Disabling write cache prevents it from clawing the concurrency out of single-threaded requests.

If flush works properly, a volatile write cache in the SSD is good for you.


Is this a non-sequitur or are you trying to somehow explain the difference between the two drives noted in the comment you are replying to?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: