diff --git a/Set-VdbenchSD.ps1 b/Set-VdbenchSD.ps1 new file mode 100644 index 0000000..7d968d9 --- /dev/null +++ b/Set-VdbenchSD.ps1 @@ -0,0 +1,38 @@ +########################################################################### +$basedir = Split-Path -parent $MyInvocation.MyCommand.Definition +$workload_profiles = $(Get-Childitem $basedir\workloads\curves\*.cfg) +$outputdir = $basedir + "\output" +$vdbench = $basedir + "\vdbench50403\vdbench.bat" +$timestamp=Get-Date -Format 'yyyyMMdd-HHmmss' #20161008-101629 +#$rundir = ($outputdir + "\" + $run + "\") +#md $rundir -ErrorAction SilentlyContinue +########################################################################### +$regex = "^(?=.*?\b'sd'\b)(?!'*'.)*$." +Function Get-VdbenchSD () { + #TODO: Use Get-PSDrive provider property and select non-os drive to avoid wiping out OS + $DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index + $SD = $(foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"}) + return $SD[1] +} + +Function Set-VdbenchSD ($PathToFile, $StringToFind, $StringToReplace) { + (Get-Content $PathToFile) | + Foreach-Object {$_ -replace $StringToFind, $StringToReplace } | + Set-Content $PathToFile +} + +$SD = Get-VdbenchSD + +Write-Verbose "" +Write-Verbose "Setting Vdbench Workload Storage Device parameter" +ForEach ($w in $workload_profiles){ + $regex = "^sd.*?$" + write-verbose "$w.name" + Set-VdbenchSD $w $regex $sd + gc $w | sls ",size=" | Write-Verbose + Write-Verbose "----------------------" + } + + + +#gc .\workloads\curves\*.cfg | sls ",size=" \ No newline at end of file diff --git a/start-testrun.ps1 b/start-testrun.ps1 new file mode 100644 index 0000000..473ee31 --- /dev/null +++ b/start-testrun.ps1 @@ -0,0 +1,144 @@ +[CmdletBinding()] + param ( + + [parameter(Mandatory=$True,HelpMessage="Enter the name of this testrun")] + [ValidateNotNullOrEmpty()] + [string]$Run + ) + +clear-host + +function start-testrun { + [CmdletBinding()] + param ( + + [parameter(Mandatory=$True,HelpMessage="Enter the name of this testrun")] + [ValidateNotNullOrEmpty()] + [string]$Run + + ) + Begin { + function Get-Timestamp { + $timestamp=Get-Date -Format 'yyyyMMdd-HHmmss' #20161008-101629 + return $timestamp + } + + function Set-PowerPlan { + [CmdletBinding(SupportsShouldProcess = $True)] + param ( + [ValidateSet("High performance", "Balanced", "Power saver")] + [ValidateNotNullOrEmpty()] + [string] $PreferredPlan = "High Performance" + ) + + Write-Verbose "Setting power plan to `"$PreferredPlan`"" + $guid = (Get-WmiObject -Class Win32_PowerPlan -Namespace root\cimv2\power -Filter "ElementName='$PreferredPlan'").InstanceID.ToString() + $regex = [regex]"{(.*?)}$" + $plan = $regex.Match($guid).groups[1].value + + powercfg -S $plan + $Output = "Power plan set to " + $Output += "`"" + ((Get-WmiObject -Class Win32_PowerPlan -Namespace root\cimv2\power -Filter "IsActive='$True'").ElementName) + "`"" + Write-Verbose $Output + } + + Set-PowerPlan "High Performance" + + <# + Runs whatever workloads (*.cfg) are in the workloads directory + #> + ########################################################################### + # Notes: + <# $DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index + # foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} + # get-item *.cfg | ForEach {(get-content -path $_.FullName).Replace("6143g","2147g") | Set-Content -Path $_.FullName} + # 2147g + # Curve adjustment for HDD testing + # get-item *.cfg | ForEach {(get-content -path $_.FullName).Replace("(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98)","(1,5,10,15,20,25,30,35,40,45,50,75)") | Set-Content -Path $_.FullName} + # ^(?=.*?\b\b)(?!#.)*$. + # (1,5,10,15,20,25,30,35,40,45,50,75) + # get-item *.cfg | ForEach {(get-content -path $_.FullName | Select-String "curve=")} + #> + <# + #rd=lblkseqiorun,wd=lblkseqio,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=lblkseqiorun,wd=lblkseqio,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=exchcurverun,wd=exchcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=smallrun1,wd=small,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15 + #rd=max4kcurverun,wd=max4kcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=max4kcurverun,wd=max4kcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=oltpcurverun,wd=oltpcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #*rd=myrd,wd=wd1,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=sqlrun,wd=sqlcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #*rd=myrd,wd=wd1,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #rd=webcurverun,wd=webcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,75),interval=1,elapsed=60,warmup=15,threads=512 + #> + ########################################################################### + # Setting up environment variables for test run + ########################################################################### + #$basedir = Split-Path -parent $MyInvocation.MyCommand.Definition + $basedir = '.' + $workload_profiles = $(Get-Childitem $basedir\workloads\curves\*.cfg) + $outputdir = $basedir + "\output" + $vdbench = $basedir + "\vdbench50403\vdbench.bat" + #$timestamp=Get-Date -Format 'yyyyMMdd-HHmmss' #20161008-101629 + $timestamp = Get-Timestamp + $rundir = ($outputdir + "\" + $timestamp + '-'+$run) + Write-Verbose "" + Write-Verbose "Variables Used" + Write-Verbose "BaseDir = $basedir" + Write-Verbose "Outputdir = $outputdir" + Write-Verbose "Vdbench = $vdbench" + Write-Verbose "Timestamp = $timestamp" + Write-Verbose "Rundir = $rundir" + # + # Create Output Directory $rundir + if(!(test-path $rundir)){ + try { + New-Item -Path $rundir -ItemType directory -Force | out-null + } catch [Exception] { + $_.Exception.GetType().FullName, $_.Exception.Message | Write-Warning + break + } finally { + + } + } else { + Write-Warning $Rundr already exists + break + } + Write-Verbose "" + Write-Verbose "Calling .\Set-VdbenchSD.ps1" + .\Set-VdbenchSD.ps1 + + } + + Process { + + Foreach ($workload in Get-Childitem $workload_profiles){ + $workload_name = [System.IO.Path]::GetFileNameWithoutExtension($workload) + $workloaddir = ($rundir + "\" + $workload_name) + + $arguments = "-f $workload -o $workloaddir" + Write-Verbose "" + Write-Verbose "Starting Vdbench" + Write-Verbose "$vdbench $arguments -NoNewWindow -Wait" + Start-Process $vdbench $arguments -NoNewWindow -Wait + + <# + TODO: format disk, wipe disk between runs + clear-disk + Reset-PhysicalDisk (if unhealthy) + Write-VolumeCache #enables you to forcibly empty, or flush, the write cache by writing it to disk + Update-HostStorageCache or VDS Rescan when PG groups change + #> + Write-Verbose "Sleeping for 60 seconds between workloads" + Start-Sleep 60 + } + + } + + End { + Write-Verbose "Test Run Complete" + } +} +Write-Verbose "Starting Test Run" +start-testrun -Run $Run \ No newline at end of file diff --git a/workloads/curves/512k_100_read_seq_512threads_curve.cfg b/workloads/curves/512k_100_read_seq_512threads_curve.cfg new file mode 100644 index 0000000..72bdea6 --- /dev/null +++ b/workloads/curves/512k_100_read_seq_512threads_curve.cfg @@ -0,0 +1,13 @@ +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 +******************************************************************************************** +* Single disk, 100% random read of 512k blocks +* Adjust curve for HDD testing (1,5,10,15,20,25,30,35,40,45,50) +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=lblkseqread,sd=Disk1,xfersize=524288,rdpct=100 +rd=lblkseqreadrun,wd=lblkseqread,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15,threads=512 + + diff --git a/workloads/curves/512k_100_write_seq_512threads_curve.cfg b/workloads/curves/512k_100_write_seq_512threads_curve.cfg new file mode 100644 index 0000000..b814d07 --- /dev/null +++ b/workloads/curves/512k_100_write_seq_512threads_curve.cfg @@ -0,0 +1,12 @@ +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 +******************************************************************************************** +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=lblkseqwrite,sd=Disk1,xfersize=524288,rdpct=0 +rd=lblkseqwriterun,wd=lblkseqwrite,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/curves/exch_curve.cfg b/workloads/curves/exch_curve.cfg new file mode 100644 index 0000000..f6ef5ca --- /dev/null +++ b/workloads/curves/exch_curve.cfg @@ -0,0 +1,7 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=exchcurve,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=exchcurverun,wd=exchcurve,iorate=curve,curve=(75,76,77,78,79,80,81,82,83,84,85),interval=1,elapsed=60,warmup=15,threads=512 +rd=exchcurverun,wd=exchcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,threads=512 + + + diff --git a/workloads/curves/max_4k_100_read_1thread_curve.cfg b/workloads/curves/max_4k_100_read_1thread_curve.cfg new file mode 100644 index 0000000..27ab089 --- /dev/null +++ b/workloads/curves/max_4k_100_read_1thread_curve.cfg @@ -0,0 +1,5 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=smallrun1,wd=small,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15 + + diff --git a/workloads/curves/max_4k_100_read_512threads_curve.cfg b/workloads/curves/max_4k_100_read_512threads_curve.cfg new file mode 100644 index 0000000..a35ca4c --- /dev/null +++ b/workloads/curves/max_4k_100_read_512threads_curve.cfg @@ -0,0 +1,6 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=max4kcurve,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=max4kcurverun,wd=max4kcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/curves/max_4k_100_write_512threads_curve.cfg b/workloads/curves/max_4k_100_write_512threads_curve.cfg new file mode 100644 index 0000000..29b2abc --- /dev/null +++ b/workloads/curves/max_4k_100_write_512threads_curve.cfg @@ -0,0 +1,6 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=max4kwritecurve,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=max4kwritecurverun,wd=max4kwritecurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/curves/oltp_curve.cfg b/workloads/curves/oltp_curve.cfg new file mode 100644 index 0000000..148a410 --- /dev/null +++ b/workloads/curves/oltp_curve.cfg @@ -0,0 +1,5 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=oltpcurve,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +rd=oltpcurverun,wd=oltpcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15,threads=512 + + diff --git a/workloads/curves/parsing_curve_results.txt b/workloads/curves/parsing_curve_results.txt new file mode 100644 index 0000000..001c640 --- /dev/null +++ b/workloads/curves/parsing_curve_results.txt @@ -0,0 +1,34 @@ +PS C:\Users\administrator.SETO\desktop\output\3\web_curve> gci logfile.html -Recurse | Select-String "starting rd","avg" | sls name -notmat + +logfile.html:45:02:59:18.002 Starting RD=webcurverun; I/O rate: Uncontrolled curve; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:133:03:00:33.018 avg_16-75 2298.15 17.95 8192 94.96 222.809 224.987 181.737 1048.310 65.379 512.0 7.0 4.3 +logfile.html:138:03:00:35.000 Starting RD=webcurverun_(1%); I/O rate: 30; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:226:03:01:50.011 avg_16-75 29.98 0.23 8192 95.39 10.061 10.520 0.580 133.462 11.862 0.3 4.6 1.1 +logfile.html:231:03:01:52.000 Starting RD=webcurverun_(10%); I/O rate: 230; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:319:03:03:07.009 avg_16-75 228.55 1.79 8192 95.12 8.702 9.118 0.592 162.483 8.189 2.0 2.0 0.9 +logfile.html:324:03:03:09.001 Starting RD=webcurverun_(20%); I/O rate: 460; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:412:03:04:24.008 avg_16-75 460.58 3.60 8192 94.81 7.800 8.194 0.597 81.897 4.322 3.6 2.8 1.6 +logfile.html:417:03:04:26.001 Starting RD=webcurverun_(30%); I/O rate: 690; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:505:03:05:41.009 avg_16-75 689.78 5.39 8192 94.84 8.976 9.432 0.600 96.916 5.394 6.2 5.0 2.6 +logfile.html:510:03:05:43.001 Starting RD=webcurverun_(40%); I/O rate: 920; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:598:03:06:58.010 avg_16-75 929.27 7.26 8192 95.04 10.142 10.638 0.627 99.065 6.432 9.4 4.3 2.6 +logfile.html:603:03:06:59.001 Starting RD=webcurverun_(50%); I/O rate: 1200; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:691:03:08:14.011 avg_16-75 1201.53 9.39 8192 95.24 11.928 12.495 0.587 130.592 8.488 14.3 4.6 2.6 +logfile.html:696:03:08:16.001 Starting RD=webcurverun_(60%); I/O rate: 1400; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:784:03:09:31.009 avg_16-75 1401.88 10.95 8192 94.97 13.810 14.507 0.670 174.195 10.741 19.4 5.0 3.2 +logfile.html:789:03:09:33.001 Starting RD=webcurverun_(70%); I/O rate: 1700; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:877:03:10:48.009 avg_16-75 1699.75 13.28 8192 94.95 17.365 18.251 0.704 227.419 15.106 29.5 6.2 4.1 +logfile.html:882:03:10:50.000 Starting RD=webcurverun_(80%); I/O rate: 1900; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:970:03:12:05.009 avg_16-75 1896.65 14.82 8192 95.03 21.307 22.378 0.800 318.443 20.371 40.4 8.3 4.5 +logfile.html:975:03:12:07.001 Starting RD=webcurverun_(85%); I/O rate: 2000; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:1063:03:13:22.009 avg_16-75 2005.65 15.67 8192 95.02 24.182 25.408 0.808 505.708 24.038 48.5 6.6 4.3 +logfile.html:1068:03:13:24.000 Starting RD=webcurverun_(90%); I/O rate: 2100; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:1156:03:14:39.008 avg_16-75 2094.38 16.36 8192 95.08 26.568 27.900 0.848 405.756 26.909 55.7 6.3 4.0 +logfile.html:1161:03:14:41.000 Starting RD=webcurverun_(92%); I/O rate: 2200; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:1249:03:15:56.009 avg_16-75 2203.43 17.21 8192 95.01 30.580 32.132 1.015 444.960 31.558 67.4 7.7 4.8 +logfile.html:1254:03:15:58.001 Starting RD=webcurverun_(94%); I/O rate: 2200; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:1342:03:17:13.009 avg_16-75 2203.47 17.21 8192 94.93 30.603 32.183 1.022 446.774 31.622 67.4 6.6 4.2 +logfile.html:1347:03:17:15.006 Starting RD=webcurverun_(96%); I/O rate: 2300; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:1435:03:18:30.009 avg_16-75 2292.47 17.91 8192 95.03 33.857 35.541 1.682 549.699 34.717 77.6 6.5 4.0 +logfile.html:1440:03:18:32.001 Starting RD=webcurverun_(98%); I/O rate: 2300; elapsed=60 warmup=15; For loops: threads=512 +logfile.html:1528:03:19:47.009 avg_16-75 2300.00 17.97 8192 94.94 35.267 37.033 2.120 549.729 35.663 81.1 6.0 4.0 \ No newline at end of file diff --git a/workloads/curves/pool/512k_100_read_80_random_512threads_curve.cfg b/workloads/curves/pool/512k_100_read_80_random_512threads_curve.cfg new file mode 100644 index 0000000..dca3303 --- /dev/null +++ b/workloads/curves/pool/512k_100_read_80_random_512threads_curve.cfg @@ -0,0 +1,12 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +* +* Single disk, 100% random read of 4k blocks with 80% random +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=max512kcurve,sd=Disk1,xfersize=524288,rdpct=100,seekpct=80 +rd=max512kcurverun,wd=max4kcurve,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/curves/pool/512k_100_read_seq_512threads_curve.cfg b/workloads/curves/pool/512k_100_read_seq_512threads_curve.cfg new file mode 100644 index 0000000..ac091fa --- /dev/null +++ b/workloads/curves/pool/512k_100_read_seq_512threads_curve.cfg @@ -0,0 +1,13 @@ +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 +******************************************************************************************** +* Single disk, 100% random read of 512k blocks +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=lblkseqio,sd=Disk1,xfersize=524288,rdpct=100 +rd=lblkseqiorun,wd=lblkseqio,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/curves/readme.txt b/workloads/curves/readme.txt new file mode 100644 index 0000000..54241cc --- /dev/null +++ b/workloads/curves/readme.txt @@ -0,0 +1,10 @@ +# Vdbench Curve Runs +Identify X_IOPS at Y_Latency +First run idenfies max io +Subsequent runs, run at the % listed in the curve=() param +e.g. curve=(25,50,75) +will tell Vdbench to first establish the maximum iops for the workload +then run the same workload at 25%, 50%, and 75% of that max +* use 512 threads and Vdbench will only consume what it needs +iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 + diff --git a/workloads/curves/sql_curve.cfg b/workloads/curves/sql_curve.cfg new file mode 100644 index 0000000..aaf1580 --- /dev/null +++ b/workloads/curves/sql_curve.cfg @@ -0,0 +1,6 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=sqlcurve,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +rd=sqlrun,wd=sqlcurve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/curves/web_curve.cfg b/workloads/curves/web_curve.cfg new file mode 100644 index 0000000..e8150b6 --- /dev/null +++ b/workloads/curves/web_curve.cfg @@ -0,0 +1,5 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=8191g +wd=webcurve,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +rd=webcurverun,wd=webcurve,iorate=curve,iorate=curve,curve=(1,5,10,15,20,25,30,35,40,45,50,55,60,70,75),interval=1,elapsed=60,threads=512 + + diff --git a/workloads/curves/workload_profiles.txt b/workloads/curves/workload_profiles.txt new file mode 100644 index 0000000..326018e --- /dev/null +++ b/workloads/curves/workload_profiles.txt @@ -0,0 +1,56 @@ +*Vdbench IO Testing +******************************************************************************************** +* NOTES: +* IOPS = 1000/(Seek Latency + Rotational Latency) +******************************************************************************************** +*Host +*TODO: fill out section +******************************************************************************************** +*Identify name of storage target for test +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +*note: Risk of data loss if using vdbench against a drive with data on it +******************************************************************************************** +* +******************************************************************************************** +*Storage +*Insert output from powershell below +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +******************************************************************************************** +*small block random io +*wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*rd=smallrun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 +******************************************************************************************** +*SmallBlockQueueDepthTest +*wd=smallqueue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=smallqueuerun,wd=smallqueue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +******************************************************************************************** +*LargeBlockQueueDepthTest +*wd=largequeue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largequeuerun,wd=largequeue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +******************************************************************************************** +*Exchange +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=exchangerun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*SQL +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +******************************************************************************************** +*OLTP +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*WEB +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** + diff --git a/workloads/max_io/exchange.cfg b/workloads/max_io/exchange.cfg new file mode 100644 index 0000000..598a327 --- /dev/null +++ b/workloads/max_io/exchange.cfg @@ -0,0 +1,6 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +rd=exchrun,wd=exchange,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 + + + diff --git a/workloads/max_io/max_4k_100_read_1thread.cfg b/workloads/max_io/max_4k_100_read_1thread.cfg new file mode 100644 index 0000000..8965ddb --- /dev/null +++ b/workloads/max_io/max_4k_100_read_1thread.cfg @@ -0,0 +1,5 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=smallrun1,wd=small,iorate=max,elapsed=1800,warmup=15,interval=1 + + diff --git a/workloads/max_io/max_4k_100_read_512threads.cfg b/workloads/max_io/max_4k_100_read_512threads.cfg new file mode 100644 index 0000000..777e893 --- /dev/null +++ b/workloads/max_io/max_4k_100_read_512threads.cfg @@ -0,0 +1,5 @@ +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=smallrun1,wd=small,iorate=max,elapsed=1800,warmup=15,interval=1,threads=512 + + diff --git a/workloads/max_io/max_4k_100_read_curve.cfg b/workloads/max_io/max_4k_100_read_curve.cfg new file mode 100644 index 0000000..4fc59ee --- /dev/null +++ b/workloads/max_io/max_4k_100_read_curve.cfg @@ -0,0 +1,16 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +* +* iorate=curve +* The "curve" tells Vdbench to first push the array as hard as possible (irrespective of latency) +* This is to discover the maximum possible number of IOPS for a specific workload. +* Then it will automatically re-run the test at specific percentages of that workload to show how latency changes as the number of IOPS changes. +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=wd1,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=1800,warmup=15 + + + diff --git a/workloads/max_io/max_4k_100_read_curve_512threads.cfg b/workloads/max_io/max_4k_100_read_curve_512threads.cfg new file mode 100644 index 0000000..151acea --- /dev/null +++ b/workloads/max_io/max_4k_100_read_curve_512threads.cfg @@ -0,0 +1,12 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +* +* Single disk, 100% random read of 4k blocks with 80% random +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=max4kcurve,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=max4kcurverun,wd=max4kcurve,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/max_io/oltp.cfg b/workloads/max_io/oltp.cfg new file mode 100644 index 0000000..58a2341 --- /dev/null +++ b/workloads/max_io/oltp.cfg @@ -0,0 +1,37 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512***************************************************************** +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +rd=oltprun,wd=oltp,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 + + diff --git a/workloads/max_io/sql.cfg b/workloads/max_io/sql.cfg new file mode 100644 index 0000000..d09463e --- /dev/null +++ b/workloads/max_io/sql.cfg @@ -0,0 +1,40 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +rd=sqlrun,wd=sql,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 + + + diff --git a/workloads/max_io/web.cfg b/workloads/max_io/web.cfg new file mode 100644 index 0000000..02206c1 --- /dev/null +++ b/workloads/max_io/web.cfg @@ -0,0 +1,39 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=6143g +wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +rd=webrun,wd=web,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 + + diff --git a/workloads/templates/EXCHANGE.cfg b/workloads/templates/EXCHANGE.cfg new file mode 100644 index 0000000..102c1dd --- /dev/null +++ b/workloads/templates/EXCHANGE.cfg @@ -0,0 +1,40 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + + diff --git a/workloads/templates/Max_4k_100_read_1thread.cfg b/workloads/templates/Max_4k_100_read_1thread.cfg new file mode 100644 index 0000000..7e825b8 --- /dev/null +++ b/workloads/templates/Max_4k_100_read_1thread.cfg @@ -0,0 +1,41 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +rd=smallrun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +rd=largerun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +* +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************** +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=smallrun1,wd=small,iorate=100,elapsed=1800,warmup=15,interval=1 + + diff --git a/workloads/templates/Max_4k_100_read_512threads.cfg b/workloads/templates/Max_4k_100_read_512threads.cfg new file mode 100644 index 0000000..5dd997b --- /dev/null +++ b/workloads/templates/Max_4k_100_read_512threads.cfg @@ -0,0 +1,11 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 + +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=wd1,sd=Disk1,xfersize=4096,rdpct=100 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +rd=run1,wd=wd1,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 + + diff --git a/workloads/templates/Max_4k_100_read_curve.cfg b/workloads/templates/Max_4k_100_read_curve.cfg new file mode 100644 index 0000000..4aa8b1d --- /dev/null +++ b/workloads/templates/Max_4k_100_read_curve.cfg @@ -0,0 +1,11 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 + +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=wd1,sd=Disk1,xfersize=4096,rdpct=100 +rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/templates/OLTP.cfg b/workloads/templates/OLTP.cfg new file mode 100644 index 0000000..3644cd0 --- /dev/null +++ b/workloads/templates/OLTP.cfg @@ -0,0 +1,37 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512***************************************************************** +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + diff --git a/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/notes.txt b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/notes.txt new file mode 100644 index 0000000..187c6f1 --- /dev/null +++ b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/notes.txt @@ -0,0 +1,7 @@ +dedupratio=4 +dedupunit=4k +compratio=4 +wd=wd_vsi_read,rdpct=100,xfersize=(4k,25.68,8k,26.31,16k,6.4,32k,7.52,60k,10.52,128k,9.82,252k,7.31,504k,6.19,984k,0.23,1032k,0.02),seekpct=80,range=(0,100),sd=sd* +wd=wd_vsi_write,rdpct=0,xfersize=(4k,59.62,8k,14.81,16k,8.97,32k,6.13,60k,5.35,100k,1.63,212k,1.39,432k,1.95,920k,0.14,1032k,0.01),seekpct=80,range=(50,100),sd=sd* +rd=rd_vsi_ramp,wd=wd_vsi*,forrdpct=57.40,curve=(20,35,50,65,80,90,92,94,96,98,99),iorate=curve,interval=1,elapsed=300,maxdata=999t,forthreads=16 + diff --git a/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/oracle_ramp.vdb b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/oracle_ramp.vdb new file mode 100644 index 0000000..111b1c3 --- /dev/null +++ b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/oracle_ramp.vdb @@ -0,0 +1,52 @@ +dedupratio=3 +dedupunit=4k +compratio=3 + +hd=default,user=root,shell=ssh,jvms=4 +hd=vdb-001,system=vdb-001 +hd=vdb-002,system=vdb-002 +hd=vdb-003,system=vdb-003 +hd=vdb-004,system=vdb-004 +hd=vdb-005,system=vdb-005 +hd=vdb-006,system=vdb-006 +hd=vdb-007,system=vdb-007 +hd=vdb-008,system=vdb-008 + +sd=default,openflags=directio,align=4k,threads=8 +sd=sdb1,host=vdb-001,lun=/dev/sdb +sd=sdb2,host=vdb-002,lun=/dev/sdb +sd=sdb3,host=vdb-003,lun=/dev/sdb +sd=sdb4,host=vdb-004,lun=/dev/sdb +sd=sdb5,host=vdb-005,lun=/dev/sdb +sd=sdb6,host=vdb-006,lun=/dev/sdb +sd=sdb7,host=vdb-007,lun=/dev/sdb +sd=sdb8,host=vdb-008,lun=/dev/sdb +sd=sdc1,host=vdb-001,lun=/dev/sdc +sd=sdc2,host=vdb-002,lun=/dev/sdc +sd=sdc3,host=vdb-003,lun=/dev/sdc +sd=sdc4,host=vdb-004,lun=/dev/sdc +sd=sdc5,host=vdb-005,lun=/dev/sdc +sd=sdc6,host=vdb-006,lun=/dev/sdc +sd=sdc7,host=vdb-007,lun=/dev/sdc +sd=sdc8,host=vdb-008,lun=/dev/sdc +sd=sdd1,host=vdb-001,lun=/dev/sdd +sd=sdd2,host=vdb-002,lun=/dev/sdd +sd=sdd3,host=vdb-003,lun=/dev/sdd +sd=sdd4,host=vdb-004,lun=/dev/sdd +sd=sdd5,host=vdb-005,lun=/dev/sdd +sd=sdd6,host=vdb-006,lun=/dev/sdd +sd=sdd7,host=vdb-007,lun=/dev/sdd +sd=sdd8,host=vdb-008,lun=/dev/sdd +sd=sde1,host=vdb-001,lun=/dev/sde +sd=sde2,host=vdb-002,lun=/dev/sde +sd=sde3,host=vdb-003,lun=/dev/sde +sd=sde4,host=vdb-004,lun=/dev/sde +sd=sde5,host=vdb-005,lun=/dev/sde +sd=sde6,host=vdb-006,lun=/dev/sde +sd=sde7,host=vdb-007,lun=/dev/sde +sd=sde8,host=vdb-008,lun=/dev/sde + +wd=wd_oracle_read,rdpct=100,xfersize=(4k,4.5,8k,41.05,16k,29.84,32k,1.23,56k,1.39,128k,15.19,252k,5.23,420k,0.18,1004k,1.39),seekpct=80,range=(0,100),sd=sd* +wd=wd_oracle_write,rdpct=0,xfersize=(4k,22.1,8k,37.3,16k,19.12,32k,5.35,56k,4.68,120k,7.65,236k,3.34,408k,0.15,944k,0.31),seekpct=80,range=(50,100),sd=sd* + +rd=rd_oracle_ramp,wd=wd_oracle*,forrdpct=83.14,curve=(20,35,50,65,80,90,92,94,96,98,99),iorate=curve,interval=1,elapsed=300,maxdata=999t,forthreads=16 diff --git a/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/sql_ramp.vdb b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/sql_ramp.vdb new file mode 100644 index 0000000..67d3bc3 --- /dev/null +++ b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/sql_ramp.vdb @@ -0,0 +1,52 @@ +dedupratio=2 +dedupunit=4k +compratio=2 + +hd=default,user=root,shell=ssh,jvms=4 +hd=vdb-001,system=vdb-001 +hd=vdb-002,system=vdb-002 +hd=vdb-003,system=vdb-003 +hd=vdb-004,system=vdb-004 +hd=vdb-005,system=vdb-005 +hd=vdb-006,system=vdb-006 +hd=vdb-007,system=vdb-007 +hd=vdb-008,system=vdb-008 + +sd=default,openflags=directio,align=4k,threads=8 +sd=sdb1,host=vdb-001,lun=/dev/sdb +sd=sdb2,host=vdb-002,lun=/dev/sdb +sd=sdb3,host=vdb-003,lun=/dev/sdb +sd=sdb4,host=vdb-004,lun=/dev/sdb +sd=sdb5,host=vdb-005,lun=/dev/sdb +sd=sdb6,host=vdb-006,lun=/dev/sdb +sd=sdb7,host=vdb-007,lun=/dev/sdb +sd=sdb8,host=vdb-008,lun=/dev/sdb +sd=sdc1,host=vdb-001,lun=/dev/sdc +sd=sdc2,host=vdb-002,lun=/dev/sdc +sd=sdc3,host=vdb-003,lun=/dev/sdc +sd=sdc4,host=vdb-004,lun=/dev/sdc +sd=sdc5,host=vdb-005,lun=/dev/sdc +sd=sdc6,host=vdb-006,lun=/dev/sdc +sd=sdc7,host=vdb-007,lun=/dev/sdc +sd=sdc8,host=vdb-008,lun=/dev/sdc +sd=sdd1,host=vdb-001,lun=/dev/sdd +sd=sdd2,host=vdb-002,lun=/dev/sdd +sd=sdd3,host=vdb-003,lun=/dev/sdd +sd=sdd4,host=vdb-004,lun=/dev/sdd +sd=sdd5,host=vdb-005,lun=/dev/sdd +sd=sdd6,host=vdb-006,lun=/dev/sdd +sd=sdd7,host=vdb-007,lun=/dev/sdd +sd=sdd8,host=vdb-008,lun=/dev/sdd +sd=sde1,host=vdb-001,lun=/dev/sde +sd=sde2,host=vdb-002,lun=/dev/sde +sd=sde3,host=vdb-003,lun=/dev/sde +sd=sde4,host=vdb-004,lun=/dev/sde +sd=sde5,host=vdb-005,lun=/dev/sde +sd=sde6,host=vdb-006,lun=/dev/sde +sd=sde7,host=vdb-007,lun=/dev/sde +sd=sde8,host=vdb-008,lun=/dev/sde + +wd=wd_sql_read,rdpct=100,xfersize=(4k,2.39,8k,53.57,16k,4.84,28k,2.64,64k,28.75,120k,1.79,220k,1.41,492k,4.24,524k,0.37),seekpct=80,range=(0,100),sd=sd* +wd=wd_sql_write,rdpct=0,xfersize=(4k,27.85,8k,35.24,16k,4.82,28k,2.58,64k,26.35,116k,0.6,244k,1.28,488k,0.38,536k,0.89,1032k,0.01),seekpct=80,range=(50,100),sd=sd* + +rd=rd_sql_ramp,wd=wd_sql*,forrdpct=68.42,curve=(20,35,50,65,80,90,92,94,96,98,99),iorate=curve,interval=1,elapsed=300,maxdata=999t,forthreads=16 diff --git a/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/vdi_ramp.vdb b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/vdi_ramp.vdb new file mode 100644 index 0000000..7867350 --- /dev/null +++ b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/vdi_ramp.vdb @@ -0,0 +1,52 @@ +dedupratio=7 +dedupunit=4k +compratio=8 + +hd=default,user=root,shell=ssh,jvms=4 +hd=vdb-001,system=vdb-001 +hd=vdb-002,system=vdb-002 +hd=vdb-003,system=vdb-003 +hd=vdb-004,system=vdb-004 +hd=vdb-005,system=vdb-005 +hd=vdb-006,system=vdb-006 +hd=vdb-007,system=vdb-007 +hd=vdb-008,system=vdb-008 + +sd=default,openflags=directio,align=4k,threads=8 +sd=sdb1,host=vdb-001,lun=/dev/sdb +sd=sdb2,host=vdb-002,lun=/dev/sdb +sd=sdb3,host=vdb-003,lun=/dev/sdb +sd=sdb4,host=vdb-004,lun=/dev/sdb +sd=sdb5,host=vdb-005,lun=/dev/sdb +sd=sdb6,host=vdb-006,lun=/dev/sdb +sd=sdb7,host=vdb-007,lun=/dev/sdb +sd=sdb8,host=vdb-008,lun=/dev/sdb +sd=sdc1,host=vdb-001,lun=/dev/sdc +sd=sdc2,host=vdb-002,lun=/dev/sdc +sd=sdc3,host=vdb-003,lun=/dev/sdc +sd=sdc4,host=vdb-004,lun=/dev/sdc +sd=sdc5,host=vdb-005,lun=/dev/sdc +sd=sdc6,host=vdb-006,lun=/dev/sdc +sd=sdc7,host=vdb-007,lun=/dev/sdc +sd=sdc8,host=vdb-008,lun=/dev/sdc +sd=sdd1,host=vdb-001,lun=/dev/sdd +sd=sdd2,host=vdb-002,lun=/dev/sdd +sd=sdd3,host=vdb-003,lun=/dev/sdd +sd=sdd4,host=vdb-004,lun=/dev/sdd +sd=sdd5,host=vdb-005,lun=/dev/sdd +sd=sdd6,host=vdb-006,lun=/dev/sdd +sd=sdd7,host=vdb-007,lun=/dev/sdd +sd=sdd8,host=vdb-008,lun=/dev/sdd +sd=sde1,host=vdb-001,lun=/dev/sde +sd=sde2,host=vdb-002,lun=/dev/sde +sd=sde3,host=vdb-003,lun=/dev/sde +sd=sde4,host=vdb-004,lun=/dev/sde +sd=sde5,host=vdb-005,lun=/dev/sde +sd=sde6,host=vdb-006,lun=/dev/sde +sd=sde7,host=vdb-007,lun=/dev/sde +sd=sde8,host=vdb-008,lun=/dev/sde + +wd=wd_vdi_read,rdpct=100,xfersize=(4k,39.35,8k,9.37,16k,16.47,32k,10.37,64k,12.86,116k,5.45,220k,3.33,472k,1.96,984k,0.84,1032k,0.01),seekpct=80,range=(0,100),sd=sd* +wd=wd_vdi_write,rdpct=0,xfersize=(4k,61.11,8k,13.05,16k,8.41,28k,3.46,60k,9.31,104k,1.05,240k,2.91,372k,0.33,876k,0.33,2028k,0.04),seekpct=80,range=(50,100),sd=sd* + +rd=rd_vdi_ramp,wd=wd_vdi*,forrdpct=59.44,curve=(20,35,50,65,80,90,92,94,96,98,99),iorate=curve,interval=1,elapsed=300,maxdata=999t,forthreads=16 diff --git a/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/vsi_ramp.vdb b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/vsi_ramp.vdb new file mode 100644 index 0000000..73c989b --- /dev/null +++ b/workloads/templates/PureStorage_20150824 - Modeling workload IO size mixes with Oracle vdbench/vsi_ramp.vdb @@ -0,0 +1,52 @@ +dedupratio=4 +dedupunit=4k +compratio=4 + +hd=default,user=root,shell=ssh,jvms=4 +hd=vdb-001,system=vdb-001 +hd=vdb-002,system=vdb-002 +hd=vdb-003,system=vdb-003 +hd=vdb-004,system=vdb-004 +hd=vdb-005,system=vdb-005 +hd=vdb-006,system=vdb-006 +hd=vdb-007,system=vdb-007 +hd=vdb-008,system=vdb-008 + +sd=default,openflags=directio,align=4k,threads=8 +sd=sdb1,host=vdb-001,lun=/dev/sdb +sd=sdb2,host=vdb-002,lun=/dev/sdb +sd=sdb3,host=vdb-003,lun=/dev/sdb +sd=sdb4,host=vdb-004,lun=/dev/sdb +sd=sdb5,host=vdb-005,lun=/dev/sdb +sd=sdb6,host=vdb-006,lun=/dev/sdb +sd=sdb7,host=vdb-007,lun=/dev/sdb +sd=sdb8,host=vdb-008,lun=/dev/sdb +sd=sdc1,host=vdb-001,lun=/dev/sdc +sd=sdc2,host=vdb-002,lun=/dev/sdc +sd=sdc3,host=vdb-003,lun=/dev/sdc +sd=sdc4,host=vdb-004,lun=/dev/sdc +sd=sdc5,host=vdb-005,lun=/dev/sdc +sd=sdc6,host=vdb-006,lun=/dev/sdc +sd=sdc7,host=vdb-007,lun=/dev/sdc +sd=sdc8,host=vdb-008,lun=/dev/sdc +sd=sdd1,host=vdb-001,lun=/dev/sdd +sd=sdd2,host=vdb-002,lun=/dev/sdd +sd=sdd3,host=vdb-003,lun=/dev/sdd +sd=sdd4,host=vdb-004,lun=/dev/sdd +sd=sdd5,host=vdb-005,lun=/dev/sdd +sd=sdd6,host=vdb-006,lun=/dev/sdd +sd=sdd7,host=vdb-007,lun=/dev/sdd +sd=sdd8,host=vdb-008,lun=/dev/sdd +sd=sde1,host=vdb-001,lun=/dev/sde +sd=sde2,host=vdb-002,lun=/dev/sde +sd=sde3,host=vdb-003,lun=/dev/sde +sd=sde4,host=vdb-004,lun=/dev/sde +sd=sde5,host=vdb-005,lun=/dev/sde +sd=sde6,host=vdb-006,lun=/dev/sde +sd=sde7,host=vdb-007,lun=/dev/sde +sd=sde8,host=vdb-008,lun=/dev/sde + +wd=wd_vsi_read,rdpct=100,xfersize=(4k,25.68,8k,26.31,16k,6.4,32k,7.52,60k,10.52,128k,9.82,252k,7.31,504k,6.19,984k,0.23,1032k,0.02),seekpct=80,range=(0,100),sd=sd* +wd=wd_vsi_write,rdpct=0,xfersize=(4k,59.62,8k,14.81,16k,8.97,32k,6.13,60k,5.35,100k,1.63,212k,1.39,432k,1.95,920k,0.14,1032k,0.01),seekpct=80,range=(50,100),sd=sd* + +rd=rd_vsi_ramp,wd=wd_vsi*,forrdpct=57.40,curve=(20,35,50,65,80,90,92,94,96,98,99),iorate=curve,interval=1,elapsed=300,maxdata=999t,forthreads=16 diff --git a/workloads/templates/SQL.cfg b/workloads/templates/SQL.cfg new file mode 100644 index 0000000..b20922d --- /dev/null +++ b/workloads/templates/SQL.cfg @@ -0,0 +1,40 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + + diff --git a/workloads/templates/WEB.cfg b/workloads/templates/WEB.cfg new file mode 100644 index 0000000..ed8d971 --- /dev/null +++ b/workloads/templates/WEB.cfg @@ -0,0 +1,39 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + diff --git a/workloads/templates/save/EXCHANGE.cfg b/workloads/templates/save/EXCHANGE.cfg new file mode 100644 index 0000000..102c1dd --- /dev/null +++ b/workloads/templates/save/EXCHANGE.cfg @@ -0,0 +1,40 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + + diff --git a/workloads/templates/save/Max_4k_100_read_1thread.cfg b/workloads/templates/save/Max_4k_100_read_1thread.cfg new file mode 100644 index 0000000..254273e --- /dev/null +++ b/workloads/templates/save/Max_4k_100_read_1thread.cfg @@ -0,0 +1,41 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +rd=smallrun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +rd=largerun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +* +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************** +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +rd=smallrun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 + + diff --git a/workloads/templates/save/Max_4k_100_read_512threads.cfg b/workloads/templates/save/Max_4k_100_read_512threads.cfg new file mode 100644 index 0000000..5dd997b --- /dev/null +++ b/workloads/templates/save/Max_4k_100_read_512threads.cfg @@ -0,0 +1,11 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 + +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=wd1,sd=Disk1,xfersize=4096,rdpct=100 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +rd=run1,wd=wd1,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 + + diff --git a/workloads/templates/save/Max_4k_100_read_curve.cfg b/workloads/templates/save/Max_4k_100_read_curve.cfg new file mode 100644 index 0000000..4aa8b1d --- /dev/null +++ b/workloads/templates/save/Max_4k_100_read_curve.cfg @@ -0,0 +1,11 @@ +*Single disk, 100% random read of 8k records at i/o rate of 100 for 10 seconds +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*wd=wd1,sd=Disk1,xfersize=8192,rdpct=55 +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 + +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=wd1,sd=Disk1,xfersize=4096,rdpct=100 +rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 + + + diff --git a/workloads/templates/save/OLTP.cfg b/workloads/templates/save/OLTP.cfg new file mode 100644 index 0000000..3644cd0 --- /dev/null +++ b/workloads/templates/save/OLTP.cfg @@ -0,0 +1,37 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512***************************************************************** +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + diff --git a/workloads/templates/save/SQL.cfg b/workloads/templates/save/SQL.cfg new file mode 100644 index 0000000..b20922d --- /dev/null +++ b/workloads/templates/save/SQL.cfg @@ -0,0 +1,40 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + + diff --git a/workloads/templates/save/WEB.cfg b/workloads/templates/save/WEB.cfg new file mode 100644 index 0000000..ed8d971 --- /dev/null +++ b/workloads/templates/save/WEB.cfg @@ -0,0 +1,39 @@ +*Vdbench +*Host +*TODO: fill out section +*Storage +*Identify name of storage target for test +*note: Risk of data loss if using vdbench against a drive with data on it +*On Windows: +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +* +*Workload +*small block random io +*wd=exchange,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*large block sequential io +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*Synthesized workloads +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=70,seekpct=100 +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +* +*Run +*rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1 +*rd=myrd,wd=wd1,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +* +*rd=exchrun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +* +* +sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 + + diff --git a/workloads/templates/save/workload_profiles.cfg b/workloads/templates/save/workload_profiles.cfg new file mode 100644 index 0000000..ed43c5a --- /dev/null +++ b/workloads/templates/save/workload_profiles.cfg @@ -0,0 +1,53 @@ +*Vdbench IO Testing +******************************************************************************************** +*Host +*TODO: fill out section +******************************************************************************************** +*Identify name of storage target for test +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +*note: Risk of data loss if using vdbench against a drive with data on it +******************************************************************************************** +* +******************************************************************************************** +*Storage +*Insert output from powershell below +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +******************************************************************************************** +*small block random io +*wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*rd=smallrun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 +******************************************************************************************** +*SmallBlockQueueDepthTest +*wd=smallqueue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=smallqueuerun,wd=smallqueue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +******************************************************************************************** +*LargeBlockQueueDepthTest +*wd=largequeue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largequeuerun,wd=largequeue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +******************************************************************************************** +*Exchange +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=exchangerun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*SQL +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +******************************************************************************************** +*OLTP +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*WEB +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** + diff --git a/workloads/templates/workload_profiles.cfg b/workloads/templates/workload_profiles.cfg new file mode 100644 index 0000000..ed43c5a --- /dev/null +++ b/workloads/templates/workload_profiles.cfg @@ -0,0 +1,53 @@ +*Vdbench IO Testing +******************************************************************************************** +*Host +*TODO: fill out section +******************************************************************************************** +*Identify name of storage target for test +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +*note: Risk of data loss if using vdbench against a drive with data on it +******************************************************************************************** +* +******************************************************************************************** +*Storage +*Insert output from powershell below +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +******************************************************************************************** +*small block random io +*wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*rd=smallrun1,wd=small,iorate=100,elapsed=10,warmup=15,interval=1 +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=100,elapsed=10,warmup=15,interval=1,threads=512 +******************************************************************************************** +*SmallBlockQueueDepthTest +*wd=smallqueue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=smallqueuerun,wd=smallqueue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +******************************************************************************************** +*LargeBlockQueueDepthTest +*wd=largequeue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largequeuerun,wd=largequeue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=60,warmup=15,threads=512 +******************************************************************************************** +*Exchange +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=exchangerun,wd=exchange,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*SQL +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +*rd=sqlrun,wd=sql,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512* +******************************************************************************************** +*OLTP +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=oltprun,wd=oltp,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*WEB +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*rd=webrun,wd=web,iorate=100,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** + diff --git a/workloads/workload_profiles b/workloads/workload_profiles new file mode 100644 index 0000000..b8da15c --- /dev/null +++ b/workloads/workload_profiles @@ -0,0 +1,54 @@ +*Vdbench IO Testing +******************************************************************************************** +*Host +*TODO: fill out section +******************************************************************************************** +*Identify name of storage target for test +*$DiskDrives = Get-WmiObject WIn32_DiskDrive | Select Index, DeviceID, Size | Sort Index +*foreach ($Disk in $DiskDrives) {"sd=Disk$($Disk.Index),lun=$($Disk.DeviceID),openflags=directio,size=$([Math]::Floor($Disk.Size / 1GB))g"} +*output: +*sd=Disk0,lun=\\.\PHYSICALDRIVE0,openflags=directio,size=99g <-- Do not use system drive for testing +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g <-- Use this drive +*note: Risk of data loss if using vdbench against a drive with data on it +******************************************************************************************** +* +******************************************************************************************** +*Storage +*Insert output from powershell below +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=2136g +*sd=Disk1,lun=\\.\PHYSICALDRIVE1,openflags=directio,size=4270g +******************************************************************************************** +*small block random io +*wd=small,sd=Disk1,xfersize=4096,rdpct=100,seekpct=80 +*rd=smallrun1,wd=small,iorate=max,elapsed=1800,warmup=15,interval=1 +******************************************************************************************** +*large block sequential io +*TODO: Add random (seekpct) for large block io +*wd=large,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largerun,wd=large,iorate=max,elapsed=1800,warmup=15,interval=1,threads=512 +******************************************************************************************** +*SmallBlockQueueDepthTest +*wd=smallqueue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=smallqueuerun,wd=smallqueue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=1800,warmup=15,threads=512 +******************************************************************************************** +*LargeBlockQueueDepthTest +*wd=largequeue,sd=Disk1,xfersize=52488,rdpct=100 +*rd=largequeuerun,wd=largequeue,iorate=curve,curve=(1,10,20,30,40,50,60,70,80,85,90,92,94,96,98),interval=1,elapsed=1800,warmup=15,threads=512 +******************************************************************************************** +*Exchange +*wd=exchange,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=exchangerun,wd=exchange,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*SQL +*wd=sql,sd=Disk1,xfersize=65536,rdpct=66,seekpct=100 +*rd=sqlrun,wd=sql,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512* +******************************************************************************************** +*OLTP +*wd=oltp,sd=Disk1,xfersize=8192,rdpct=55,seekpct=80 +*rd=oltprun,wd=oltp,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +*WEB +*wd=web,sd=Disk1,xfersize=8192,rdpct=95,seekpct=75 +*rd=webrun,wd=web,iorate=max,elapsed=1800,interval=1,warmup=15,threads=512 +******************************************************************************************** +