Here’s an interesting KB that cements a great best practice for storage group configuration in Exchange 2003.
KB.890699 talks about the best way to load up storage groups in Exchange 2003. You might recall that in Exchange 2000, the (somewhat unspoken) best practice on this was to always load up the storage groups all the way full before creating a new storage group. This was to prevent the unnecessary overhead of multiple storage groups, and to decrease the chance that memory fragmentation issues would arise. In Exchange 2000, memory fragmentation could be a huge issue within the store process, leading to poor performance and worse.
However, in Exchange 2003 the memory fragmentation issues haven’t been nearly as much of a problem due to a bunch of performance and memory optimizations in this version. So, with that in mind, the recommendation in Exchange 2003 is to now load up only one store per storage group until you’ve used up all 4 storage groups on the server.
Obviously, if you put 20 DBs on a server, you’re going to use up all DBs and SGs so there’s not real change… but if you put in only?a handful (2–4) of?databases in a server, this is a fundamental shift in recommended design!
So, why the change? See the KB for the detail, but in short there can be benefits in performance and recoverability if you have only a single DB per storage group. Since all databases in each storage group share logfiles, they are pretty interdependent… both for I/O needs (performance) and for recoverability (log replay at recovery).
[Via Evan’s WebLog]