Using Operations Manager to get an estimated IOPS report of your SAN

A question I get from time to time is “I don’t know if my SAN is adequate for my current workloads and I also want to add some new ones, can I use SCOM to determine if this is safe to do?”

My answer? Well, it depends…

Although there are management packs for all the popular SAN units, they seldom come with any performance collection rules related to IOPS.

A nice exception though is the community based EVA Storage Performance Management Pack.


While you may not have the exact performance data you need, it is still possible to calculate an estimate of your SAN usage. This is done through the Logical Disk-objects which are part of the Base OS Management Packs.

There are 2 interesting collection rules targeting the respective Logical Disk classes:

  • Collection Rule for Disk Reads Per Second 20xx
  • Collection Rule for Disk Writes Per Second 20xx

These rules are disabled by default, so override-enable them before proceeding.

The sum of these rules gives us the total disk operations per seconds for a logical disk, or in other words: IOPS!

Now if these are disks of workloads utilizing your SAN (like Virtual Machines or SQL), it is possible to get long-term statistics from the data warehouse.

I must stress this: this will never be the exact IOPS representation of your SAN, as you are taking data captured on a whole different layer than the storage layer. What it does give you is a general picture of what (some of) the SAN-dependant workloads are demanding. If a workload isn’t accounted for in SCOM (Unix-machines, Appliances,…) the statistics are impacted in accuracy.

While I can’t give you a good-to-go Report Management Pack (yet), I can give you the query to get the data:

use OperationsManagerDW;


select perf.DateTime,
vManagedEntity e, vManagedEntityType et, Perf.vPerfHourly perf, vPerformanceRule pr, vPerformanceRuleInstance pri


where e.ManagedEntityTypeRowId = et.ManagedEntityTypeRowId and e.ManagedEntityRowId = perf.ManagedEntityRowId and perf.PerformanceRuleInstanceRowId = pri.PerformanceRuleInstanceRowId and pri.RuleRowId = pr.RuleRowId

and et.ManagedEntityTypeSystemName like
and e.DisplayName not

(pr.CounterName =
‘Disk Reads/Sec’
or pr.CounterName =
‘Disk Writes/Sec’

and perf.DateTime between


by perf.DateTime




This query takes all disks in SCOM that have data from the collection rules mentioned above, filters out backup-activity (DPM) and aggregates the data in a per-hour overview. This from a specific time period.

When you export this data to excel, you can create graphs like this:

You can then show this to your customer and advise him (after stating that the data isn’t 100% accurate) if he can safely add new workloads or not.

This entry was posted in #scom, #sysctr, Uncategorized. Bookmark the permalink.

2 Responses to Using Operations Manager to get an estimated IOPS report of your SAN

  1. Hello to all, for the reason that I am genuinely keen of reading this
    blog’s post to be updated regularly. It includes good stuff.

Leave a Reply

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

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

Google photo

You are commenting using your Google 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 )

Connecting to %s