Skip to main content

SAN performance testing using SQLIO

Introduction


This document describes how to use Microsoft’s SQLIO to test disk/SAN performance. It is biased towards SQL Server – which uses primarily 64KB and 8KB data pages so I am running the tests using those cluster sizes, however, other sizes can be specified.
SQLIO is a command line tool with no GUI so you need to open a command prompt at C:\Program Files (x86)\SQLIO after you have installed it.

Configuration

First of all edit param.txt so that you create the test file we will be using. The file needs to be bigger than the combined RAID and on-board disk caches. In this case we are using a 50GB file.

The “2” refers to the number of threads to use when testing, you don’t need to change this now. The “0x0” value indicates that all CPUs should be used, which you probably don’t want to change either, “#” is a comment. The only part you may want to change is 51200 (50GB) and the drive letter.
After saving param.txt, run the command below at the command line in the same directory where SQLIO is installed in order to create the test file, this will save time later when you run the tests proper. Depending on the speed of the hardware and size of the test file this could take 5 – 20 minutes to complete:
sqlio -kW -s10 -fsequential -o8 -b8 -LS -Fparam.txt

Parameters

The parameters for the command you will be running are:
-kW means writes, use this or:
-kR means reads
-t2 means two threads (increase as required. You can have more threads than CPUs. Max 256)
-s120 means test for 120 seconds
-dE means drive letter E
-o1 means one outstanding request (increase as required)
-frandom means random access, use this or:
-fsequential means sequential access
-b64 means 64kb data clusters to process (useful for testing for SQL Server), use this or:
-b8 means 8kb data clusters to process (useful for testing for SQL Server)
-BH means use the disk cache (hardware buffering). We would normally use this.
-BN (default) means use file system cache (probably don’t want to use this value to get a realistic result)
-LS means show disk latency from the system (use this). Especially on SMP machines
-LP means show from the process (probably don’t want to use this)
/T means timeout in seconds before executing the next command, if one follows.

To give you an idea of how long all the tests will take run, copy the following into a batch file called TestSAN.bat. It should run for 8 minutes.

sqlio -kW -t8 -s30 -dG -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o8 -frandom -b64 -BH -LS Testfile.dat
 
sqlio -kW -t8 -s30 -dG -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o8 -fsequential -b64 -BH -LS Testfile.dat
 
sqlio -kW -t8 -s30 -dG -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o8 -frandom -b8 -BH -LS Testfile.dat
 
sqlio -kW -t8 -s30 -dG -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s30 -dG -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s30 -dG -o8 -fsequential -b8 -BH -LS Testfile.dat 
Execute it via a command prompt at C:\Program Files (x86)\SQLIO
TestSAN.bat > SANTestResults.txt

Reading and analysing the results

Contents of SANTestResults.txt
C:\Program Files (x86)\SQLIO>sqlio -kW -t8 -s120 -o8 -frandom -b8 -BH -LS -Fparam.txt
sqlio v1.5.SG
using system counter for latency timings, 3579545 counts per second
parameter file used: param.txt
 file e:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads writing for 120 secs to file e:\testfile.dat
 using 8KB random IOs
 enabling multiple I/Os per thread with 8 outstanding
 buffering set to use hardware disk cache (but not file cache)
using specified size: 51200 MB for file: e:\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:  1580.91
MBs/sec:    12.35
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 9
Max_Latency(ms): 2927
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+
%:  0 19 62 14  2  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  2

MBs/sec: Needs to be as high as possible
IOs/sec: As high as possible
Min_Latency(ms):As low as possible
Avg_Latency(ms): As low as possible
Max_Latency(ms): As low as possible

Reads should have higher throughput (MBs/sec) and IOPS (IOs/sec) than writes. Writes should have high latency rates than reads. Larger cluster sizes should have higher latency but maybe higher throughput.
The first row of the histogram (ms) provides groupings for 0ms through 23ms. The 24+ group includes operations that took 24ms and more. The second row in the histogram (%) provides a percentage of I/Os that completed in that time. For example, in the 4ms group 2% of the total I/Os completed running.
Look for where a drive plateaus for random reads, how many outstanding requests it takes to reach maximum capacity for random writes, or where sequential I/Os plateau compared to random ones.

The full test batch file

The batch file below will create a lot of logs. It may be more convenient to import them into a database and perform some aggregate queries on the results for easier analysis.

echo ******** Test Start ************
echo %date%
echo %time%
echo.
sqlio -kW -t8 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kW -t8 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kW -t16 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kW -t16 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kW -t32 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kW -t32 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kW -t64 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kW -t64 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kR -t8 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kR -t8 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kR -t16 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kR -t16 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kR -t32 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kR -t32 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
  
sqlio -kR -t64 -s120 -dE -o1 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o2 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o4 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o8 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o16 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o32 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o64 -frandom -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o128 -frandom -b64 -BH -LS Testfile.dat
  
sqlio -kR -t64 -s120 -dE -o1 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o2 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o4 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o8 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o16 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o32 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o64 -fsequential -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o128 -fsequential -b8 -BH -LS Testfile.dat
:---------------------------------------------------------------
sqlio -kW -t8 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kW -t8 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t8 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kW -t16 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kW -t16 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t16 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kW -t32 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kW -t32 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t32 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kW -t64 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kW -t64 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kW -t64 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kR -t8 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kR -t8 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t8 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kR -t16 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kR -t16 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t16 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kR -t32 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kR -t32 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t32 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
  
sqlio -kR -t64 -s120 -dE -o1 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o2 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o4 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o8 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o16 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o32 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o64 -fsequential -b64 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o128 -fsequential -b64 -BH -LS Testfile.dat
  
sqlio -kR -t64 -s120 -dE -o1 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o2 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o4 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o8 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o16 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o32 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o64 -frandom -b8 -BH -LS Testfile.dat
sqlio -kR -t64 -s120 -dE -o128 -frandom -b8 -BH -LS Testfile.dat
echo.
echo %date%
echo %time%
echo ******** Test  Finish ************
echo %date%
echo %time%
echo ***********************************

Comments

  1. Hello, I do believe your site could possibly be having internet browser compatibility problems. When I take a look at your web site in Safari, it looks fine however, if opening in I.E., it's got some overlapping issues. I merely wanted to give you a quick heads up! Other than that, wonderful blog! outlook 365 sign in

    ReplyDelete
    Replies
    1. Hi. Thanks very much for the info. The blog is actually hosted on Blogger so there must be something wrong with their template. I have lots more articles to put up eventually so perhaps when I get around to it I may host it somewhere else.

      Delete

Post a Comment

Popular posts from this blog

How to create a custom Windows Event Log view and email trigger

The filtering on Windows event logs can be slow, clunky and although you can do it on fields like event ID, it seems that many event IDs are shared amongst many different errors – the event ID may match but the body of the error (therefore the actual error) may be completely unrelated. Fortunately, it is possible to filter on the contents of the body of the error message but it requires creating a custom XML query. Also, it would be handy to send out a notification email when this event gets logged. Read on to find out how to work this magic…. This example is looking for a  Warning  event  1309  for  ASP.NET 4.0.30319.0  on a web server. If you were to just filter the log on the criteria above today it would return 435 results because it is a fairly general error ID. If I filter it using XML for SqlException (what I’m really interested in) only 5 results are returned. So the first step is go to the Application Log and choose  Create Custom View… ...

How to configure the SSAS service to use a Domain Account

NB Updating SPNs in AD is not for the faint hearted plus I got inconsistent results from different servers. Do so at your own risk! If you need the SSAS account on a SQL Server to use a domain account rather than the local “virtual” account “NT Service\MSSQLServerOLAPService”. You may think you just give the account login permissions to the server, perhaps give it sysadmin SQL permissions too. However, if you try and connect to SSAS  remotely  you may get this error: Authentication failed. (Microsoft.AnalysisService.AdomdClient) The target principal name is incorrect (Microsoft.AnalysisService.AdomdClient) From Microsoft: “A Service Principle Name (SPN) uniquely identifies a service instance in an Active Directory domain when Kerberos is used to mutually authenticate client and service identities. An SPN is associated with the logon account under which the service instance runs. For client applications connecting to Analysis Services via Kerberos authentic...

How to import a large xml file into SQL Server

(Or how to import the StackOverflow database into SQL Server) Introduction NB  This process can be generalised to import any large (>2G) xml file into SQL Server. Some SQL Server training you can find online including that by Brent Ozar uses the StackOverflow database for practice. The tables from it are available online for download in xml format. In the past it was possible to use the scripts found here, https://www.toadworld.com/platforms/sql-server/w/wiki/9466.how-to-import-the-stackoverflow-xml-into-sql-server , to import them but as each xml file is now over 2GB you will get an error like this when you try to execute them: Brent Ozar, has a link to SODDI.exe, https://github.com/BrentOzarULTD/soddi , which can import the files (I haven’t tried it) but it means downloading and importing eight tables: Badges, Comments, PostHistory, PostLinks, Posts, Tags, Users, and Votes tables which amounts to >30GB of compressed xml increasing to ~200GB when deco...