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

The Silver is the New Black Theme Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.