Why we dont use Samsung NVME Pro SSDs anymore

Why we dont use
Samsung NVME Pro SSDs

Von 20. Dezember 2019

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.

MarkusCurical CT1000P1SSD8 1,00 %3046091
RobertCurical CT1000P1SSD8 4,00 %4128241
ReinerSamsung SSD 970 PRO 512GB 66,00 %1603214
MarkusSamsung SSD 970 PRO 512GB 14,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 1TB 1,00 %4809614
BerndSabrent Rocket Q 2TB 26,00 %2374749
MarcelPatriot Scorch M2 256GB 1,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