Dev Ups

Published 2023-08-20 in hardware

Extended SSD benchmarking with h2testw

I bought some new SSDs. I have time now to document a peculiarity I had observed before. Now I've got two very recent run-throughs of h2testw, with video captured should I need to raise an RMA. This is ideal data to chart how performance degrades as the disk fills up, at least with h2testw.

Looking at the graph is an intuitive way to gauge average write performance, as opposed to the optimal performance you might be pleased to see upon, non-exhaustively, testing a brand-new disk.

Results

There will be data, and vertical space. A short description shall accompany each device under test. Maybe a photo if I remember. Feel free to skip to the graph.

512 GB Goldenfir, 2.5"

This 512 GB, Goldenfir, 2.5", disk took six hours to test connected by SATA to a Kaby Lake mobo in an Optiplex:

GB written Reported MByte/s
0.3 300
17 310
64 300
89 268
130.1 183
138.3 120
144.6 97.1
150.9 81.8
165.6 63.3
180.5 52.3
205.2 42.7
225.4 37.8
268.0 32.4
327.3 28.9
375.7 26.7
396.9 25.9
409.7 25.5
478.4 23.7
486.8 23.3

512 GB KingSpec NVMe

This was a 512 GB KingSpec plugged directly into the motherboard of my Optiplex tower. It took 4 hours 20 to fill.

Kingspec h2test2 complete

GB written Reported MByte/s
0 900
22 900
39.5 892
144.5 236
147.0 205
151.0 169
155.3 144
195.1 69.3
200.0 66.0
205.1 63.1
237.0 51.1
242.0 49.8
247.3 48.6
290.7 41.7
294.0 41.3
371.0 35.4
449.5 32.3
484.2 31.5

256 GB KingSpec NVMe

This was a 256 GB KingSpec inside a 10Gbps RTL9210 USB enclosure. I couldn't be bothered opening a PC, and 10Gbps is plenty. A partition was required for h2testw to proceed. I accepted the defaults: GPT and NTFS. It took 16 minutes to fill with test data. Outstanding! I didn't even leave the enclosure's case off, for thermals.

Kingspec h2test2 complete

Kingspec h2test2 complete

GB written Reported MByte/s
1.4 296
50 299
100 299
150 299
175 299
180 299
185 296
190 291
195 287
200 282
210 274
220 267
230 260
240 255

256 GB Kingston NVMe

This is a tiny 2242 2230 disk that I didn't mind wiping. PCIe gen3x4. For brevity I've omitted data points where the speed remained unchanged for prolonged periods.

Kingston om3pdp3256b-ad on the USB bridge device, ready to go.

Kingston om3pdp3256b-ad buckled in ready for test

GB written Reported MByte/s
4 302
10 302
25 302
30 296
40 289
50 285
60 282
70 280
75 278
77 265
80 248
85 226
90 217
100 221
110 225
120 218
125 209
130 203
150 203
170 204
210 204
215 203
220 189
225 175
230 161
235 150
240 141

240 GB PNY 2.5"

This 240 GB, PNY, 2.5", CS900, disk was connected by USB enclosure (left open for cooling). It took an hour to fill (only 228 GB here) with test data.

GB written Reported MByte/s
10 295
20 296
30 300
40 302
79 302
80 280
81 259
82 238
83 223
84 209
85 198
86 189
87 181
88 173
89 168
90 162
95 140
100 125
110 105
120 93
130 84
150 74
175 66
200 61
220 58

256 GB Somnambulist 2.5"

This 256 GB, 2.5", disk was connected by USB enclosure (left open for cooling). It took about an hour to fill with test data.

GB written Reported MByte/s
10 292
20 295
30 296
50 297
60 297
65 292
70 277
80 246
90 171
100 138
110 119
120 107
130 98
140 92
150 87
175 79
200 73
220 70
240 69

240 GB Somnambulist 2.5"

This 240 GB, 2.5", disk was connected internally by SATA. I knew it was struggling over USB. It took three and a half hours to fill, but did, miraculously, verify correctly.

h2testw for somnambulist 240gb 2.5"

GB written Reported MByte/s
18.9 362
58.1 68.6
104 37.1
146.6 32.1
201 21.2
218 19
223.3 18.5
225 18.3
226.5 18.2
227.8 18

128 GB Somnambulist NVMe

This "128 GB", M.2, disk was connected externally. The speed was great, other aspects disappointed, however.

Label on somnambulist

I received a 120GB "Colorful" drive instead of the 128GB. The label, I thought was a heatsink, blistered and peeled.

It either came with, or developed during the course of tests, thermal runaway. It's an external drive, limited to 300 MB/s yet claiming PCIe Gen 3x4 support, it shouldn't be more than about 50°C.

GB written Reported MByte/s
10 306
50 306
60 307
65 280
70 217
75 181
80 140
90 93
100 73
110 63

h2testw for somnambulist 128gb NVMe

The verification was sluggish because the drive just wouldn't cool while plugged in. I kept expecting the speed to pick back up for verification, as it has on all disks I've previously tested. It did pick up a MByte/s or two; not enough to dissuade me from poking it afterwards.

h2testw for somnambulist 128gb NVMe

It was hot!

I've a separate post about Somnambulist. I got a refund. The capacity is wrong, and it's a 3-4Watt space heater.

mSATA (MT) 64GB KingSpec

The setup for testing mSATA disks involved an extra converter to bridge from my USB to SATA converter to mSATA:

Rear of KingSpec MT-64GB, fitted in test harness

Bear in mind that I stored this drive in 2019/2020, so it was still using an MBR partition scheme, and whatever old technology went into devices 4 years ago! The MBR caused an unexpected failure in h2testw:

2019 KingSpec mSATA disk failing h2testw because I left it using MBR

I was going to write it off as useless, I probably will never need it, but I like benchmarking, so I got around to repartitioning it to GPT. h2testw passed with flying colours:

KingSpec MT-64 passing h2testw with fresh GPT partition scheme

GB written Reported MByte/s
1 246
2 240
3 240
4 197
5 168
10 169
15 156
20 154
25 117
45 114
55 87
60 78

Verification was at 256MB/s. I believe the departure from the typical 300 MB/s max write speed is because of the extra adapter. Possibly my adapter, or USB controller/ports have been regulated down. Just know that the initial horizontal is limited by my test set up, not by the disk. I could save a couple of minutes using a faster PC but that would make my drives hotter and isn't worth upgrading for.

Here's the front of the drive:

Front of KingSpec MT-64GB

mSATA (MT) 256GB KingSpec

Front:

Front of KingSpec MT-256GB

Rear:

Rear of KingSpec MT-256GB

It took about an hour to fill. This is one of the faster performers, as I've come to expect from KingSpec.

GB written Reported MByte/s
10 265
80 267
90 219
95 188
100 166
110 139
120 119
130 106
170 83
180 80
220 72
240 70

Verbatim Vi550 S3 1TB

At last, a familiar brand! Kingston is a brand... This is more like a big, modern, disk. What surprised me was that the 2.5" housing was fully metal! I've been handling PCBs for the past few months, so it was nice to see a durable, heat dissipating enclosure. After filling it with 150 GB, the metal felt, in one particular place, warmer than warm, so was totally working to dissipate heat.

Metal:

Label on back of verbatim vi550 1tb 7mm 2.5" SSD

When I plugged it in, Windows Disk Manager, which was where I was waiting to first see it, told me I had to initialise it and asked what partition scheme to use. Obviously, I chose GPT and added the first partition to cover the whole disk.

It took 5:26 to fill the disk with test data.

GB written Reported MByte/s
10 274
90 274
100 269
105 232
110 206
120 170
150 110
170 99
200 85
250 75
300 69
400 64
500 59.7
600 57.5
700 55.9
800 53.7
900 51.2
976 49.9

Successful 6 and a half hours of h2testw

Rather than saying the upper left quadrant felt 40°C, as it did after 10 minutes, I took a picture 20 seconds after writing finished and verification began:

Temperatures of verbatim vi550 1tb 7mm 2.5" SSD

The tiny controller chip was hotter, but I wasn't trying to test that!

Metric validation

How does h2testw arrive at the write figures? It takes a rolling average. Any metric viewer can expect fluctuations, not least task manager. h2testw had fluctuations too, but they were less because as a tool it is more concerned with sustained performance and less with instantaneous performance.

Consider these screens, seconds apart:

disk metrics at 20:14

disk metrics at 20:15

Comparison

In the larger, 512 GB disks, performance always falls off very quickly, and approaches an asymptote. I've clipped this graph to the first 300 GB written. The 900 MByte/s write speed of the internal M.2 was an anomaly, because despite having a 10 Gbps bridge device, I've only got USB 3.0.

USB 3.0 is limited to a theoretical maximum speed of 4.8 Gbps (600 MByte/s), with an achievable speed being expected to be 400 MByte/s. For me, this appears to be 300 MB/s. I didn't collect this data to measure best case speeds, and real speeds soon fall far below 300 MByte/s no matter how capable the disk.

Sustained write performance during h2testw of various SSDs

Conclusion

The 256 GB disks really stole the show. The KingSpec 256 GB was amazing. The Kingston did very well also.

I'm still no closer to finding why write speed trends downwards in sustained tests like h2testw. My theory was some SLC is used for "bursting" and then offloaded to TLC when write activity lets up. I haven't identified such significant amounts of faster flash hardware on any of the devices.

The more I test, the more I realise how much of a lottery it is and no 2 disks are the same. I did actually have two of the same disk, but was too lazy to run h2testw on both.

I've learned how easily the label comes off NVMe drives, so I can check more chip numbers.