Thanks. It's ADATA Ultimate SU650.
https://www.adata.com/us/specification/503 ADATA SSD Toolbox app says that my firmware is latest and Secure erase from within SSD toolbox is not supported on Windows 10!
Does free space have anything to do with it? 2 of my partitions are just for holding some data that I need to read regularly. Those partitions don't get updated and hence I have not left much free space there. They are over 95% filled however there's overall 110 GB of unallocated space still left at the end of the overall SSD space.
Also when I use crystaldiskmark I get around 20 MB/s Random 4K write speed which is normal and results are consistent among all tests. These sequential writes are puzzling though. Sometimes 400 other times just 20.
Yes, I know the SU650 very well.
Modern controllers can use any free space for dynamic overprovisioning. So partitioning as such doesn't make much difference - flash is arranged logically rather than physically, which is why the SSD needs a flash translation layer (FTL) to communicate with the OS. Different storage language.
In any case, these drives have dynamic SLC caching. Dynamic means it varies based on how full the drive is, usually with a set minimum, and this is not actual SLC but the underlying TLC flash in SLC mode. This means that a 3-bit cell of TLC becomes a 1-bit cell of SLC. So if you check the graph
here for example you can see the SLC cache lasts something like 120GB (which takes up 360GB of TLC) and then it drops down to a much slower state.
So a couple of points here. One, the SLC cache is a write cache, which means it impacts write speed directly. Two, this cache is limited and takes up more capacity, which means eventually it has to be emptied and converted back to TLC. Three, this means the size of the cache shrinks as the drive is filled. With a very large cache as on this drive you can get to a state where you're waiting on the SLC to fold - this is the compression of three SLC blocks into one TLC block, which is quite slow.
If the cache is linear with a minimum, for example let's say it's 120GB when empty and 10GB when the drive is full, then your current cache size is roughly 25GB. But the controller is also trying to predict incoming writes as it wants to maintain some cache, so precise performance is inexact. In any case though, this means you can do a benchmark and have very fast (SLC) speeds but if the cache is ignored (known as direct-to-TLC mode, which I didn't mention for simplicity's sake) or otherwise filled you can hit very slow speeds.
Having a large dynamic cache thus has its drawbacks, but it goes further than that. The SU650 is DRAM-less which can compound the issue - but keep in mind that unlike SLC, the DRAM cache is not a write cache (generally) but stores metadata and such. Moreover drives with large caches can get "stuck" in slower modes sometimes, which is where a secure erase (or better yet, sanitize) helps. Secure erase basically wipes the mapping table (addresses for the FTL) so the drive can start fresh.
However in general the natural garbage collection (GC) and TRIM of the drive during idle times will keep the drive performing well, outside of sustained writes.