2 ms·
The exact difference, as far as I'm aware, has never been publicly documented by Microsoft, and I have not attempted to properly and thoroughly reverse engineer
by wtallis 6y ago
The exact difference, as far as I'm aware, has never been publicly documented by Microsoft, and I have not attempted to properly and thoroughly reverse engineer that particular mess.
But the end result is that in the default state (buffer flushing enabled), most or all disk benchmarking tools show drastically lower write performance on consumer NVMe drives than should be expected compared to their theoretical advantage over SATA SSDs.
I'm not intimately familiar with the semantics of how flush/sync commands get generated and passed through the Windows IO stack. Empirically, when an application tries to issue a write that is not to be buffered by the OS, it appears that Windows translates that into NVMe commands that constrain or entirely prohibit the SSD from doing its own write buffering, but for SATA SSDs writes are still by default issued in a manner that permits the drive to buffer freely. Figuring out exactly what's happening without Microsoft's help might require bus analyzers I don't have. In effect, it seems that Windows is less willing to trust a NVMe SSD than a SATA SSD, and that doesn't strike me as justified.
I've also noticed that recent builds of Windows 10 have changed their behavior when running one of our old benchmarking tools that plays back IO traces. On current Windows 10, the OS outright rejects any attempt by the trace playback application to issue a flush command to a NVMe SSD, whether or not buffer flushing is enabled at the driver level. This is definitely a change from earlier builds of Windows 10, and I think it is a change that only affects NVMe drives, not SATA drives. (I'm not testing very many SATA drives these days, and have to design my testing procedures entirely around the needs of testing NVMe drives.)
- gruez 6y ago>But the end result is that in the default state (buffer flushing enabled), most or all disk benchmarking tools show drastically lower write performance on consumer NVMe drives than should be expected compared to their theoretical advantage over SATA SSDs. This... doesn't seem to be the case? If you look at this chart[1] from anandtech, you can see that the nvme drives (crucial P1, intel 660p) are significantly ahead of the sata drives (860 evo, 860 qvo, crucial mx500). The sustained write results[2] worse for nvme drives, but they're still better than similar sata drives if we control for flash type (qlc vs tlc) and capacity. Also, comparing nvme drives to sata drives is hard to begin with, since they're usually in different price segments. sata drives tend to be cheaper than nvme drives (maybe the controller is cheaper?), so if you were comparing a sata drive and a nvme drive of the same price, you might end up with a "worse" nvme drive because of the nvme premium. [1] https://images.anandtech.com/graphs/graph13633/burst-rw.png https://images.anandtech.com/graphs/graph13633/burst-rw.png [2] https://images.anandtech.com/graphs/graph13633/sustained-rw.png https://images.anandtech.com/graphs/graph13633/sustained-rw....
- wtallis 6y agoThe charts you linked to are showing measurements taken under Linux.
- gruez 6y agoHere are some charts from crystaldiskmark, which is windows only. Note the 4k Q1T1 figures. crucial p1: https://images.hothardware.com/contentimages/article/2843/content/cry4.png https://images.hothardware.com/contentimages/article/2843/co... (169.8 MB/s) https://cdn.mos.cms.futurecdn.net/nVhtVJZ64vDP7coALo7y3T-970-80.png.webp https://cdn.mos.cms.futurecdn.net/nVhtVJZ64vDP7coALo7y3T-970... (162 MB/s) samsung 860 evo: https://i1.wp.com/www.tech-critter.com/wp-content/uploads/2020/03/CrystalDiskMark-Samsung-860-EVO-1GB-1.jpg?ssl=1 https://i1.wp.com/www.tech-critter.com/wp-content/uploads/20... (118.25MB/s) https://www.notebookcheck.net/fileadmin/Notebooks/Schenker/XMG_Core_15/cdm3_evo.jpg https://www.notebookcheck.net/fileadmin/Notebooks/Schenker/X... (122.8 MB/s)