The purpose of this post is not to explain the ASM Preferred Read feature or the way to put it in place (for such purpose you can have a look to this oracle-base post or Christian Bilien’s one).

The purpose is to give a way to see this feature in action and collect related performance metrics. To do this:

  • I set asm_preferred_read_failure_groups to DATA.WIN on Instance +ASM1
  • I set asm_preferred_read_failure_groups to DATA.JMO on Instance +ASM2
  • I use Kevin Closson’s SLOB Kit to generate I/O on the database
  • I use my asmiostat utility included into real_time.pl (see this post for more information) with a filter on the DATA Diskgroup (-dg=data) and showing metrics at the Instances and Failgroups level (-show=inst,fg)

First test:

Let’s run SLOB to generate IOs Read from a database located on the same Host as the +ASM1 Instance. The result of “./real_time.pl -type=asmiostat -show=inst,fg -dg=data” is the following:

asm_prefer1

As you can see the Read IOs come from the WIN failgroup (as expected). You also get the performance metrics of the failgroup.

Second test:

Let’s run SLOB to generate IOs Read from a database located on the same Host as the +ASM2 Instance. The result of “./real_time.pl -type=asmiostat -show=inst,fg -dg=data” is the following:

asm_prefer2

As you can see the Read IOs come from the JMO failgroup (as expected). You also get the performance metrics of the failgroup.

Conclusion:

Thanks to the -show option of my asmiostat utility I provided a simple way to collect in real time the performance metrics related to your ASM preferred read configuration. (You can also check if this is working as expected that is to say IOs coming from the right failgroup)

To get the asmiostat utility included into the real_time.pl script:  Click on the link, and then on the view source button and then copy/paste the source code. You can also download the script from this repository to avoid copy/paste (click on the link)

Updates: 

  1. Check how it can be useful for Exadata into this post.
  2. SLOB update 2 has been released since this post. Check how we can use it into this post.
  3. The asmiostat utility is not part of the real_time.pl script anymore. A new utility called asm_metrics.pl has been created. See “ASM metrics are a gold mine. Welcome to asm_metrics.pl, a new utility to extract and to manipulate them in real time” for more information.