Microsoft has released a free tool - SQLIO (Download at http://www.microsoft.com/en-us/download/details.aspx?id=20163)
Intel initially has developed IOMeter which is now open source can be download at http://www.iometer.org/doc/downloads.html
Both tools are pretty easy to use. Of course, SQLIO provide more advance testing scenario by choosing the right parameter, such as number to threads, file size, read/write, random/sequential, block size, buffer cache, etc...
I've seen 2 good sites that explain pretty well with SQLIO command... pls see...
http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio/
http://www.sqlteam.com/article/benchmarking-disk-io-performance-size-matters
However, I still no no idea what's the actual number we should be look at...
I created the batch file as shown below.
@echo off
cls
:start
echo Testing IO...
SQLIO.exe -kW -s60 -frandom -o8 -b8 -LS -Fparam.txt timeout /T 60
SQLIO.exe -kW -s60 -frandom -o8 -b256 -LS -Fparam.txt timeout /T 60
SQLIO.exe -kR -s60 -frandom -o8 -b8 -LS -Fparam.txt timeout /T 60
SQLIO.exe -kR -s60 -frandom -o8 -b256 -LS -Fparam.txt timeout /T 60
timeout 1
goto start
==END==
param.txt file content -> change the last number to indicate file size
c:\testfile.dat 2 0x0 8000
#d:\testfile.dat 2 0x0 100
Result
When you indicate different file size to test, the IOPS and throughput come back differently. However, different read/write with different block size give different number as well. If we refer to the IOPS provided by disk (according to Wikipedia.org), SAS 15k RPM should provide 175-210 IOPS. I'm using 4 SAS disk with RAID 5, and running this test with just one VM.
Now, 4x200 IOPS, 800 IOPS... Where does this 800 IOPS fit in?
Intel initially has developed IOMeter which is now open source can be download at http://www.iometer.org/doc/downloads.html
Both tools are pretty easy to use. Of course, SQLIO provide more advance testing scenario by choosing the right parameter, such as number to threads, file size, read/write, random/sequential, block size, buffer cache, etc...
I've seen 2 good sites that explain pretty well with SQLIO command... pls see...
http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio/
http://www.sqlteam.com/article/benchmarking-disk-io-performance-size-matters
However, I still no no idea what's the actual number we should be look at...
I created the batch file as shown below.
@echo off
cls
:start
echo Testing IO...
SQLIO.exe -kW -s60 -frandom -o8 -b8 -LS -Fparam.txt timeout /T 60
SQLIO.exe -kW -s60 -frandom -o8 -b256 -LS -Fparam.txt timeout /T 60
SQLIO.exe -kR -s60 -frandom -o8 -b8 -LS -Fparam.txt timeout /T 60
SQLIO.exe -kR -s60 -frandom -o8 -b256 -LS -Fparam.txt timeout /T 60
timeout 1
goto start
==END==
param.txt file content -> change the last number to indicate file size
c:\testfile.dat 2 0x0 8000
#d:\testfile.dat 2 0x0 100
Result
read | read | read | read | write | write | write | write | |
8k | MB/s | 256k | MB/s | 8k | MB/s | 256k | MB/s | |
1GB file | 2659 | 20 | 701 | 175 | 918 | 7.17 | 337 | 84 |
Chg to 8GB file | 1410 | 11 | 527 | 131 | 931 | 7 | 182 | 45 |
When you indicate different file size to test, the IOPS and throughput come back differently. However, different read/write with different block size give different number as well. If we refer to the IOPS provided by disk (according to Wikipedia.org), SAS 15k RPM should provide 175-210 IOPS. I'm using 4 SAS disk with RAID 5, and running this test with just one VM.
Now, 4x200 IOPS, 800 IOPS... Where does this 800 IOPS fit in?
Comments
Post a Comment