Unfortunatelly I still have this quick freezes, I tried downloading a game on Steam and every 5 seconds or so Discord would completely freeze for 2~5 seconds.
I'm running low on obvious/simple solutions but it may be worth trying a PCIe SATA controller. It may be that there's an issue with your motherboard's SATA controller.
Thanks for the link. It appears to be an updated version of what I was quoting. Also, it backs up the point I was trying to make.
seagate says that with durawrite drive, you dont need oveprovisioning, as they mention durawrite with no user OP performs same as competion with 28% OP.
That's not what it says. The section I believe you are referring to is talking about Write Amplification and that number is contingent on it writing a
75% entropy stream. The bulk of the data filling the average user's drive is already going to be compressed and have even higher entropy. This aspect likely isn't even relevant anyway, as I don't believe any modern
consumer drives feature DuraWrite. It was in the old SandForce controllers but later migrated to enterprise drives (like the Seagate Nytro).
durawrite might be just compression, but still that compression hides that free space gained from compressing things from OS
This is correct.
that is not overprovisioning, OP is space which OS cannot access, unallocated/or locked by vendor..ie spare space
leaving 20% free space isnt same as leaving 20% unallocated, 20% unallocated means all that space can be used for garbage collection, free pages buffer, slc cache and what not,
To quote the page you linked:
Users should also be cognizant that
an SSD in service is rarely completely full. SSDs take
advantage of this unused capacity, dynamically using it as
additional overprovisioning
That is exactly what I originally claimed. Perhaps Figures 2 and 6 in that document can help illustrate my point better.
while plain free space can be fragmented leaving you with maybe 5% spare physical pages until trim happens, which empties gabarge collection, but fragmentation can still be there leaving you with less than 20% spare
I'm not entirely sure what you're trying to convey here but I think you may have a slight misunderstanding of some of the concepts at play.
Fragmentation at the filesystem level isn't really relevant here. Data isn't consistently organized in NAND flash the same way it is on a hard drive. Data in flash is constantly getting shuffled around. The drive's Flash Translation Layer (FTL, AKA mapping table) keeps track of which NAND page contains data corresponding to a host-facing LBA. The data is scattered/fragmented completely differently in the drives NAND, compared to the host's filesystem.
The comment about TRIM emptying garbage collection makes me think you're a little confused (as MANY are) about what these things do. NAND must be programmed in pages but can only be erased in blocks, which are made up of many pages. Because of this, you often end up with blocks that contain some pages with valid data and some pages with invalid data. Invalid data can be things like files that were overwritten or deleted and trimmed. Garbage collection is the process of copying pages of valid data to an empty page, in a different block, then erasing the block that no longer contains any valid data. TRIM does not necessarily trigger garbage collection. I'll let Seagate explain the purpose of TRIM:
TRIM enables the OS to alert
the SSD about pages now containing unneeded
data so that they can be tagged as invalid. When
completed, there is no need for those pages to
be copied during garbage collection and wear
leveling. This reduces write amplification and
improves performance. Figure 6 shows just how
much difference TRIM can make in allowing more
capacity to be available for overprovisioning
The whole purpose of TRIM is to allow the host to inform the drive of locations that do not (or no longer) contain valid data, thus allowing the drive's controller to add them back to the pool as additional overprovisioning.
i wonder why my samsung and WD drives need user defined OP? as both have small factory OP (7-9%) which is okay for reads, but not so much for writes
They don't
need it. It's simply an option. Also, the amount of factory overprovisioning varies by model, not necessarily manufacturer. Though, I have ironically noticed that some of the lower tier brands sometimes set the lowest factory overprovisioning (for example, Silicon Power and Team Group selling 512GB and 1024GB drives vs 500GB/480GB and 1000GB/960GB for some other brands/models).
And, I want to reiterate a point from Seagate that I think is key:
TRIM is yet another method that vendors can employ to boost overprovisioning, thereby increasing
performance and SSD longevity. It demonstrates a more preferable way to reclaim capacity
for acceleration compared to forcing SSDs to permanently surrender large amounts of their capacity.
Using the overprovisioning option in those Samsung, Crucial, WD, etc. utilities (or simply leaving space unpartitioned)
prevents the user from filling the drive past a certain point. Partitioning the whole drive allows the user the option of filling it as much as they wish (within the host-accessible limits). This would be beneficial, if say someone needed to temporarily fill their drive but then deleted a large quantity of data. After a TRIM operation, that empty space would be put back in the pool of dynamic overprovisioning. In my view, dedicating a static amount to function as overprovisioning is mostly useful if you for some reason want to prevent the user from filling the drive past a certain point or you're using it in a situation where TRIM is not functional. In a scenario where TRIM is unavailable, once a particular LBA has been written by the host, it will always be viewed by the drive as containing valid data. This is the case where you'd want to ensure certain LBAs are never written to. I hope this helps clear things up.