Why we dont use Samsung NVME Pro SSDs anymore
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.
User | SSD | Note | Allocation | TPS | QPS |
---|---|---|---|---|---|
Markus | Curical CT1000P1SSD8 | 1,00 % | 304 | 6091 | |
Robert | Curical CT1000P1SSD8 | 4,00 % | 412 | 8241 | |
Reiner | Samsung SSD 970 PRO 512GB | 66,00 % | 160 | 3214 | |
Markus | Samsung SSD 970 PRO 512GB | 14,00 % | 120 | 2414 | |
Bernd | Samsung SSD 970 PRO 512GB | crypt | 80,00 % | 148 | 2976 |
Daniel | Samsung SSD 960 PRO 512GB | crypt | 46,00 % | 30 | 614 |
Reiner | Samsung SSD 850 PRO 128GB | sata | 37,00 % | 120 | 2437 |
Daniel | Samsung SSD 860 PRO 512GB | SATA | 87,00 % | 185 | 3700 |
Daneil | Samsung SSD 970 EVO Plus 1TB | 1,00 % | 480 | 9614 | |
Bernd | Sabrent Rocket Q 2TB | 26,00 % | 237 | 4749 | |
Marcel | Patriot Scorch M2 256GB | 1,00 % | 120 | 2440 |
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