SlideShare uma empresa Scribd logo
1 de 17
Measuring Storage
Performance
Course practice
Presented by Valerian Ceaus
1. Using SQLIO to StressTest an I/O Subsystem
 Use SQLIO.exe to determine the Input/Output capacity of a disk subsystem
(tool provided by Microsoft).
 The purpose of SQLIO is not to simulate I/O patterns of SQL Server but rather
to test a variety of I/O types and sizes and determine the capacity of an I/O
subsystem.
 When testing the I/O system you should consider the following:
• Test a variety of I/O types and sizes
• Make sure the total size of the test files used in each test is significantly larger
than the amount of cache on the SAN (Short Stroke Efect).
• Short test runs (5-10 minutes) are okay for initial testing, however if potential
problem areas are discovered longer tests should be run.
• Allow some time in between each I/O type you test to allow the I/O system to
return to an idle state (1 min. acceptabile).
2. Commonly used SQLIO.exe options
Option Description
-o Specify the number of outstanding I/O requests. Increasing the queue depth may result in a
higher total throughput. However, increasing this number too high may result in problems.
Common values for this are 8, 32, and 64. In RAID, SAN or Storage Spaces setups, a single disk can be made up of
multiple physical disks. You can start with twice the number of physical disks used by the volume where the file sits. Using a higher
number will increase your latency, but can get you more IOPs and throughput.
-LS Capture disk latency information. Capturing latency data is recommended when testing a
system.
-k Specify either R or W (read or write).
-s Duration of test (seconds). You can use 10 seconds for a quick test. For any serious work, use
at least 60 seconds.
-b Size of the IO request in bytes. 8KB is the typical IO for OLTP workloads. 512KB is common for
Reporting, Data Warehousing.
-f Type of IO to issue. Either ‘random’ or ‘sequential’. Random is common for OLTP workloads.
Sequential is common for Reporting, Data Warehousing..
-F Name of the file which will contain the test files to run SQLIO against.
-t Threads. For large IOs, just a couple is enough. Sometimes just one.
For small IOs, you could need as many as the number of CPU cores.
3. Interpretingthe resultsof SQLIO
 When running the test you can redirect the output of SQLIO to a text file to capture the
performance information.
 If more detailed information is needed Windows Performance Monitor and/or SAN
specific monitoring tools can be used.
4. MonitoringI/O Performance– usingWindows
ResourceMonitor
5.MonitoringI/OPerformance –usingPerformanceMonitor(1)
Performance Monitor
Counter
Description
Disk Transfers/sec IOPS. Number of I/O’s being issued against a particular disk
Practical limit of 100-140/sec per spindle
Per Read/Write stats: Disk Reads/sec & Disk Writes/sec counters.
Avg. Disk Queue Length QD. Average queue depth. The general rule of thumb:
• Single disk (spindle) no more than 2 (QD more will cause additional latency.
Anyway, if latency added is less than 10-15ms then higher QD is acceptable.
Theoretically a SATA disk can queue up to 32 outstanding IOs (with NCQ) and
SAS disk can queue up to 255 outstanding IOs. With greater QD possible
higher IOPS/throughput
• RAID no more than # spindles * 2. Can be higher as long as latency do not
exceeds 10-15ms thresholds. Theoretically maximum can be # spindles in a
RAID set * 255(sas)/32(sata) or max queue depth for the RAID controller if
that is less than the disk’s queue sum.
Avg. Disk sec/Transfer Average latency. On well-tuned OLTP systems deployed on high performance
SAN’s ideal values would be in the range of < 2 ms for Log and 4-10 ms for Data.
DSS (decision support system) type workloads may result in higher latencies (30+
ms).
Disk Bytes/sec Throughput. Measure of the total throughput for a particular disk or LUN.
6.MonitoringI/OPerformance –usingPerformanceMonitor(2)
7. Using SQLIO.exe utility (preparing)
 Download the Tool
• You can get it from http://www.microsoft.com/en-us/download/details.aspx?id=20163
 Prepare a test file
• Ideally, you should create a file as big as possible, so that you can exercise the
entire disk. Creating a small file causes the head movement to be restricted to a
portion of the disk – as a result SQLIO will show an unrealistically high random IO
performance (short stroke effect).
• To create a large file for your test, the easiest way is using the FSUTIL.EXE tool,
which is included with all versions of Windows (starting Windows Vista). Use
FSUTIL.exe from PS:
FSUTIL.EXE file createnew X:testfile.dat (1TB)
FSUTIL.EXE file setvaliddata X:testfile.dat (1TB)
• Alternatives: (1) Dummy File Creator (2) Disk Tools
http://www.7tutorials.com/3-ways-create-random-dummy-files-windows-given-size
8. Using SQLIO.exe utility (runthe tool)
 Run the Tool
• Make sure that nothing else is competing with your testing.
• WARNING: You could be generating a whole lot of disk IO, network traffic and/or
CPU load when you run SQLIO. If you’re in a shared environment, you might want to
talk to your administrator and ask permission.
• Read(100%), Random(100%), Request Size(8KB), # of Outstanding(16)
SQLIO.EXE -s15 -kR -frandom -b8 -t8 -o16 -LS -BN X:TestFile.DAT
• Write(100%), Sequential(100%), Request Size(512KB), # of Outstanding(32)
SQLIO.EXE -s15 -kW -fsequential –b512 -t8 -o32 -LS -BN X:TestFile.DAT
• Recommendations:
- OLTP workloads 8KB random IOs, 8 threads, 16 outstanding (-frandom -b8 -t8 -o16)
- OLAP workloads 512KB sequential IOs, 2 threads, 16 outstanding (-fsequential -b512 -t2 -o16)
- Virtual Machines workloads: 8KB, Random (80%), Read (80%), 32 outstanding.(I/O blender)
9. Typical accesspatternsof various applications.
10. Otherstorage performance tools
 IOMeter – The open-source, cross-platform tool. If you do a lot of SAN work,
you might prefer a cross-platform tool that you can use across all of the
clients that connect to the SAN. IOMeter works on Windows and Linux. Intel
developed tool. (As compared to SQLIO support mixed R/W workload testing)
 SQLIOStress.exe - differs from SQLIO in that it is designed to simulate the I/O
patterns of SQL Server.
 Crystal Disk Mark - The easy, free one-button solution.
 HDTune Pro …
11. SATANative Command Queuing(NCQ)
 Native Command Queuing (NCQ) is an extension of the Serial ATA protocol
allowing hard disk drives to internally optimize the order in which received
read and write commands are executed.
 Native Command Queuing (NCQ) is a feature supported by Advanced Host
Controller Interface (AHCI).
 NCQ truly optimizes performance when disk accesses are random in nature.
(elevator seeking).
 Max Queue Depth:
• SATA (NCQ): 32
• SAS (TCQ): 255
TCQ - Tagged Command Queueing
12. Advanced Host ControllerInterface (AHCI)
13.IOPS/Throughput/Outstanding IO/Latencydependencies
14.Avg. I/OLatencyraisingexplanation
15. Determine the saturation point of an I/Osubsystem
 Start with a small number of outstanding I/Os (-o) and gradually increase this
until the path is saturated. Saturation occurs when latency increases and
throughput stays the same.
AdditionalInfo
SQLIO, PowerShell and storage performance: measuring IOPs, throughput and latency for both local disks
http://blogs.technet.com/b/josebda/archive/2013/03/28/sqlio-powershell-and-storage-performance-measuring-iops-
throughput-and-latency-for-both-local-disks-and-smb-file-shares.aspx
Benchmarking SQL Server IO with SQLIO
http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio
SQLIO Tutorial: How to Test Disk Performance
http://www.brentozar.com/archive/2008/09/finding-your-san-bottlenecks-with-sqlio
3 Ways to Create Random Dummy Files in Windows, with a Given Size
http://www.7tutorials.com/3-ways-create-random-dummy-files-windows-given-size
habr - Развитие накопителей
http://habrahabr.ru/company/etegro/blog/217115
SAS vs SATA — выбор дисковой подсистемы
http://www.etegro.ru/articles/sas-sata
IO Queue Depth Strategy
http://sqlblog.com/blogs/joe_chang/archive/2010/10/18/io-queue-depth-strategy.aspx
WHITE PAPER FUJITSU PRIMERGY SERVER BASICS OF DISK I/O PERFORMANCE
http://globalsp.ts.fujitsu.com/dmsp/Publications/public/wp-basics-of-disk-io-performance-ww-en.pdf
SQL Server Best Practices Article
http://technet.microsoft.com/en-us/library/cc966412.aspx
Use Resource Monitor to monitor storage performance
http://www.techrepublic.com/blog/the-enterprise-cloud/use-resource-monitor-to-monitor-storage-performance/
wikipedia - Native Command Queuing
http://en.wikipedia.org/wiki/Native_Command_Queuing
Installing Windows XP With F6 AHCI/RAID Drivers From USB Only
http://www.prime-expert.com/articles/b02/installing-windows-xp-with-f6-ahci-raid-drivers-from-usb-only.php
SQL Server Best Practices Article
http://technet.microsoft.com/en-us/library/cc966412.aspx

Mais conteúdo relacionado

Mais procurados

Migration to Redshift from SQL Server
Migration to Redshift from SQL ServerMigration to Redshift from SQL Server
Migration to Redshift from SQL Server
joeharris76
 
January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...
January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...
January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...
Yahoo Developer Network
 

Mais procurados (20)

AWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
AWS June 2016 Webinar Series - Amazon Redshift or Big Data AnalyticsAWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
AWS June 2016 Webinar Series - Amazon Redshift or Big Data Analytics
 
Best Practices for NoSQL Workloads on Amazon EC2 and Amazon EBS - February 20...
Best Practices for NoSQL Workloads on Amazon EC2 and Amazon EBS - February 20...Best Practices for NoSQL Workloads on Amazon EC2 and Amazon EBS - February 20...
Best Practices for NoSQL Workloads on Amazon EC2 and Amazon EBS - February 20...
 
Amazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and OptimizationAmazon Redshift: Performance Tuning and Optimization
Amazon Redshift: Performance Tuning and Optimization
 
Migration to Redshift from SQL Server
Migration to Redshift from SQL ServerMigration to Redshift from SQL Server
Migration to Redshift from SQL Server
 
SQLServer Database Structures
SQLServer Database Structures SQLServer Database Structures
SQLServer Database Structures
 
January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...
January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...
January 2015 HUG: Using HBase Co-Processors to Build a Distributed, Transacti...
 
Introduction to Amazon Relational Database Service
Introduction to Amazon Relational Database ServiceIntroduction to Amazon Relational Database Service
Introduction to Amazon Relational Database Service
 
RDS Postgres and Aurora Postgres | AWS Public Sector Summit 2017
RDS Postgres and Aurora Postgres | AWS Public Sector Summit 2017RDS Postgres and Aurora Postgres | AWS Public Sector Summit 2017
RDS Postgres and Aurora Postgres | AWS Public Sector Summit 2017
 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
 
Amazon RDS Deep Dive
Amazon RDS Deep DiveAmazon RDS Deep Dive
Amazon RDS Deep Dive
 
SQL Server to Redshift Data Load Using SSIS
SQL Server to Redshift Data Load Using SSISSQL Server to Redshift Data Load Using SSIS
SQL Server to Redshift Data Load Using SSIS
 
Experience sql server on l inux and docker
Experience sql server on l inux and dockerExperience sql server on l inux and docker
Experience sql server on l inux and docker
 
Running Cassandra on Amazon EC2
Running Cassandra on Amazon EC2Running Cassandra on Amazon EC2
Running Cassandra on Amazon EC2
 
Data Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftData Warehousing with Amazon Redshift
Data Warehousing with Amazon Redshift
 
Deep Dive on Amazon Redshift
Deep Dive on Amazon RedshiftDeep Dive on Amazon Redshift
Deep Dive on Amazon Redshift
 
Building your data warehouse with Redshift
Building your data warehouse with RedshiftBuilding your data warehouse with Redshift
Building your data warehouse with Redshift
 
Dell emc back up solution in azure cloud
Dell emc back up solution in azure cloud Dell emc back up solution in azure cloud
Dell emc back up solution in azure cloud
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Running 400-node Cassandra + Spark Clusters in Azure (Anubhav Kale, Microsoft...
Running 400-node Cassandra + Spark Clusters in Azure (Anubhav Kale, Microsoft...Running 400-node Cassandra + Spark Clusters in Azure (Anubhav Kale, Microsoft...
Running 400-node Cassandra + Spark Clusters in Azure (Anubhav Kale, Microsoft...
 
Deep Dive on Amazon Redshift
Deep Dive on Amazon RedshiftDeep Dive on Amazon Redshift
Deep Dive on Amazon Redshift
 

Semelhante a SQLIO - measuring storage performance

Resume_CQ_Edward
Resume_CQ_EdwardResume_CQ_Edward
Resume_CQ_Edward
caiqi wang
 
Strata + Hadoop 2015 Slides
Strata + Hadoop 2015 SlidesStrata + Hadoop 2015 Slides
Strata + Hadoop 2015 Slides
Jun Liu
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
Baruch Osoveskiy
 

Semelhante a SQLIO - measuring storage performance (20)

How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)
 
IO Dubi Lebel
IO Dubi LebelIO Dubi Lebel
IO Dubi Lebel
 
Resume_CQ_Edward
Resume_CQ_EdwardResume_CQ_Edward
Resume_CQ_Edward
 
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
Hands-on Lab: How to Unleash Your Storage Performance by Using NVM Express™ B...
 
HeroLympics Eng V03 Henk Vd Valk
HeroLympics  Eng V03 Henk Vd ValkHeroLympics  Eng V03 Henk Vd Valk
HeroLympics Eng V03 Henk Vd Valk
 
Ceph Day New York 2014: Ceph, a physical perspective
Ceph Day New York 2014: Ceph, a physical perspective Ceph Day New York 2014: Ceph, a physical perspective
Ceph Day New York 2014: Ceph, a physical perspective
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
 
Ceph Day Melbourne - Ceph on All-Flash Storage - Breaking Performance Barriers
Ceph Day Melbourne - Ceph on All-Flash Storage - Breaking Performance BarriersCeph Day Melbourne - Ceph on All-Flash Storage - Breaking Performance Barriers
Ceph Day Melbourne - Ceph on All-Flash Storage - Breaking Performance Barriers
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
Wp intelli cache_reduction_iops_xd5.6_fp1_xs6.1
Wp intelli cache_reduction_iops_xd5.6_fp1_xs6.1Wp intelli cache_reduction_iops_xd5.6_fp1_xs6.1
Wp intelli cache_reduction_iops_xd5.6_fp1_xs6.1
 
Refining Linux
Refining LinuxRefining Linux
Refining Linux
 
SQL Server It Just Runs Faster
SQL Server It Just Runs FasterSQL Server It Just Runs Faster
SQL Server It Just Runs Faster
 
PROSE
PROSEPROSE
PROSE
 
os
osos
os
 
Strata + Hadoop 2015 Slides
Strata + Hadoop 2015 SlidesStrata + Hadoop 2015 Slides
Strata + Hadoop 2015 Slides
 
Oracle Performance On Linux X86 systems
Oracle  Performance On Linux  X86 systems Oracle  Performance On Linux  X86 systems
Oracle Performance On Linux X86 systems
 
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
 
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
IMCSummit 2015 - Day 1 Developer Track - Evolution of non-volatile memory exp...
 
Deep Dive on Amazon EC2 instances
Deep Dive on Amazon EC2 instancesDeep Dive on Amazon EC2 instances
Deep Dive on Amazon EC2 instances
 
CH10.pdf
CH10.pdfCH10.pdf
CH10.pdf
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

SQLIO - measuring storage performance

  • 2. 1. Using SQLIO to StressTest an I/O Subsystem  Use SQLIO.exe to determine the Input/Output capacity of a disk subsystem (tool provided by Microsoft).  The purpose of SQLIO is not to simulate I/O patterns of SQL Server but rather to test a variety of I/O types and sizes and determine the capacity of an I/O subsystem.  When testing the I/O system you should consider the following: • Test a variety of I/O types and sizes • Make sure the total size of the test files used in each test is significantly larger than the amount of cache on the SAN (Short Stroke Efect). • Short test runs (5-10 minutes) are okay for initial testing, however if potential problem areas are discovered longer tests should be run. • Allow some time in between each I/O type you test to allow the I/O system to return to an idle state (1 min. acceptabile).
  • 3. 2. Commonly used SQLIO.exe options Option Description -o Specify the number of outstanding I/O requests. Increasing the queue depth may result in a higher total throughput. However, increasing this number too high may result in problems. Common values for this are 8, 32, and 64. In RAID, SAN or Storage Spaces setups, a single disk can be made up of multiple physical disks. You can start with twice the number of physical disks used by the volume where the file sits. Using a higher number will increase your latency, but can get you more IOPs and throughput. -LS Capture disk latency information. Capturing latency data is recommended when testing a system. -k Specify either R or W (read or write). -s Duration of test (seconds). You can use 10 seconds for a quick test. For any serious work, use at least 60 seconds. -b Size of the IO request in bytes. 8KB is the typical IO for OLTP workloads. 512KB is common for Reporting, Data Warehousing. -f Type of IO to issue. Either ‘random’ or ‘sequential’. Random is common for OLTP workloads. Sequential is common for Reporting, Data Warehousing.. -F Name of the file which will contain the test files to run SQLIO against. -t Threads. For large IOs, just a couple is enough. Sometimes just one. For small IOs, you could need as many as the number of CPU cores.
  • 4. 3. Interpretingthe resultsof SQLIO  When running the test you can redirect the output of SQLIO to a text file to capture the performance information.  If more detailed information is needed Windows Performance Monitor and/or SAN specific monitoring tools can be used.
  • 5. 4. MonitoringI/O Performance– usingWindows ResourceMonitor
  • 6. 5.MonitoringI/OPerformance –usingPerformanceMonitor(1) Performance Monitor Counter Description Disk Transfers/sec IOPS. Number of I/O’s being issued against a particular disk Practical limit of 100-140/sec per spindle Per Read/Write stats: Disk Reads/sec & Disk Writes/sec counters. Avg. Disk Queue Length QD. Average queue depth. The general rule of thumb: • Single disk (spindle) no more than 2 (QD more will cause additional latency. Anyway, if latency added is less than 10-15ms then higher QD is acceptable. Theoretically a SATA disk can queue up to 32 outstanding IOs (with NCQ) and SAS disk can queue up to 255 outstanding IOs. With greater QD possible higher IOPS/throughput • RAID no more than # spindles * 2. Can be higher as long as latency do not exceeds 10-15ms thresholds. Theoretically maximum can be # spindles in a RAID set * 255(sas)/32(sata) or max queue depth for the RAID controller if that is less than the disk’s queue sum. Avg. Disk sec/Transfer Average latency. On well-tuned OLTP systems deployed on high performance SAN’s ideal values would be in the range of < 2 ms for Log and 4-10 ms for Data. DSS (decision support system) type workloads may result in higher latencies (30+ ms). Disk Bytes/sec Throughput. Measure of the total throughput for a particular disk or LUN.
  • 8. 7. Using SQLIO.exe utility (preparing)  Download the Tool • You can get it from http://www.microsoft.com/en-us/download/details.aspx?id=20163  Prepare a test file • Ideally, you should create a file as big as possible, so that you can exercise the entire disk. Creating a small file causes the head movement to be restricted to a portion of the disk – as a result SQLIO will show an unrealistically high random IO performance (short stroke effect). • To create a large file for your test, the easiest way is using the FSUTIL.EXE tool, which is included with all versions of Windows (starting Windows Vista). Use FSUTIL.exe from PS: FSUTIL.EXE file createnew X:testfile.dat (1TB) FSUTIL.EXE file setvaliddata X:testfile.dat (1TB) • Alternatives: (1) Dummy File Creator (2) Disk Tools http://www.7tutorials.com/3-ways-create-random-dummy-files-windows-given-size
  • 9. 8. Using SQLIO.exe utility (runthe tool)  Run the Tool • Make sure that nothing else is competing with your testing. • WARNING: You could be generating a whole lot of disk IO, network traffic and/or CPU load when you run SQLIO. If you’re in a shared environment, you might want to talk to your administrator and ask permission. • Read(100%), Random(100%), Request Size(8KB), # of Outstanding(16) SQLIO.EXE -s15 -kR -frandom -b8 -t8 -o16 -LS -BN X:TestFile.DAT • Write(100%), Sequential(100%), Request Size(512KB), # of Outstanding(32) SQLIO.EXE -s15 -kW -fsequential –b512 -t8 -o32 -LS -BN X:TestFile.DAT • Recommendations: - OLTP workloads 8KB random IOs, 8 threads, 16 outstanding (-frandom -b8 -t8 -o16) - OLAP workloads 512KB sequential IOs, 2 threads, 16 outstanding (-fsequential -b512 -t2 -o16) - Virtual Machines workloads: 8KB, Random (80%), Read (80%), 32 outstanding.(I/O blender)
  • 10. 9. Typical accesspatternsof various applications.
  • 11. 10. Otherstorage performance tools  IOMeter – The open-source, cross-platform tool. If you do a lot of SAN work, you might prefer a cross-platform tool that you can use across all of the clients that connect to the SAN. IOMeter works on Windows and Linux. Intel developed tool. (As compared to SQLIO support mixed R/W workload testing)  SQLIOStress.exe - differs from SQLIO in that it is designed to simulate the I/O patterns of SQL Server.  Crystal Disk Mark - The easy, free one-button solution.  HDTune Pro …
  • 12. 11. SATANative Command Queuing(NCQ)  Native Command Queuing (NCQ) is an extension of the Serial ATA protocol allowing hard disk drives to internally optimize the order in which received read and write commands are executed.  Native Command Queuing (NCQ) is a feature supported by Advanced Host Controller Interface (AHCI).  NCQ truly optimizes performance when disk accesses are random in nature. (elevator seeking).  Max Queue Depth: • SATA (NCQ): 32 • SAS (TCQ): 255 TCQ - Tagged Command Queueing
  • 13. 12. Advanced Host ControllerInterface (AHCI)
  • 16. 15. Determine the saturation point of an I/Osubsystem  Start with a small number of outstanding I/Os (-o) and gradually increase this until the path is saturated. Saturation occurs when latency increases and throughput stays the same.
  • 17. AdditionalInfo SQLIO, PowerShell and storage performance: measuring IOPs, throughput and latency for both local disks http://blogs.technet.com/b/josebda/archive/2013/03/28/sqlio-powershell-and-storage-performance-measuring-iops- throughput-and-latency-for-both-local-disks-and-smb-file-shares.aspx Benchmarking SQL Server IO with SQLIO http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio SQLIO Tutorial: How to Test Disk Performance http://www.brentozar.com/archive/2008/09/finding-your-san-bottlenecks-with-sqlio 3 Ways to Create Random Dummy Files in Windows, with a Given Size http://www.7tutorials.com/3-ways-create-random-dummy-files-windows-given-size habr - Развитие накопителей http://habrahabr.ru/company/etegro/blog/217115 SAS vs SATA — выбор дисковой подсистемы http://www.etegro.ru/articles/sas-sata IO Queue Depth Strategy http://sqlblog.com/blogs/joe_chang/archive/2010/10/18/io-queue-depth-strategy.aspx WHITE PAPER FUJITSU PRIMERGY SERVER BASICS OF DISK I/O PERFORMANCE http://globalsp.ts.fujitsu.com/dmsp/Publications/public/wp-basics-of-disk-io-performance-ww-en.pdf SQL Server Best Practices Article http://technet.microsoft.com/en-us/library/cc966412.aspx Use Resource Monitor to monitor storage performance http://www.techrepublic.com/blog/the-enterprise-cloud/use-resource-monitor-to-monitor-storage-performance/ wikipedia - Native Command Queuing http://en.wikipedia.org/wiki/Native_Command_Queuing Installing Windows XP With F6 AHCI/RAID Drivers From USB Only http://www.prime-expert.com/articles/b02/installing-windows-xp-with-f6-ahci-raid-drivers-from-usb-only.php SQL Server Best Practices Article http://technet.microsoft.com/en-us/library/cc966412.aspx