Author

Characteristics

released:

April 16, 2020

categories:

What moves us

Tags:

SSD

Investigation in Performance

When it comes to buying an NVME SSD for a software developer workstation, you are faced with a choice: buy one cheap or buy one expensive. So far, I've chosen the more expensive ones because they promised better performance and longer life - I can now see how wrong I was.

It all started when one employee said his NVME SSD was slower than his Sata SSD. This can't be true, as the Sata SSD is limited to 600MB/s and 3 years old, while his new NVME SSD is supposed to read and write 3000MB/s. And yet it is true. I have done some dirty benchmarks and the results are impressive. I call the benchmark dirty because clearly different PCs are used; different CPUs, sightly different operating system versions, different MySQL versions and configurations. But the differences in the results cannot be explained my that in my opinion. There is something wrong with the Samsung NVME SSDs.

UserSSDNoteAllocationTPSQPS
MarkusCurical CT1000P1SSD81,00 %3046091
RobertCurical CT1000P1SSD84,00 %4128241
ReinerSamsung SSD 970 PRO 512GB66,00 %1603214
MarkusSamsung SSD 970 PRO 512GB14,00 %1202414
BerndSamsung SSD 970 PRO 512GBcrypt80,00 %1482976
DanielSamsung SSD 960 PRO 512GBcrypt46,00 %30614
ReinerSamsung SSD 850 PRO 128GBsata37,00 %1202437
DanielSamsung SSD 860 PRO 512GBSATA87,00 %1853700
DaneilSamsung SSD 970 EVO Plus 1TB1,00 %4809614
BerndSabrent Rocket Q 2TB26,00 %2374749
MarcelPatriot Scorch M2 256GB1,00 %1202440

As you can see, the Curical P1 SSD is 2x, partially 3x faster than the Samsung Pro SSDs - even though the Curical costs only a third. You can also see that the 860 Pro Sata SSD from Daniel is faster than all Samsung NVME Pro SSDs. If you look for the phenomena on google, you will find other people who have observed the same problem. The Samsung PRO NVME SSDs seem to have a problem with frequent fsync calls.I have used sysbench 1.0.18 with the oltp_read_write benchmark on all machines. They all use BTRFS as filesystem and the MySQL filesystem was mounted with nodatacow, which improves performance. In the table, TPS stands for transactions per second and QPS for queries per second - both values were read from the sysbench statistics.

Since our database performance is very important to our software developers, I will avoid the Samsung pro NVME SSDs in the future and give other manufacturers a chance. The SSD is still fine for Gaming, Movie editing and stuff, just not for requent fsyncs.

Edit: looks like the 970 EVO Plus SSD is not affected by this problem.

sysbench commands used:

sysbench oltp_read_write --table-size=2500000 --mysql-user=root --db-driver=mysql --mysql-password=  prepare
sysbench oltp_read_write --table-size=2500000 --mysql-user=root --db-driver=mysql --mysql-password=  --time=120 run
previous article
Comment and investigation in RAID performance RAID 5 vs RAID10 has been discussed for ages; it's common knowledge that RAID10 offers better performance – but how much depends on the actual implementation, hardware and use-case. I just got a server with 4 x 16TB …
November 6, 2019
Bernd Helm
next article
Most Sysadmins know how to setup a basic chroot on a mounted filesystem (mount-binding dev, proc and sys) but this does not work in any case; for a complete chroot setup you would aso need dev/pts dev/shm, run, tmp, a working resolve.conf and more. After you have set it up, and you want to bring it ...
April 17, 2020
Bernd Helm