1

I am looking at some SSDs and try to benchmark them. In particular, I wanted to see if I can reproduce the numbers in the datasheet. Currently I am looking at a HUSSL4040BSS600 SSD which is SAS. With this particular SSD, I can enable or disable the write cache of the disk, using sdparm. With

sdparm /dev/sdb -p ca

one can query the write cache, and I get the cache status, and according to the output

Caching (SBC) mode page:
  IC            0  [cha: y, def:  0, sav:  0]
  ABPF          0  [cha: y, def:  0, sav:  0]
  CAP           0  [cha: y, def:  0, sav:  0]
  DISC          0  [cha: y, def:  0, sav:  0]
  SIZE          0  [cha: y, def:  0, sav:  0]
  WCE           1  [cha: y, def:  1, sav:  1]
  MF            0  [cha: y, def:  0, sav:  0]
  RCD           0  [cha: y, def:  0, sav:  0]
  DRRP          0  [cha: y, def:  0, sav:  0]
  WRP           0  [cha: y, def:  0, sav:  0]
  DPTL          -1  [cha: y, def: -1, sav: -1]
  MIPF          0  [cha: y, def:  0, sav:  0]
  MAPF          -1  [cha: y, def: -1, sav: -1]
  MAPFC         -1  [cha: y, def: -1, sav: -1]
  FSW           0  [cha: y, def:  0, sav:  0]
  LBCSS         0  [cha: y, def:  0, sav:  0]
  DRA           0  [cha: y, def:  0, sav:  0]
  SYNC_PROG     0  [cha: n, def:  0, sav:  0]
  NV_DIS        0  [cha: n, def:  0, sav:  0]
  NCS           0  [cha: y, def:  0, sav:  0]
  CSS           0  [cha: y, def:  0, sav:  0]

and the explanations in this document on page 281, the write cache is currently enabled (WCE=1). According to the product manual of this SSD, it should have the following specs:

enter image description here

so for example, with 4K random writes and QD1, I should get around 11K IOPS. I test that with the following fio command line

fio --name=iops --rw=randwrite --bs=4k --iodepth=1 --ioengine=io_uring --direct=1 --fsync=1 --numjobs=1 --time_based --runtime=20 --group_reporting --filename=/dev/sdb

and fio reports:

write: IOPS=4197, BW=16.4MiB/s (17.2MB/s)(328MiB/20001msec); 0 zone resets

This is quite a lot worse than the specification of 11K. So, now, for test purposes I will disable the write cache of the SSD

sdparm --set WCE=0 /dev/sdb

and run the exact same fio command as above, and now I get

write: IOPS=11.8k, BW=46.0MiB/s (48.2MB/s)(919MiB/20001msec); 0 zone resets

so actually spot-on to the specification. However, I don't understand this behaviour. Why is this the case? why is the SSD faster if the write cache is disabled? and furthermore, if I am using this SSD to run VMs from it (which will give a high IOPS demand) should I, therefore, set WCE=0 to have better IOPS performance?

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.