Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I want to determine if some databases are overloaded or unbalanced, and think that looking at the transaction logs created per database over time would tell me which DB is at risk of missing RPO targets due to high IO (mostly writes).

My thought is to create a graph of each database, every X minutes and count each log that is created.

Since each log = 1MB in an E2010 DAG, I can easily calculate the amount of data that could be lost in a given time.

So my question is:

  1. How can I determine if a given database has extra IO that might be better moved to a lower volume database? Is transaction logs a valid way of looking at it?

  2. How should I procedurally figure out the load? Perhaps a powershell script, C#, and export that to a graph or excel.

share|improve this question
    
Can you define "unneeded IO?" If the IO is generated, it is needed for something. –  MDMarra Jul 7 at 17:11
    
@MDMarra - Fixed. –  makerofthings7 Jul 7 at 17:11
    
Sorry, still not understanding what you are looking for. Are you trying to identify low-usage mailboxes so that you can move them to a database on slower disk? Are you trying to find high-usage mailboxes to move them to faster disk? Do you just want to profile IO over time for mailboxes in a given database? Or something else all together? –  MDMarra Jul 7 at 17:19
    
@MDMarra All disks are the same. The problem I'm seeing is that our bandwidth isn't capable of maintaining a realistic RPO due to many logs being created. This results in one particular database lag behind the others. I would rather spread out the load across all databases so that this one DB doesn't stick out during a failover event... and may need to be restored from tape because replication is.. well useless for this DB. –  makerofthings7 Jul 7 at 17:22
1  
Ok, so I will ask one more time. What metrics are you looking to retrieve from this mail database? Are you looking for the busiest mailboxes so that you can move them to other databases? If your throughput is an issue, all that this will do is cause your replication lag to be spread more evenly, it won't make it go away. –  MDMarra Jul 7 at 17:24

1 Answer 1

up vote 2 down vote accepted

First off, you can use the great info here: http://penetrateit.wordpress.com/2012/02/11/exchange-2010-balancing-the-number-of-mailboxes-and-average-size-across-all-databases/ to figure out some stats needed to help balance the mailboxes across databases.

Or you can use Steve's script here: http://www.stevieg.org/2010/09/balancing-exchange-databases/

However, Let me suggest an additional approach:

  • if you haven't already, setup your DBs based on RPO. Meaning create a VIP database, and so on. Put those VIPs together in a DB that you know will get replicated well across the WAN and use LUNs that won't fill up for this DB. (HOWEVER, note that you don't want to go crazy and put all your high-use users into the VIP DB, or you'll compound your issue). By VIP, I'm referring to people where the RPO is "the last hour" or similar. You can even make a "Meh RPO" db and stick a bunch of non-essential mailboxes in there that you don't care much about regarding RPO, then if you have the means to do so on your WAN de-prioritize their replication traffic.

Hope that helps.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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