Monitoring and Testing Monitoring and Testing I/OI/OUsing Perfmon, Oracle tools and Using Perfmon, Oracle tools and IOMeter for monitoring and load IOMeter for monitoring and load testing the I/O Subsystemtesting the I/O Subsystem
ObjectivesObjectives
At the end of this module the student will At the end of this module the student will understand the following tasks and understand the following tasks and concepts.concepts.
Monitoring the I/O Subsystem using Monitoring the I/O Subsystem using PerfmonPerfmon
Monitoring the I/O Subsystem using Monitoring the I/O Subsystem using Oracle ToolsOracle Tools
Load Testing the I/O Subsystem using Load Testing the I/O Subsystem using TTCPTTCP
Oracle and I/OOracle and I/O I/O performance is crucial to I/O performance is crucial to
Oracle PerformanceOracle Performance Data buffers are sensitive to read Data buffers are sensitive to read
I/O latencyI/O latency Log buffers are sensitive to write Log buffers are sensitive to write
I/O latencyI/O latency
Oracle I/O ProblemsOracle I/O ProblemsPerformance DegradationPerformance Degradation Index lookupIndex lookup
10 I/Os10 I/Os 10 x 6 ms = 60 ms (not bad)10 x 6 ms = 60 ms (not bad) 10 x 100 ms = 1 sec (noticeable)10 x 100 ms = 1 sec (noticeable)
Table ScanTable Scan 30,000 I/Os30,000 I/Os
30,000 x 6 ms = 90 sec (not bad for a Table 30,000 x 6 ms = 90 sec (not bad for a Table Scan)Scan)
30,000 x 100 ms = 3,000 sec = 50 minutes30,000 x 100 ms = 3,000 sec = 50 minutes You are getting phone calls and emailsYou are getting phone calls and emails
Monitoring I/O PerformanceMonitoring I/O PerformancePerfmonPerfmon General TipsGeneral Tips
Set the sample rate upSet the sample rate up 1 sec is too fast1 sec is too fast
Not accurate on all countersNot accurate on all counters Not enough time to see all the countersNot enough time to see all the counters Way to fast for saving the dataWay to fast for saving the data Heizenburg Uncertainty PrincipleHeizenburg Uncertainty Principle
Use both graph and report as Use both graph and report as appropriateappropriate
Save data if possibleSave data if possible
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon Logical Disk CountersLogical Disk Counters
Lists the Physical Disks by Drive Lists the Physical Disks by Drive LetterLetter Good for monitoring file I/OGood for monitoring file I/O
Physical Disk CountersPhysical Disk Counters Lists the Physical Disks by Physical Lists the Physical Disks by Physical
DiskDisk Good for monitoring the LUNs or Good for monitoring the LUNs or
VolumesVolumes
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon LatenciesLatencies IOPS (I/Os Per Second)IOPS (I/Os Per Second) ThroughputThroughput I/O sizesI/O sizes
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon LatenciesLatencies
Avg. Disk sec/ReadAvg. Disk sec/Read Provides Read Latency StatisticsProvides Read Latency Statistics
Avg. Disk sec/WriteAvg. Disk sec/Write Provides Write Latency StatisticsProvides Write Latency Statistics
Monitoring I/O PerformanceMonitoring I/O PerformanceLatencyLatency
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon IOPSIOPS
Disk Reads/secDisk Reads/sec Disk Transfers/secDisk Transfers/sec
Useful for total volume IOPS Useful for total volume IOPS (remember RAID overhead)(remember RAID overhead)
Disk Writes/secDisk Writes/sec
Monitoring I/O Monitoring I/O PerformancePerformanceIOPSIOPS
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon ThroughputThroughput
Disk Bytes/secDisk Bytes/sec Total ThroughputTotal Throughput
Disk Read Bytes/secDisk Read Bytes/sec Disk Write Bytes/secDisk Write Bytes/sec
Monitoring I/O Monitoring I/O PerformancePerformanceThroughputThroughput
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon I/O sizesI/O sizes
Avg. Disk Bytes/ReadAvg. Disk Bytes/Read Avg. Disk Bytes/WriteAvg. Disk Bytes/Write
Monitoring I/O Monitoring I/O PerformancePerformanceI/O SizesI/O Sizes
Monitoring I/O Monitoring I/O PerformancePerformancePerfmonPerfmon MiscellaneousMiscellaneous
Current Disk Queue LengthCurrent Disk Queue Length
Monitoring I/O Monitoring I/O PerformancePerformanceOracle ToolsOracle Tools OEM OEM
Performance Performance PagePage Instance Disk I/OInstance Disk I/O Instance Instance
ThroughputThroughput
Monitoring Monitoring I/OI/O Performance PerformanceOracle ToolsOracle Tools
Oracle Counters for Oracle Counters for Windows Windows Performance Performance MonitorMonitor Add Oracle Data Add Oracle Data
Files counter Files counter physreads/secphysreads/sec Physwrites/sePhyswrites/se
Choose data files to Choose data files to monitormonitor
Shows I/O for Shows I/O for database filesdatabase files
Monitoring I/O Monitoring I/O PerformancePerformanceOracle ToolsOracle Tools STATSPACK ReportsSTATSPACK Reports
Tablespace IO StatsTablespace IO Stats Data File IO StatsData File IO Stats
Load Testing I/OLoad Testing I/O Used to determine I/O problems Used to determine I/O problems
in a controlled and scientific in a controlled and scientific mannermanner
Used to identify the upper limits Used to identify the upper limits of the storage subsystemof the storage subsystem
Used to prove or disprove Used to prove or disprove hypothesis or theorieshypothesis or theories
Load Testing I/OLoad Testing I/OIOMeterIOMeter IOMeter is a public domain utilityIOMeter is a public domain utility Available at Available at
http://www.sourceforge.nethttp://www.sourceforge.net Generates I/O based on your Generates I/O based on your
specificationsspecifications Provides accurate resultsProvides accurate results Is repeatableIs repeatable
Load Testing I/OLoad Testing I/OIOMeterIOMeter Made up of two major Made up of two major
componentscomponents GUIGUI
Used for configuration and resultsUsed for configuration and results DynamoDynamo
Used to generate the loadUsed to generate the load
Load Testing I/OLoad Testing I/OIOMeterIOMeter Configuring IOMeterConfiguring IOMeter
Disk TargetsDisk Targets Network TargetsNetwork Targets Access SpecificationsAccess Specifications Results DisplayResults Display Test SetupTest Setup
Load Testing I/OLoad Testing I/ODisk TargetsDisk Targets Maximum Disk SizeMaximum Disk Size
For random I/Os this must be For random I/Os this must be sufficiently largesufficiently large
# of Outstanding I/Os# of Outstanding I/Os Defines concurrency of I/OsDefines concurrency of I/Os If set to one there will only be one If set to one there will only be one
I/O issued at a time and IOPS = 1 / I/O issued at a time and IOPS = 1 / latencylatency
Load Testing I/OLoad Testing I/ONetwork TargetsNetwork Targets Used for network I/O testingUsed for network I/O testing
Load Testing I/OLoad Testing I/OAccess SpecificationsAccess Specifications Specifies the type of I/OSpecifies the type of I/O
Block SizeBlock Size Read/Write ratioRead/Write ratio Sequential/Random RatioSequential/Random Ratio Create new spec for OracleCreate new spec for Oracle
Load Testing I/OLoad Testing I/OTest SetupTest Setup Used to set up automated testsUsed to set up automated tests
Run timeRun time Ramp upRamp up Number of workersNumber of workers Etc.Etc.
Load Testing I/OLoad Testing I/OResults DisplayResults Display View the performance during the View the performance during the
testtest IOPSIOPS ThroughputThroughput LatencyLatency CPU UtilizationCPU Utilization
ReviewReview
What type of I/O problem causes the What type of I/O problem causes the biggest problem with Oracle Data Files ?biggest problem with Oracle Data Files ?
Name some Perfmon counters to monitor Name some Perfmon counters to monitor for I/O?for I/O?
What counter does the Oracle Counters What counter does the Oracle Counters for Windows Performance Monitor add to for Windows Performance Monitor add to Perfmon that measures Oracle I/O?Perfmon that measures Oracle I/O?
What are the two components of What are the two components of IOMeter?IOMeter?
SummarySummary Monitoring the I/O Subsystem using Monitoring the I/O Subsystem using
PerfmonPerfmon Monitoring the I/O Subsystem using Monitoring the I/O Subsystem using
Oracle ToolsOracle Tools Load Testing the I/O Subsystem using Load Testing the I/O Subsystem using
TTCPTTCP