Vishal desai’s Oracle Blog

January 6, 2011

Oracle iostat

Filed under: OS, Performance Tuning, Tools — vishaldesai @ 6:35 pm

Tool:

I have written a simple script to display io statistics from database. This script will help in measuring how much IO/MBPS is reaching to Oracle database. It can also help to troubleshoot if there is queuing happening somewhere. For example if SAN is delivering 500 MBPS throughput but if DBA’s are seeing only 350 MBPS on database then there is possibility of queuing happening somewhere at hardware/software level like volumes, file systems etc.

In Solaris/Linux nicstat can be used to see total bytes sent/received via hba/network card. In AIX similar statistics can be viewed using nmon (-n flag).

iostat.sql displays current io statistics
awr_iostat.sql display historical io statistics based on AWR.

RD – Read
WR – Write
IOPS – IO operations per second
1BLK – single block read
MBRC – multi block read count
MBPS – Megabytes per second (throughput)
Cac – Cache reads
DR – Direct
RDTM – Read in temporary tablespace
WRTM – Write in temporary tablespace

Example:

SQL> @iostat 10 10
|--Tot IOPS----|-APPL IOPS----|------TYPE---------|--Total MBPS--|--APPL MBPS---|---------Type MBPS-----------|
--------------------------------------------------------------------------------------------------------------|
|RD  |WR  |Tot |RD  |WR  |Tot |RD  |RD  |WR  |WR  |RD  |WR  |Tot |RD  |WR  |Tot |Cac |DR  |DR  |Cac |DR  |DR  |
|IOPS|IOPS|IOPS|IOPS|IOPS|IOPS|1BLK|MBRC|1BLK|MBRC|MBPS|MBPS|MBPS|MBPS|MBPS|MBPS|RD  |RD  |RDTM|WR  |WR  |WRTM|
--------------------------------------------------------------------------------------------------------------|
|2656|   1|2657|2656|   0|2656|   0|2656|   1|   0| 125|   0| 125| 125|   0| 125|   0|   0| 125|   0|   0|   0|
|2633|   1|2634|2633|   0|2633|   0|2633|   1|   0| 123|   0| 123| 123|   0| 123|   0|   0| 123|   0|   0|   0|
|2643|   1|2644|2643|   0|2643|   0|2643|   1|   0| 124|   0| 124| 124|   0| 124|   0|   0| 124|   0|   0|   0|
|2647|   1|2648|2647|   0|2647|   0|2647|   1|   0| 124|   0| 124| 124|   0| 124|   0|   0| 124|   0|   0|   0|
|2572|   1|2573|2572|   0|2572|   0|2572|   1|   0| 121|   0| 121| 121|   0| 121|   0|   0| 121|   0|   0|   0|
|2600|   1|2601|2600|   0|2600|   0|2600|   1|   0| 122|   0| 122| 122|   0| 122|   0|   0| 122|   0|   0|   0|
|2697|   1|2698|2697|   0|2697|   0|2697|   1|   0| 126|   0| 126| 126|   0| 126|   0|   0| 126|   0|   0|   0|
|2439|   1|2440|2439|   0|2439|   0|2439|   1|   0| 114|   0| 114| 114|   0| 114|   0|   0| 114|   0|   0|   0|
|2338|   1|2339|2338|   0|2338|   0|2338|   1|   0| 110|   0| 110| 110|   0| 110|   0|   0| 110|   0|   0|   0|
|2181|   1|2182|2181|   0|2181|   0|2181|   1|   0| 102|   0| 102| 102|   0| 102|   0|   0| 102|   0|   0|   0| 

Output from nmon on AIX:

I/F Name Recv=KB/s Trans=KB/s
     en8  114489.4      835.0

SQL> @awr_iostat.sql
Please enter start_date(mm/dd/yy)    :01/05/11
Please enter end_date  (mm/dd/yy)    :01/06/11
old   2: where begin_interval_time>=to_date('&start_date','mm/dd/yy')
new   2: where begin_interval_time>=to_date('01/05/11','mm/dd/yy')
old   3: and   begin_interval_time<=to_date('&end_date','mm/dd/yy')+1
new   3: and   begin_interval_time<=to_date('01/06/11','mm/dd/yy')+1

   SNAP_ID BEGIN_INTERVAL_TIME
---------- ---------------------------------------------------------------------------
      1773 05-JAN-11 12.00.31.153 AM
      1774 05-JAN-11 01.00.27.309 AM
      1775 05-JAN-11 02.00.29.137 AM
      1776 05-JAN-11 03.00.27.934 AM
      1777 05-JAN-11 04.00.33.089 AM
      1778 05-JAN-11 05.00.37.860 AM
      1779 05-JAN-11 06.00.36.449 AM
      1780 05-JAN-11 07.00.39.974 AM
      1781 05-JAN-11 08.00.40.605 AM
      1782 05-JAN-11 09.00.32.146 AM
      1783 05-JAN-11 10.00.29.752 AM
      1784 05-JAN-11 11.00.24.355 AM
      1785 05-JAN-11 12.00.21.982 PM
      1786 05-JAN-11 01.00.28.256 PM
      1787 05-JAN-11 02.00.40.490 PM
      1788 05-JAN-11 03.00.52.797 PM
      1789 05-JAN-11 04.00.08.024 PM
      1790 05-JAN-11 05.00.17.315 PM
      1791 05-JAN-11 06.00.29.626 PM
      1792 05-JAN-11 07.00.41.831 PM
      1793 05-JAN-11 08.00.57.045 PM
      1794 05-JAN-11 09.00.06.255 PM
      1795 05-JAN-11 10.00.24.512 PM
      1796 05-JAN-11 11.00.42.825 PM
      1797 06-JAN-11 12.01.04.130 AM
      1798 06-JAN-11 01.00.16.404 AM
      1799 06-JAN-11 02.00.34.637 AM
      1800 06-JAN-11 03.00.46.922 AM
      1801 06-JAN-11 04.01.05.180 AM
      1802 06-JAN-11 05.00.20.395 AM
      1803 06-JAN-11 06.00.35.606 AM
      1804 06-JAN-11 07.00.50.808 AM
      1805 06-JAN-11 08.00.03.012 AM
      1806 06-JAN-11 09.00.21.245 AM

34 rows selected.

Enter value for start snap_id   :1773
Enter value for end snap_id     :1806

PL/SQL procedure successfully completed.

-Timestamp-|--Tot IOPS-------|-APPL IOPS-------|------TYPE-------------|--Total MBPS--|--APPL MBPS---|---------Type MBPS----
-----------|----------------------------------------------------------------------------------------------------------------
-----------|RD   |WR   |Tot  |RD   |WR   |Tot  |RD   |RD   |WR   |WR   |RD  |WR  |Tot |RD  |WR  |Tot |Cac |DR  |DR  |Cac |DR
-----------|IOPS |IOPS |IOPS |IOPS |IOPS |IOPS |1BLK |MBRC |1BLK |MBRC |MBPS|MBPS|MBPS|MBPS|MBPS|MBPS|RD  |RD  |RDTM|WR  |WR
----------------------------------------------------------------------------------------------------------------------------

01/05 01:00| 2776| 1828| 4604| 2774| 1828| 4602| 1381| 1395|    1| 1827| 103|  85| 188| 103|  85| 188|  18|   0|  85|   0|
01/05 02:00| 2654| 1749| 4403| 2652| 1748| 4400| 1320| 1334|    1| 1748|  98|  81| 179|  98|  81| 179|  17|   0|  81|   0|
01/05 03:00| 2666| 1790| 4456| 2664| 1789| 4453| 1322| 1345|    1| 1789| 101|  83| 184| 101|  83| 184|  18|   0|  83|   0|
01/05 04:00| 2609| 1768| 4377| 2607| 1767| 4374| 1297| 1313|    1| 1766|  97|  82| 179|  97|  82| 179|  15|   0|  82|   0|
01/05 05:00| 4280|  730| 5010| 4277|  730| 5007|  969| 3310|    1|  729| 175|  34| 209| 175|  34| 209|   7|   0| 168|   0|
01/05 06:00| 2933|  163| 3096| 2924|  126| 3050|  383| 2551|    6|  155| 125|  57| 182| 124|  29| 153|   0|   0| 124|   0|
01/05 07:00| 3620|  119| 3739| 3613|   92| 3705|  468| 3152|    5|  112| 154|  41| 195| 154|  21| 175|   0|   0| 154|   0|
01/05 08:00| 2363|  640| 3003| 2355|  612| 2967|  320| 2043|   10|  630| 120|  71| 191| 120|  47| 167|   0|  22|  97|   0|
01/05 09:00|  250| 1205| 1455|  246| 1197| 1443|    4|  246|    2| 1203|  57|  68| 125|  57|  61| 118|   0|  51|   6|   0|
01/05 10:00| 1031|  295| 1326| 1022|  231| 1253|    9| 1022|    7|  272|  48|  77| 125|  48|  50|  98|   0|   0|  48|   0|
01/05 11:00|  622|  802| 1424|  620|  801| 1421|   25|  597|    8|  793|  56|  58| 114|  56|  58| 114|   0|  31|  25|   0|
01/05 12:00| 1368| 1190| 2558| 1366| 1189| 2555|    3| 1365|    1| 1189| 110|  56| 166| 110|  56| 166|   0|  51|  59|   0|
01/05 13:00| 4038|    2| 4040| 4036|    1| 4037|    3| 4036|    1|    1| 189|   0| 189| 189|   0| 189|   0|   0| 189|   0|
01/05 14:00| 4037|    2| 4039| 4034|    1| 4035|    6| 4031|    1|    1| 189|   0| 189| 189|   0| 189|   0|   0| 189|   0|
01/05 15:00| 3969|   43| 4012| 3967|   15| 3982|    3| 3967|    1|   28| 186|   0| 186| 186|   0| 186|   0|   0| 186|   0|
01/05 16:00| 3698|   19| 3717| 3695|   18| 3713|    3| 3695|    1|   18| 237|   1| 238| 237|   1| 238|   0|  71| 166|   0|
01/05 17:00| 3246|    4| 3250| 3244|    3| 3247|    3| 3244|    1|    3| 160|   0| 160| 160|   0| 160|   0|   9| 151|   0|
01/05 18:00| 3450|    1| 3451| 3447|    0| 3447|    3| 3447|    1|    0| 162|   0| 162| 162|   0| 162|   0|   0| 162|   0|
01/05 19:00| 2641|    1| 2642| 2638|    0| 2638|    3| 2638|    1|    0| 124|   0| 124| 124|   0| 124|   0|   0| 124|   0|
01/05 20:00| 3000|    1| 3001| 2998|    0| 2998|    2| 2998|    1|    0| 141|   0| 141| 141|   0| 141|   0|   0| 141|   0|
01/05 21:00| 3625|    1| 3626| 3622|    1| 3623|    4| 3621|    1|    1| 170|   0| 170| 170|   0| 170|   0|   0| 170|   0|
01/05 22:00| 3609|    5| 3614| 3607|    4| 3611|   62| 3547|    2|    3| 174|   0| 174| 174|   0| 174|   9|   0| 165|   0|
01/05 23:00| 3550|    2| 3552| 3548|    1| 3549|   23| 3527|    1|    1| 175|   0| 175| 175|   0| 175|  11|   0| 164|   0|
01/06 00:01| 3287|    4| 3291| 3285|    3| 3288|   24| 3263|    1|    3| 167|   0| 167| 167|   0| 167|  16|   0| 151|   0|
01/06 01:00| 3556|    3| 3559| 3554|    2| 3556|   28| 3529|    1|    2| 179|   0| 179| 179|   0| 179|  15|   0| 164|   0|
01/06 02:00| 3623|    2| 3625| 3621|    1| 3622|   18| 3606|    1|    1| 181|   0| 181| 181|   0| 181|  13|   0| 168|   0|
01/06 03:00| 3709|    3| 3712| 3707|    2| 3709|   25| 3685|    1|    2| 179|   0| 179| 179|   0| 179|   7|   0| 172|   0|
01/06 04:01| 3350|    3| 3353| 3348|    2| 3350|   20| 3331|    1|    2| 172|   0| 172| 172|   0| 172|  18|   0| 154|   0|
01/06 05:00| 3710|    3| 3713| 3707|    3| 3710|   18| 3692|    1|    2| 188|   0| 188| 188|   0| 188|  17|   0| 171|   0|
01/06 06:00| 3898|    1| 3899| 3896|    0| 3896|    3| 3895|    1|    0| 183|   0| 183| 183|   0| 183|   0|   0| 183|   0|
01/06 07:00| 3702|    1| 3703| 3699|    1| 3700|    3| 3699|    1|    1| 174|   0| 174| 174|   0| 174|   0|   0| 173|   0|
01/06 08:00| 3611|    1| 3612| 3609|    0| 3609|    3| 3609|    1|    0| 169|   0| 169| 169|   0| 169|   0|   0| 169|   0|
01/06 09:00| 2681|    1| 2682| 2678|    0| 2678|    2| 2678|    1|    0| 126|   0| 126| 126|   0| 126|   0|   0| 126|   0|
SQL>

Download scripts

About these ads

4 Comments »

  1. Hi Vishal,

    This is very cool script. Well will modify so not have to create procedure.

    Comment by Taral Desai — February 24, 2011 @ 11:50 pm

  2. where can i FIND THE SCRIPTS?

    Comment by rxbalwad@yahoo.com — May 10, 2011 @ 7:33 pm

    • Search for “Download scripts” on blog page.

      Comment by vishaldesai — September 19, 2011 @ 3:09 pm

  3. This is an excellent script. Thanks for creating and posting it.

    Comment by Jeff McQuigg — April 16, 2014 @ 10:30 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

The Silver is the New Black Theme. Create a free website or blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: