Use the design information that you recorded in the Domain Controller Design Information worksheet to determine the minimum number of domain controllers that are required in a domain that is represented in a site, based on the number of users in that domain in that site. Use the graphs in Figure 4.5 and Figure 4.6 to help determine the minimum number of domain controllers required to support a given number of domain users; do this for each domain that is represented in each site.
Note
- If your environment supports more than 100,000 users in a single domain in a site, do not use these graphs to plan capacity for that domain in that site. Instead, consider using a consulting firm that has experience deploying Active Directory in complex environments. Be sure to test your configuration in a lab environment that is as close to your production environment as possible.
The graph in Figure 4.5 shows average CPU usage for Active Directory domain controllers in a network operating system (NOS) environment. The workload on domain controllers in an outward-facing, or extranet, role is different, and requires further testing in your lab environment. Figure 4.6 shows average CPU usage for global catalog servers in an Exchange environment. Both graphs reflect tests performed on Hewlett-Packard Proliant servers with the configurations shown in Table 4.2.
Note
- These graphs provide a good starting point for planning domain controller capacity. To obtain the most accurate results for your organization, however, it is important to test your specific configurations in a lab environment that simulates your production environment as closely as possible.
Table 4.2 Domain Controller Capacity Test Configurations
Configuration | Description | CPU | Memory |
---|---|---|---|
Configuration A |
HP Proliant DL360 G1 |
One Intel 800 MHz Pentium III with 256 KB L2 cache |
512 MB |
Configuration B |
HP Proliant DL320 G2 |
One 2.26 GHz Intel Pentium 4 with 512 KB L2 cache |
1 GB |
Configuration C |
HP Proliant DL380 G3 |
Two Intel 2.8 GHz Pentium 4 Xeon with Hyper-Threading technology and 512 KB L2 cache |
4 GB |
Configuration D |
HP Proliant DL580 G2 |
Four Intel 2.8 GHz Xeon MP with Hyper-Threading technology and 2 MB L3 cache |
4 GB |
To use the graphs in Figure 4.5 and Figure 4.6, perform the following s.gif:
- On the vertical axis, find the point that represents the percentage of CPU usage that is acceptable for operating your domain controllers. It is recommended that you operate your domain controllers at no more than 50% CPU usage to allow for sudden increases in workload.
- On the horizontal axis, find the number of users that each configuration can support at the chosen level of CPU usage.
- Select a configuration based on cost, availability, and other relevant factors. You might select more than one configuration.
- Determine how many domain controllers of the configuration you selected are required to support the number of users you have. Be sure to consider future growth when calculating the minimum number of domain controllers required.
- Repeat s.gif 1–4 for each domain in each site to determine the total number of domain controllers that your environment requires.
If your environment supports Exchange, consider how many of your domain controllers you will configure as global catalog servers, and add your results from the graph in Figure 4.6 to your results from the graph in Figure 4.5 to determine overall CPU usage.
Figure 4.5 Capacity Planning for Domain Controllers
Example 1
By using this graph, you determine that an existing domain controller with a single 800 MHz processor (Configuration A) is adequate to support 800 users at 50% CPU usage. However, if you expect to support a greater number of users in the near future, you might decide to either add another domain controller with the same configuration or replace your existing domain controller with a higher-end model.
Example 2
For an environment that must support 7,000 users, you might decide to deploy one domain controller with Configuration D or to deploy two domain controllers with Configuration C, with both domain controllers operating at 50% CPU usage.
Example 3
For an environment that must support 15,000 users and for which you decide you want your domain controllers to average 30% CPU usage (to accommodate spikes and future growth), the graph shows that, at 30% CPU usage, Configuration B can support about 1,300 users, Configuration C can support 2,200 users, and Configuration D can support 4,500 users. Based on these numbers, you decide to deploy twelve domain controllers with Configuration B, seven domain controllers with Configuration C, or four domain controllers with Configuration D. If you have budget constraints, you could deploy three domain controllers with Configuration D and one domain controller with Configuration C.
If domains in some sites in your environment have servers running Exchange 2000 or Exchange 2003, you must also consider the incremental load imposed on these servers (primarily on global catalog servers) within the site. In this case, add the results from the graph in Figure 4.6 to overall CPU usage when sizing global catalog servers for each domain in each site.
Figure 4.6 Capacity Planning for Global Catalog Servers in an Exchange Environment
Example 1
In this example, you decide (based on the data in Figure 4.5) that at 50% CPU usage, an 800 MHz server (Configuration A) is sufficient to support 800 users. To support Exchange in this site, you decide to make this domain controller a global catalog server. Based on the graph in Figure 4.6,, the additional workload due to Exchange accounts for almost 30% CPU usage by itself on a global catalog server with Configuration A. Combining that number with the results in Figure 4.5, your global catalog server would operate at 80% CPU usage (50% from Figure 4.5 plus 30% from Figure 4.6). In this case, you might decide to deploy two servers with Configuration A, or one higher-end server.
Example 2
In this example, you decide that at 50% CPU usage, two servers with Configuration C are sufficient to support 7,000 users. To support Exchange in this site, you need at least one global catalog server. You could convert the two Configuration C servers to global catalog servers and operate at 75% CPU usage (50% from Figure 4.5 plus 25% from Figure 4.6, keeping in mind that the numbers are halved because the number of servers is doubled).
However, if you want to sustain 50% average CPU usage, you could replace one Configuration C server with a Configuration D server. From Figure 4.5, you determine that the Configuration C domain controller can handle 3,500 users at 50% CPU usage, and the Configuration D domain controller can handle the remaining 3,500 users at 25% CPU usage. From Figure 4.6, you determine that the additional workload due to Exchange would consume 25% CPU for 7,000 users on the Configuration D domain controller. Therefore, you decide to convert the Configuration D domain controller to a global catalog server, with a total of 50% CPU usage (25% from Figure 4.5 plus 25% from Figure 4.6).
Example 3
In this example, you decide that at almost 30% CPU usage, four servers with Configuration D are sufficient to support 15,000 users.
To support Exchange in this site, you need at least one global catalog server. From Figure 4.6, you determine that the added Exchange workload for a Configuration D domain controller that is a global catalog server is an additional 60% CPU usage for 15,000 users. Accordingly, you might choose any of the following configurations:
- Add two additional Configuration D servers and convert all six domain controllers to global catalog servers. This configuration k.gif each server at 30% CPU usage.
- Use only the four Configuration D servers and convert all of them to global catalog servers. This configuration k.gif each server at about 45% CPU usage, which is higher than the 30% usage originally planned, but possibly acceptable if there are budget constraints.
- Use only the four Configuration D servers and convert just two of them to global catalog servers. This configuration k.gif the two global catalog servers at about 60% CPU usage, while the two other domain controllers remain at 30% CPU usage.
For information about how memory allocation affects domain controller performance, see “Determining Required Memory Allocation” later in this chapter.