It's never a good idea to run Exchange Server and other server applications -- SQL Server, for instance -- on the same machine. But why is it a bad idea?
Exchange Server was designed to use as much physical memory as there is available on the server. This isn't a defect of its design; it is quite deliberate. When it comes to servers, unused memory is wasted memory. So having Exchange Server use as much physical memory as possible is simply a way to get the most out of the hardware on which it's running.
To that end, Microsoft has suggestions on how to optimize memory usage for Exchange Server 2003. But, those suggestions are meant to maximize Exchange Server's behavior on systems with 3 GB of memory or more -- not to force it to coexist with other server applications that are equally aggressive with memory.
(Note that the memory usage suggestions just apply to Exchange Server 2003. Exchange Server 2007, which is only supported in its 64-bit version, can directly address a good deal more memory than 32-bit editions. So, in theory, it shouldn't need to be tweaked like Exchange 2003 to improve performance.)
One cynical argument I've heard is that the "people" who decided Exchange Server (or any other server product) should be best run on its own box have a vested interest in selling as many Windows Server licenses as possible -- i.e., one for each physical machine running a separate server application.
The counter-argument is that there are valid reasons for keeping separate servers on separate hardware. If you have a hardware failure on one machine, then it only affects one server at a time, and minimizes problems with other applications.
Aside from memory, another critical issue is resource contention -- i.e., when multiple server applications hit the same disk, or the same network adapter, and slow each other down.
One common retort goes something like: "Well, Windows Small Business Server (SBS) 2003 comes with Exchange Server and SQL Server, and they run side-by-side on the same box just fine there, so how come I can't do the same thing?"
I learned the hard way why this isn't a reliable notion. The server components included with Windows SBS 2003 are tweaked by Small Business Server's own setup scripts to run together in a very specific way; they're not set up in the same fashion as the stock out-of-the-box editions of each product.
If you only have the budget for one server in your organization anyway, you can buy SBS and use that (often as a server preload) in lieu of buying each server product separately.
If you want to (or have to) run multiple servers on the same box, one way to do so -- at least semi-elegantly -- is through virtualization. This way, each application will be running in a dedicated instance of an operating system. Resource contention can then be managed a little more directly (for instance, by putting each instance on its own processor, dedicated network adapter or physical disk).
There are other kinds of duties that shouldn't be shared with an Exchange server. For instance, it's not a wise idea to promote an Exchange Server 2003 box to the status of a domain controller.
It can be done, but it's not recommended or supported, and you can run into a lot of problems along the way. (One minor variation to this caveat is that if you already have a domain controller running, you can install Exchange Server on it, but it's still not a terribly smart idea.)
About the author: Serdar Yegulalp is editor of Windows Insight, a newsletter devoted to hints, tips, tricks, news and goodies for all flavors of Windows users.
Do you have comments on this tip? Let us know.
Please let others know how useful this tip was via the rating scale below. Do you have a useful Exchange Server or Microsoft Outlook tip, timesaver or workaround to share? Submit it to SearchExchange.com. If we publish it, we'll send you a thank-you gift only an IT geek could love.