2/5/09

How Much IO Does Your Application Generate?

IO rate of 1+ Gigabytes/sec is rarely achievable, but hundreds of Megabytes/sec is achieved in lots of high-end production environment. Keep those numbers in mind when planning for what’s possible.

In Oracle, use AWR reports to determine current I/O metrics (Instance Activity Stats per sec).

• IOPS = “physical reads total I/O requests” + “physical writes total I/O requests”
• MBytes/s = “physical reads total bytes” + physical writes total bytes”
• For RAC environments - aggregate IOPS or MBytes/s for all nodes

Now the tricky part – estimating expected I/O throughput rates

• Establish what is being expanded – more users, new reports
• Pull I/O stats for a given session or transaction and extrapolate to the required number of users.
• Ensure data points are representative of the new workload
• Know when your Web users get on your system (e.g., peak hour transactions)

For new or non-existing applications, use business rules or data model transaction profiles flow to understand “what is a transaction”, and then extrapolate for transactions/s or per hour. Optionally you can use the numbers we have seen in our consulting gigs. Note that these are just guideline values.
Use the following as basic guidelines for OLTP (
Online transaction processing) systems :

Low transaction system – 1000 IOPS or 200MBytes/s
Medium transaction system – 5000 IOPS or 600 Mbytes/s
High-end transaction system – 10,000 IOPS or 1Gbytes/s (almost rarely achievable and usually TPC-C type workloads)

Use the following as basic guidelines for DSS (Decision Support Systems) (units are in Gig = Gigabytes/Sec):

2 Gig I/O entry level DW
4-8 Gig I/O High End DW
10+ Gig I/O Very High END DW not yet seen in production !
40+ Gig I/O High End TPC-H



No comments:

Post a Comment