Question How to query Nvme Host Memory Buffer stats?

soder

Junior Member
Nov 15, 2023
2
0
6
Hello all,

there are a couple of NVME SSD tests and reviews here on Anandtech, my particular interest is about the HMB type.
Most common one is the Samsung 980 (not the Pro, just the plain 980).

The review: https://www.anandtech.com/show/16504/the-samsung-ssd-980-500gb-1tb-review

mentions the following:

The Samsung SSD 980 requests 64 MB of host ram for its HMB, but is willing to make use of as little as 16MB. These values are similar to other DRAMless NVMe SSDs we've tested. For this review, we've run the synthetic benchmarks with HMB enabled (the default on recent operating systems) and with HMB disabled to illustrate its impact.

My questions:

1) how can the HMB allocation be seen? E.g. how much RAM was requested, and how much of that was indeed given to the SSD?
2) how can the HMB be disabled/enabled to test the effect of it?
3) The above 2 questions apply both to Linux and Windows, but if that would be too much to ask for, I am primarily concerned about Windows 10. HMB under Linux would be also great to know, if possible.

Thanks for any help.
 

mikeymikec

Lifer
May 19, 2011
17,671
9,509
136
I acknowledge that what I'm about to say isn't a directly helpful answer to your question, but why are you even considering the Samsung 980 when the Samsung 970 Evo Plus has its own cache so it doesn't have to rely on cheap tricks to try and stop performance tanking, and from what I've seen it's either a little cheaper than the 980 or the same price.

Logically no SSD maker would spend money including DRAM if HMB was vaguely as good as DRAM. The 970 Evo Plus includes between 512MB and 2GB on-board cache, and according to your quote the 980 requests 16-64MB. Not only do the figures speak for themselves, but the 980 will have to deal with off-board cache and the latencies and issues associated with having to wait for the system to answer a request for general RAM access amongst its other duties involving system RAM (which is basically all activity).

I could see a potential argument for including the 980 in a line-up if it was significantly cheaper than the 970 Evo Plus and/or if there was a particular (and relevant to one's expected usage) scenario which made it excel.

When DRAM-less SSDs run out of cache, general system responsiveness/performance absolutely tanks. I've experienced it, it's like running a modern version of Windows off a hard drive: the transfer speed goes through the floor (from hundreds of megs a second write speed to like 30, at the time I was copying about 100GB of customer data to the SSD), and asking Windows to do anything involves waiting many more seconds than usual (for a SSD) before you get any kind of response. The kind of scenario where you just have to give up and find something else to do that doesn't involve that computer. With a decent SSD I've simply never seen this happen, despite experiencing many scenarios involving the transfer of say >100GB of data to the boot SSD.
 

soder

Junior Member
Nov 15, 2023
2
0
6
I acknowledge that what I'm about to say isn't a directly helpful answer to your question, but why are you even considering the Samsung 980 when the Samsung 970 Evo Plus has its own cache so it doesn't have to rely on cheap tricks to try and stop performance tanking, and from what I've seen it's either a little cheaper than the 980 or the same price.

Logically no SSD maker would spend money including DRAM if HMB was vaguely as good as DRAM. The 970 Evo Plus includes between 512MB and 2GB on-board cache, and according to your quote the 980 requests 16-64MB. Not only do the figures speak for themselves, but the 980 will have to deal with off-board cache and the latencies and issues associated with having to wait for the system to answer a request for general RAM access amongst its other duties involving system RAM (which is basically all activity).

I could see a potential argument for including the 980 in a line-up if it was significantly cheaper than the 970 Evo Plus and/or if there was a particular (and relevant to one's expected usage) scenario which made it excel.

When DRAM-less SSDs run out of cache, general system responsiveness/performance absolutely tanks. I've experienced it, it's like running a modern version of Windows off a hard drive: the transfer speed goes through the floor (from hundreds of megs a second write speed to like 30, at the time I was copying about 100GB of customer data to the SSD), and asking Windows to do anything involves waiting many more seconds than usual (for a SSD) before you get any kind of response. The kind of scenario where you just have to give up and find something else to do that doesn't involve that computer. With a decent SSD I've simply never seen this happen, despite experiencing many scenarios involving the transfer of say >100GB of data to the boot SSD.
I appreciate your idea, but I prefer to still know how these stats work.
If not specific to Samsung 980, I believe all the other HMB nvme SSDs should behave and work exactly the same way. So there may be a new generation of devices, that will cost much less than DRAM SSDs, so those will be worth purchasing. I believe this HMB tech wont be a niche / short-lived idiocracy. I am not evangelising HMB, I dont think these are superior to anything, I dont believe these are THE future. These are only one kind of alternatives. And they work surprisingly good in contrast to what one would expect from these.
So please, anyone, I really would like to know the trick!
 

NewMaxx

Senior member
Aug 11, 2007
248
30
91
Hello all,

there are a couple of NVME SSD tests and reviews here on Anandtech, my particular interest is about the HMB type.
Most common one is the Samsung 980 (not the Pro, just the plain 980).

The review: https://www.anandtech.com/show/16504/the-samsung-ssd-980-500gb-1tb-review

mentions the following:



My questions:

1) how can the HMB allocation be seen? E.g. how much RAM was requested, and how much of that was indeed given to the SSD?
2) how can the HMB be disabled/enabled to test the effect of it?
3) The above 2 questions apply both to Linux and Windows, but if that would be too much to ask for, I am primarily concerned about Windows 10. HMB under Linux would be also great to know, if possible.

Thanks for any help.
There's tools to find this. VLO's nvme-hmb on Windows, nvme-cli (nvme get-feature) on Linux. Also can be recorded (and modified) in Windows. Limit on HMB size depends on the drive, by NVMe spec with normal granularity it's up to about 1GB:1TB. As per the article it's normally 64MB or less. You can disable HMB to test it on and off.
 
  • Like
Reactions: mikeymikec

NewMaxx

Senior member
Aug 11, 2007
248
30
91
I appreciate your idea, but I prefer to still know how these stats work.
If not specific to Samsung 980, I believe all the other HMB nvme SSDs should behave and work exactly the same way. So there may be a new generation of devices, that will cost much less than DRAM SSDs, so those will be worth purchasing. I believe this HMB tech wont be a niche / short-lived idiocracy. I am not evangelising HMB, I dont think these are superior to anything, I dont believe these are THE future. These are only one kind of alternatives. And they work surprisingly good in contrast to what one would expect from these.
So please, anyone, I really would like to know the trick!
Some of the early HMB drives were wonky and there are other outliers. The WD SN500, for example, comes with HMB disabled, but then it appears in the latter SN550. You can test the SN550 both ways to see it doesn't make much difference on that line of drives in everyday use. Newer DRAM-less NVMe drives are quite good but as HMB is still volatile you're having the most important things in local SRAM. There's other drives with both DRAM and HMB, to confuse things further. While HMB is usually used for metadata and mapping, it can be used for other forms of caching, but that's not typical. I suggest checking this article for some basics and then to see resizable effects, check this article.