Hall Monitor

Adrian Hall's website

SCSI2SD benchmark

In December 2019, somebody posted the following performance figures for a SCSI2Sd in an R5K/180 SGI Indy, with an A2 rated Sandisk Extreme 128GB SD card:

 diskperf -W -n scsi2sd_10M_Sync -c 1G -t 60 /mnt/testpath                                   
#---------------------------------------------------------
# Disk Performance Test Results Generated By Diskperf V1.2
#
# Test name     : scsi2sd_10M_Sync
# Test date     : Sat Dec 14 12:20:45 2019
# Test machine  : IRIX isengard 6.5 10070055 IP22
# Test type     : XFS data subvolume
# Test path     : /mnt/testpath
# Request sizes : min=4096 max=4194304
# Parameters    : direct=0 time=60 scale=1.000 delay=0.000
# XFS file size : 1073741824 bytes
#---------------------------------------------------------
# req_size  fwd_wt  fwd_rd  bwd_wt  bwd_rd  rnd_wt  rnd_rd
#  (bytes)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)
#---------------------------------------------------------
       4096    1.26    3.31    1.41    3.28    0.09    0.15
       8192    1.38    3.61    1.27    3.13    0.17    0.29
      16384    1.41    3.61    1.28    3.14    0.34    0.59
      32768    1.38    3.62    1.28    3.14    0.68    1.12
      65536    4.46    1.19    3.60    3.84    2.99    1.47
     131072    4.48    1.57    3.47    3.93    2.61    2.34
     262144    4.49    1.93    3.20    3.69    3.39    1.88
     524288    4.49    2.15    2.95    3.51    2.98    2.19
    1048576    4.50    2.19    2.94    3.47    3.24    1.20


Code:

# diskperf -W -n 300G_10K_SGI_Indy -c 128M -t 10 /tmp/testpath                               
#---------------------------------------------------------
# Disk Performance Test Results Generated By Diskperf V1.2
#
# Test name     : 300G_10K_SGI_Indy
# Test date     : Sat Dec 14 13:53:04 2019
# Test machine  : IRIX isengard 6.5 10070055 IP22
# Test type     : XFS data subvolume
# Test path     : /tmp/testpath
# Request sizes : min=4096 max=4194304
# Parameters    : direct=0 time=10 scale=1.000 delay=0.000
# XFS file size : 134217728 bytes
#---------------------------------------------------------
# req_size  fwd_wt  fwd_rd  bwd_wt  bwd_rd  rnd_wt  rnd_rd
#  (bytes)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)
#---------------------------------------------------------
       4096   16.22   13.13   15.82    4.09    0.01   17.52
       8192   17.00    1.30   13.63    5.66    0.00   20.44
      16384   13.77   13.41   20.61    4.20    0.76   24.40
      32768   14.03   13.44   21.23    4.25    2.12   24.35
      65536   15.78   12.97   17.80    4.08    1.26   28.79
     131072   16.84   13.27   17.07    3.18   12.16   27.01
     262144   13.70   11.72   16.02    4.54   17.24   25.63
     524288   12.88   15.86   16.86    5.83   14.97   24.19
    1048576   14.46   12.13   15.55   10.01   11.39   23.87
    2097152   14.23   12.73   16.99   11.34   13.97   24.01
    4194304   14.07   10.86   13.46   14.61   16.69   18.73

As you might guess, they were unimpressed by these results and said they would “live with the noise”. At time of writing, I am using a SCSI2SD as my boot disk in an Indy, and I find performance to be acceptable. I decided to run my own benchmark:

System: Indy R4400SC/150 – 128MB RAM – XL24 – SCS2SD v6
SD card: SanDisk 128GB Extreme Pro SDXC UHS-I/U3 V30 (SDSDXXY-128G-GN4IN)
Firmware: 6.2.5
Settings:

settings1.PNG
settings2.PNG
# diskperf -W -n scsi2sd_redux -c 1G -t 60 /tmp/testpath                             
#---------------------------------------------------------
# Disk Performance Test Results Generated By Diskperf V1.2
#
# Test name     : scsi2sd_redux
# Test date     : Thu APR  3 21:10:13 2020
# Test machine  : IRIX IRIS 6.5 10070055 IP22
# Test type     : XFS data subvolume
# Test path     : /tmp/testpath
# Request sizes : min=4096 max=4194304
# Parameters    : direct=0 time=60 scale=1.000 delay=0.000
# XFS file size : 1073741824 bytes
#---------------------------------------------------------
# req_size  fwd_wt  fwd_rd  bwd_wt  bwd_rd  rnd_wt  rnd_rd
#  (bytes)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)
#---------------------------------------------------------
       4096    2.84    5.96    2.64    4.27    0.18    0.35
       8192    2.52    5.54    2.72    4.56    0.34    0.70
      16384    2.74    6.11    2.85    4.59    0.63    1.38
      32768    2.76    6.06    2.83    4.73    1.31    2.56
      65536    5.92    5.25    5.43    4.27    4.36    4.91
     131072    5.00    5.86    5.44    4.87    4.13    5.79
     262144    5.57    6.67    5.58    5.51    4.85    5.91
     524288    5.49    6.98    5.48    5.49    5.34    5.89
    1048576    5.73    7.16    5.66    6.22    4.52    4.07
    2097152    5.54    6.65    5.59    6.42    4.69    7.42
    4194304    5.58    6.76    5.72    6.59    5.39    6.19

As you can see my results average ~2x the results in the original post (still nowhere near the HDD they tested though). I tried again in SCSI2 mode, and while that was certainly faster, I started to find that there was a lot of run-to-run variance. I believe that the SD card’s internal caching and wear leveling is part of this.

Another thing I want to say about SCSI2SD: I am very wary about the potential for it to consume SD cards, especially cheap ones. Generally, SD cards have flash memory that is rated for lower endurance, which means it might not handle the load of being an OS-drive well. However, 50-pin SCSI drives are loud and limited in supply. For what I’m doing, I’m fine with the trade-off (particularly because I can use different OS’es on the same computer without having to unplug drives, which wears out the connectors).