Ruling Out Active Directory-Bound Problems

 

Exchange depends on the performance of the global catalog domain controllers. You can investigate CPU usage, as well as disk and memory bottlenecks, on your Active Directory servers.

Note

Most investigative techniques described in this article apply to global catalogs.

For each of the Exchange servers in the topology, use the counters listed in the following table to determine whether there is a slowdown in communicating with global catalogs.

Performance Counters on the Exchange Server that Indicate Global Catalog Problems

Counter Expected values

SMTP Server\Categorizer Queue Length

Indicates how well SMTP is processing LDAP lookups against global catalog servers.

This should be at or around zero unless the server is expanding distribution lists. When expanding distribution lists, this counter can occasionally go up higher. This is an excellent counter to tell you how healthy your global catalogs are. If you have slow global catalogs, you will see this counter go up.

  • The maximum value should be below 10.

MSExchangeDSAccess Process\LDAP Read Time (for all processes)

Shows the time (in ms) that an LDAP read request takes to be fulfilled.

  • The average value should be below 50 ms.

  • Spikes (maximum values) should not be higher than 100 ms.

MSExchangeDSAccess Process\LDAP Search Time (for all processes)

Shows the time (in ms) that an LDAP search request takes to be fulfilled.

  • The average value should be below 50 ms.

  • Spikes (maximum values) should not be higher than 100 ms.

For each of the global catalogs in the topology, use the counters listed in the following table to determine whether the global catalogs are experiencing performance degradations.

Performance Counters on the Global Catalog Servers that Indicate Problems

Counter Expected values

Processor\% Processor Time (_Total)

Indicates the percentage of time the processor is running non-idle threads.

You can use this counter to monitor the overall utilization of the processors or per-processor.

  • The average CPU utilization should be below 90% at all times.

System\Processor Queue Length

Indicates the number of threads in the processor queue.

There is a single queue for processor time, even on computers with multiple processors. This counter shows ready threads only, not threads that are currently running.

  • This counter should be less than 2.

Network Interface\Bytes Total/sec

Indicates the rate at which the network adapter is processing data bytes.

This counter includes all application and file data, in addition to protocol information such as packet headers.

  • For a 100-Mbps NIC, this counter should be below 6 MB/sec.

  • For a 1000-Mbps NIC, this counter should be below 60 MB/sec.

Network Interface\Packets Outbound Errors

Indicates the number of outbound network packets that could not be transmitted because of errors.

  • This counter should be zero (0) at all times.

PhysicalDisk(NTDS Database Disk)\Average Disk sec/Read

Indicates the average time (in seconds) that it takes to read data from the disk.

  • The average value should be below 20 ms.

  • Spikes (maximum values) should not be higher than 50 ms.

PhysicalDisk(NTDS Database Disk)\Average Disk sec/Write

Indicates the average time (in seconds) that it takes to write data to the disk.

  • The average value should be below 20 ms.

  • Spikes (maximum values) should not be higher than 50 ms.

PhysicalDisk(NTDS Log Disk)\Average Disk sec/Read

Indicates the average time (in seconds) that it takes to read data from the disk.

  • This value should be below 10 ms at all times.

PhysicalDisk(NTDS Log Disk)\Average Disk sec/Write

Indicates the average time (in seconds) that it takes to write data to the disk.

  • This value should be below 10 ms at all times.

PhysicalDisk(NTDS Database or Log Disks)\Average Disk Queue Length

Indicates the average number of both read and write requests that were queued for the selected disk during the sample interval.

  • The average value to be less than the number of spindles of the disk.

    If a SAN is being used, ignore this counter and concentrate on the latency counters:

    PhysicalDisk\Average Disk sec/Read and PhysicalDisk\Average Disk sec/Write.

Memory\Available Mbytes (MB)

Indicates the amount of physical memory (in MB) immediately available for allocation to a process or for system use.

The value of this counter is equal to the sum of memory assigned to the standby (cached), free, and zero page lists.

  • During the test, there must be 50 MB of memory available at all times.

Memory\Pages/sec

Indicates the rate at which pages are read from or written to disk when resolving hard page faults.

This counter is a primary indicator of the types of faults that cause system-wide delays. It includes pages retrieved to satisfy page faults in the file system cache. These pages are usually requested by applications.

  • This counter should be below 1,000 at all times.

Improving Active Directory Performance

The following list describes how you can improve Active Directory® directory service performance:

  • Offload distribution list and expansion of query-based distribution groups to dedicated global catalog and Exchange servers

    Expansion of distribution lists and query-based distribution groups severely affects the performance of a global catalog. You can improve performance by dedicating a global catalog for list expansions only.

  • Limit distribution list sizes and use nested distribution lists

    To minimize the effect of performance on the global catalog, design your Active Directory deployment such that distribution lists have a limit on their size (such as 500 users), and any additional increase of distribution list members is through the use of nested distribution lists. Generally, the use of nested distribution lists yields better performance than large, single-paged distribution lists.