重要
以下是优化服务器硬件以支持Active Directory工作负荷的主要建议和注意事项的摘要,关于这方面的更详细内容可以参阅《Active Directory 域服务容量规划》文章。 强烈建议读者查看 Active Directory 域服务的容量规划 ,以获取对这些建议的更深入的技术理解和影响。
验证 LDAP 查询
验证 LDAP 查询是否符合创建高效的查询建议。
MSDN 上提供了有关如何正确编写、构建和分析查询以用于 Active Directory 的广泛文档。 有关详细信息,请参阅 创建更高效 Microsoft 活动 Directory-Enabled 应用程序。
优化 LDAP 页面大小
当返回包含多个对象的结果以响应客户端请求时,域控制器必须暂时将结果集存储在内存中。 增加页面大小将导致更多的内存使用,并且可能会不必要地使缓存中的项目老化。 在这种情况下,默认设置是最佳的。 在几个情况下,建议增加页面大小设置。 除非明确标识为不足,否则建议使用默认值。
当查询具有许多结果时,可能会遇到并发执行的类似查询的限制。 发生此情况时,LDAP 服务器可能会耗尽称为 Cookie 池的全局内存区域。 可能需要增加池的大小,如 LDAP 服务器 Cookie 的处理方式中所述。
若要优化这些设置,请参阅 Windows Server 2008,较新的域控制器在 LDAP 响应中仅返回 5000 个值。
确定是否添加索引
搜索筛选器中具有属性名称的对象时,索引属性非常有用。 索引可以减少评估筛选器时必须访问的对象数。 但是,这减少了写入作的性能,因为在修改或添加相应属性时必须更新索引。 它还会增加目录数据库的大小,但好处往往超过存储成本。 日志记录可用于查找成本高昂且效率低下的查询。 标识后,请考虑为相应查询中使用的某些属性编制索引以提高搜索性能。 有关 Active Directory 搜索工作原理的详细信息,请参阅 Active Directory 搜索的工作原理。
在以下情况下,添加索引有优势
请求数据的客户端负载正在生成大量 CPU 使用率,并且无法更改或优化客户端查询行为。
由于未编制索引的属性,客户端负载在服务器上生成大量磁盘 I/O,并且无法更改或优化客户端查询行为。
由于缺少涵盖索引,查询需要很长时间,并且未在客户端可接受的时间范围内完成。
大量持续时间较高的查询会导致 ATQ LDAP 线程消耗和耗尽。 监视以下性能计数器:
NTDS\请求延迟 – 这取决于请求处理所需的时间。 Active Directory 在 120 秒后超时请求(默认),但大多数运行速度应该快得多,并且运行时间极长的查询应该隐藏在总数中。 查找此基线中的更改,而不是绝对阈值。
注释
此处的高值还可以表明将请求转发到其他域和进行 CRL 检查的延迟。
NTDS\估计队列延迟 – 最好是接近 0,以实现最佳性能,这意味着请求不会花费等待服务的时间。
可以使用以下一种或多种方法检测这些方案:
性能监视器中的 Active Directory 诊断数据收集器集 (Son of SPA: AD Data Collector Sets in Win2008 and beyond)
使用“(objectClass=*)”(使用祖先索引)以外的任何筛选器进行搜索。
其他索引注意事项
确保在优化完查询后,创建索引是解决问题的正确方法。 正确调整硬件大小非常重要。 仅当正确的修补程序是为属性编制索引,而不是试图混淆硬件问题时,才应添加索引。
索引会增加数据库的大小,至少会增加被索引的属性的总大小。 因此,可以通过采用属性中数据的平均大小乘以将填充属性的对象数来评估数据库增长的估计值。 通常,数据库大小大约增加 1%。 有关详细信息,请参阅 数据存储的工作原理。
如果搜索行为主要在组织单位级别完成,请考虑为容器化搜索编制索引。
元组索引大于普通索引,但估计大小要困难得多。 使用正常的指数规模估计值作为增长下限,最大为 20%。 有关详细信息,请参阅 数据存储的工作原理。
如果搜索行为主要在组织单位级别完成,请考虑为容器化搜索编制索引。
需要元组索引来支持中间搜索字符串和末尾搜索字符串。 初始搜索字符串不需要元组索引。
初始搜索字符串 – (samAccountName=MYPC*)
中间搜索字符串 - (samAccountName=*MYPC*)
最终搜索字符串 – (samAccountName=*MYPC$)
创建索引将在生成索引时生成磁盘 I/O。 此作在优先级较低的后台线程上完成,传入请求优先于索引生成。 如果环境容量规划已正确完成,则这应该是透明的。 但是,写入密集型方案或域控制器存储上的负载未知的环境可能会降低客户端体验,并且应该在非工作时间完成。
对复制流量的影响是最小的,因为索引是在本地生成的。
有关详细信息,请参阅以下内容: