One of the things that you can always depend on when
looking at any manufacturer's hardware specifications is that the specs
will always provide the minimum recommendations necessary to run the
specified product. Microsoft has learned from their customers that
recommending a minimum configuration often yields unhappy customers.
Minimum hardware configuration works just fine if
you are building a test lab or a classroom environment. But for
production environments you want to make sure that your hardware can
support a typical everyday workload plus a bit more. In this section,
we will make some recommendations that are partially based on our own
experiences and partially based on Microsoft's best practices.
Note that hardware configuration can vary quite a
bit depending on the server's role and its workload. You may be
supporting a single server with 100 mailboxes or a multiserver site
with 100,000 mailboxes. You should plan to comfortably support your
maximum expected load along with some room to grow.
There are three key factors to ensuring that your
Exchange servers function reliably and efficiently: stable hardware,
correctly configured software, and proper management. If you fail to
get any one of these right, the result will be poor performance,
downtime, data loss, and unhappy users.
Windows hardware compatibility is probably the most
important part of your choice for a server platform. This includes not
only the server model itself, but also the components you will be
using, such as network adapters and any third-party software.
Pick a server vendor that offers local support.
Choose a server model that will provide you with the card slots and
available disk drives. When evaluating server models, ensure that the
server model is near the beginning of its model life rather than near
the end. It is not uncommon to purchase a server through a discount
outlet that is near or at the end of its model life.
As you build your Windows servers, ensure that you
are running reasonably recent versions of all supporting software, such
as device drivers, and that the operating system is patched.
|
1. The Typical User
If you have worked with more than one organization,
you have probably reached the same conclusion that we have: no two
Exchange organizations are exactly alike. Even businesses within the
same industry can have dramatically different usage patterns based on
slightly different business practices.
Where does this put the poor hapless person in
charge of figuring out how much hardware to buy and how much capacity
that hardware should have? If you are currently running an earlier
version of Exchange Server, at least you have a leg up over other
people.
You can use tools such as Performance Monitor to
measure the number of messages sent and received per day and disk I/O
capacity. You can use a tool such as the Exchange 2003 System Manager
to report on mailbox sizes. You can enable message tracking and use
tools such as the Exchange Server Profile Analyzer or Promodag Reports (www.promodag.com) to report how much mail each user sends and receives per day (and more).
Microsoft has done a lot of research in this area
and has published some statistics on what they consider to be light,
average, heavy, very heavy, and extra heavy Outlook users. They have
also calculated that the average email message size is 50 KB in size. Table 1 shows how Microsoft has defined each type of user.
Just relying on emails sent and received may not be
the best judge of the hardware capacity required.
Table 1. Microsoft's Outlook User Types
User Type | Messages Sent per Day | Messages Received per Day |
---|
Light | 5 | 20 |
Average | 10 | 40 |
Heavy | 20 | 80 |
Very heavy | 30 | 120 |
Extra heavy | 40 | 160 |
2. CPU Recommendations
Exchange Server 2010 only runs on Windows Server
2008 x64 and therefore only on hardware (physical or virtualized
hardware) that is capable of supporting the x64 processor extensions.
The processor should be at least 1.6 GHz, though you will certainly
benefit from processors faster than 2 GHz and multicore processors. The
processor must be one of the following:
The Intel Itanium IA64 processor family is not supported.
Table 2 shows the processor recommendations from Microsoft for different Exchange Server 2010 roles.
Table 2. Processor Recommendations Based on Server Role
Exchange 2010 Server Role | Minimum | Recommended | Recommended Maximum |
---|
Edge Transport | 1 × processor core | 4 × processor cores | 12 × processor cores |
Hub Transport | 1 × processor core | 4 × processor cores | 12 × processor cores |
Client Access | 2 × processor core | 8 × processor cores | 12 × processor cores |
Unified Messaging | 2 × processor core | 4 × processor cores | 12 × processor cores |
Mailbox | 2 × processor core | 8 × processor cores | 12 × processor cores |
Combined function (combinations of Hub Transport, Client Access, and Mailbox server roles) | 2 × processor core | 8 × processor cores | 16 × processor cores |
This may seem like a lot of processor horsepower,
and in some ways it sure is. But remember that an Exchange 2010 server
is doing a lot more than an Exchange 2003 server. For example, on a
combined-function server that is running the Mailbox, Client Access,
and Hub Transport server roles, not only are the database engine, web
components, and message transport running, but new components such as
transport rules, messaging records management, mailbox archival, and
RPC client access functions are also running.
If you have worked with Exchange Server 2007 in the
past, you may also note that the CPU recommendations for the Exchange
2010 Client Access server are for more capacity than in Exchange 2007.
This is because all Outlook MAPI RPC traffic has been abstracted out of
the Information Store service and is now handled by the RPC client
access service.
If you are planning to use existing server hardware,
consult your manufacturer's documentation for specific information on
the processors and cores.
If you are not sure whether your existing hardware
supports the x64 extensions, you can check this in a number of ways,
including confirming it with the hardware vendor. If the computer is
already running Windows, you can get a handy little program called
CPU-Z from www.cpuid.com that will check your processor. Figure 1 shows the CPU-Z program.
Notice in the Instructions line of CPU-Z that this
particular chip supports x64–86. This means that this AMD chip will
support the x64 instruction sets. Intel processors will report that
they support the EMT64T instruction set.
2.1. Hub Transport CPU Considerations
We don't have a specific formula that you should use
when planning for the CPU requirements on a Hub Transport server. For
organizations that are small enough to support all roles on a single,
combined-function server, you just want to make sure that the server
has sufficient CPU cores for all the tasks that all the different
Exchange roles must perform.
As you start to scale your organization to the point
that you are putting specific server roles on dedicated server
hardware, consider the factors that utilize the CPU on a Hub Transport
server. The number one factor, of course, is the number of messages
transported per hour. Four processor cores will probably be sufficient
for a server that transports 1,000 messages per hour, but factors that
might require more CPU capacity on a Hub Transport server include the
following:
Integrating Windows Rights Management
Enabling transport rules
Using message journaling
Antivirus and/or antispam scanning
Processing lots of large messages
Enabling additional transport agents
2.2. Client Access Server CPU Considerations
All access to mailbox content is now handled through
the Client Access server; this was not necessarily true in previous
versions of Exchange. Now, mobile devices, web clients, Outlook MAPI
clients, POP3, and IMAP4 clients all go through the Client Access server.
Although this is a good thing for the Mailbox
server, it means that the Client Access server has more work to do. A
Client Access server in an environment with a few hundred mailboxes can
probably use a two-CPU core processor, but as the number of
simultaneous users climbs, the processor power required will also
climb. These additional factors may affect CPU requirements:
Implementing SSL (secure sockets layer) access on the Client Access server
Supporting
larger numbers of POP3, IMAP4, Outlook Web Access, or Windows Mobile
clients (since these clients require messages to be converted)
2.3. Mailbox Server CPU Considerations
The number of processors required on a Mailbox
server mostly depends on the total number of simultaneous users.
According to Microsoft, a dedicated Mailbox server with sufficient
memory and a four-processor core server should be able to support
2,000+ mailboxes. Microsoft estimates a factor for calculating CPU
requirements is one CPU core for each 1,000 mailboxes; this guideline
is based on some assumptions about the usage profiles of those 1,000
users. In this case, they assume that 750 of those are active and heavy
usage mailboxes. Sizing your mailbox servers for 10 to 20 percent more
capacity than you think you are going to need is a good practice.
A number of factors affect CPU requirements,
including the usage profile of the typical user and the concurrency
rate (the percentage of your users who are accessing the server at any
given time). If you are planning to support 2,000 very heavy users who
use Outlook 90 percent of the day, you may need more CPU capacity.
Factors that affect mailbox server CPU requirements include the
following:
2.4. Scaling to Dedicated Servers Roles
For an awful lot of Exchange Server administrators,
we never have to worry about more than a single server because our
entire user community can fit nicely on to a single, combined function
server. At some point, though, you may be required to add dedicated
Exchange Server 2010 server roles to your organization. Here are some
scenarios that may require dedicated server roles:
The Active Directory site has more than one Mailbox server role.
The Hub Transport, Client Access, or Unified Messaging functions place too much overhead on a single server.
The requirements for high availability and/or load balancing demand more than one point of failure.
Exactly how many Client Access or Hub Transport
servers do you require? As with almost everything related to an
Exchange Server configuration, this depends largely on your user
community and the load they place on the server. Microsoft has a
guideline based on the number of processor cores that the Mailbox
server has versus the number of supporting Client Access or Hub
Transport server processor cores.
For Hub Transport servers, this ratio will be
different depending on whether or not the Hub Transport has antivirus
software on it. For Hub Transport servers without antivirus software,
you should plan to have one Hub Transport processor core for every
seven Mailbox server cores. If the Hub Transport server has antivirus
software scanning enabled, that ratio changes to one Hub Transport
processor core for every five Mailbox server cores.
The ratio is different for Client Access servers
partially because of the additional load placed on the Client Access
server by the RPC client access component. A typical environment should
have three Client Access CPU cores for every four Mailbox server cores.
If you have a dedicated Mailbox with eight CPU
cores, a dedicated Hub Transport server (with antivirus scanning
enabled) should have two CPU cores. The Client Access server should
have six CPU cores. This configuration provides no redundancy and does
not take into consideration any additional factors that might increase
processing load, such as enabling SSL, or many transport rules.