Quantcast
Channel: SQL Server Database Engine forum
Viewing all articles
Browse latest Browse all 15930

ideas on how to throttle IO?

$
0
0

I'm trying to think of a way to throttle IO on SQL Servers that have a data warehouse type of workload.  Ideally this would be built into Resource Governor, but it isn't, so here I am.  This is basically to prevent run away queries (rogue report writers that don't know what a Cartesian set is?) from blasting IO out to the disk arrays and flooding FA queues and dirtying the Cache and more or less not playing nicely with other systems on the array.  Some info and requirements:

  • Database size is typically in the terabytes and striped across dozens of disks, typically using mid-range storage units.
  • I can throttle either based on IOPS or MBs.
  • I can throttle just SQL or the entire Server (SQL is the only thing on there, and the DW database is the only database on there).
  • Ideally this throttle process can move the limit for IO up and down throughout the day based on my needs.
  • SQL 2012 only solution is fine, but one that works for 2008 is better.

I know that some arrays can truly isolate workloads and that we can do things like turning off write cache for LUNs, etc, but I'd like a solution that exists on the server itself.  The only two ideas I've come up with so far:

  • Dropping maxdop during time periods when the server should not be spewing IO.  I don't really like this solution because there are plenty of cases where a well written query can use a high maxdop value and not cause problems with other systems.
  • Dropping the queue depth on the HBA ports in Windows (regedit).  On the surface this seems like a pretty good solution as it will theoretically limit the amount of the IO the server can do.


Viewing all articles
Browse latest Browse all 15930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>