I'm looking at Resource Governor on 2014 and how it relates to volumes. I can see where to set up MAX|MIN IOPS PER VOLUME on a resource pool. That's not keyed by volume, however sys.dm_resource_governor_resource_pool_volumes is. Should I read that as the pool's definition applies to every volume but the DMV reports what actually happened on each?

My understanding is this: say I have three volumes - E, F and G. I set min = 10, max = 300 on the pool. Then there can be, at most, 300 IOPS against each drive for a max of 900 for the pool. The DMV shows what IO actually happened for each volume. If the table/filegroup definition were such that the majority of the activity happened on one volume (let's say F) the numbers from the DMV would show large read_bytes_total and write_bytes_total for that volume and smaller numbers for the others. Is this a correct understanding?

Neither BoL nor any of the blogs I've read make this explicit.


It seems reasonable to assume, per the documentation and indeed the names of the parameters themselves, that MIN_IOPS_PER_VOLUME and MAX_IOPS_PER_VOLUME control the maximum quantity of I/Os per second per volume.

i.e. as in your question, if you have three volumes in the resource pool, and set MAX_IOPS_PER_VOLUME to 300, then you'd have a maximum total IOPS of 900.

Without source-code-level access to SQL Server, it's impossible to say for certain if that's how it actually works, however the documentation says (emphasis mine):

Specifies the minimum I/O operations per second (IOPS) per disk volume to allow for the resource pool.

Specifies the maximum I/O operations per second (IOPS) per disk volume to allow for the resource pool.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.