I recommend first running Microsoft SQLIO on your drive array to find out if you are getting the most IOPS out of the array. I did something similar with an HP Gen8 all SAS SSD but went Raid 5 for redundancy (less costly because less disks required). I ran SQLIO and discovered the array was performing like a standard or less SAS spinning disk array.
This was done a few years ago. HP tech support was lost because it was too new even for them especially since I licensed HP SmartPath firmware for the Raid Controller.
I discovered I wasted some money on additional Raid Controller cache memory because the cache is unused\unnecessary when SSD's are involved.
With the clues HP Support provide and my own research I found that a specific HP Array driver was required to get SmartPath operational. This was key but then I discovered that it was only available for Windows Server 2008 R2 and my server was Windows Server 2012 I though I had wasted money on that too!
The trick was to manually install the Windows Server 2008 R2 driver (the driver install program fails) through the device manager onto the Windows Server 2012.
Below is the SQLIO final results:
Raid 5:
*** Start of Test for DATA Disk ***
******************************************************************************
Sequential Read 8K - TARGET better than 7000 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramDATA.txt
file c:\temp\datafile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads reading for 30 secs from file c:\temp\datafile.dat
using 8KB sequential IOs
enabling multiple I/Os per thread with 8 outstanding
size of file c:\temp\datafile.dat needs to be: 4194304000 bytes
current file size: 0 bytes
need to expand by: 4194304000 bytes
expanding c:\temp\datafile.dat ... done.
using specified size: 4000 MB for file: c:\temp\datafile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 40795.70
MBs/sec: 318.71
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 0
Max_Latency(ms): 14
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 80 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
******************************************************************************
Sequential Write 8K - TARGET better than 7000 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramDATA.txt
file c:\temp\datafile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads writing for 30 secs to file c:\temp\datafile.dat
using 8KB sequential IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 4000 MB for file: c:\temp\datafile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 3240.20
MBs/sec: 25.31
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 9
Max_Latency(ms): 39
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 1 3 2 1 2 3 6 15 10 6 6 20 13 4 2 1 1 1 1 1 0 0 0 0 0
******************************************************************************
Random Read 8K - TARGET better than 700 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramDATA.txt
file c:\temp\datafile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads reading for 30 secs from file c:\temp\datafile.dat
using 8KB random IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 4000 MB for file: c:\temp\datafile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 62614.70
MBs/sec: 489.17
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 0
Max_Latency(ms): 22
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 98 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
******************************************************************************
Random Write 8K - TARGET better than 500 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramDATA.txt
file c:\temp\datafile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads writing for 30 secs to file c:\temp\datafile.dat
using 8KB random IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 4000 MB for file: c:\temp\datafile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 15909.63
MBs/sec: 124.29
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 1
Max_Latency(ms): 29
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 34 31 15 9 5 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
******************************************************************************
*** Start of Test for LOG Disk ***
******************************************************************************
Sequential Read 8K - TARGET better than 7000 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramLOG.txt
file c:\temp\logfile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads reading for 30 secs from file c:\temp\logfile.dat
using 8KB sequential IOs
enabling multiple I/Os per thread with 8 outstanding
size of file c:\temp\logfile.dat needs to be: 4194304000 bytes
current file size: 0 bytes
need to expand by: 4194304000 bytes
expanding c:\temp\logfile.dat ... done.
using specified size: 4000 MB for file: c:\temp\logfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 40853.16
MBs/sec: 319.16
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 0
Max_Latency(ms): 11
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 80 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
******************************************************************************
Sequential Write 8K - TARGET better than 7000 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramLOG.txt
file c:\temp\logfile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads writing for 30 secs to file c:\temp\logfile.dat
using 8KB sequential IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 4000 MB for file: c:\temp\logfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 3259.03
MBs/sec: 25.46
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 9
Max_Latency(ms): 42
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 1 3 2 1 2 3 6 16 10 6 7 21 13 3 2 1 1 1 1 1 1 0 0 0 0
******************************************************************************
Random Read 8K - TARGET better than 700 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramLOG.txt
file c:\temp\logfile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads reading for 30 secs from file c:\temp\logfile.dat
using 8KB random IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 4000 MB for file: c:\temp\logfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 62389.60
MBs/sec: 487.41
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 0
Max_Latency(ms): 21
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 98 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
******************************************************************************
Random Write 8K - TARGET better than 500 IOs/sec
sqlio v1.5.SG
using system counter for latency timings, 1948427 counts per second
parameter file used: paramLOG.txt
file c:\temp\logfile.dat with 4 threads (0-3) using mask 0x0 (0)
4 threads writing for 30 secs to file c:\temp\logfile.dat
using 8KB random IOs
enabling multiple I/Os per thread with 8 outstanding
using specified size: 4000 MB for file: c:\temp\logfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 15947.06
MBs/sec: 124.58
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 1
Max_Latency(ms): 28
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 34 31 15 9 5 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
*** Test Done ***