![]() |
Sun ONE Directory Server 5.2 安装和调整指南 |
在优化缓存大小、属性值索引和日志管理之后,调整 Directory Server 限制客户机应用程序可用的资源的方式,以及 Directory Server 使用系统资源的方式是有用的。重新配置甚至禁用作为 Directory Server 插件提供的某些功能也可能是有用的。
限制客户机可用的资源
默认配置可能允许客户机应用程序使用多于实际需要的 Directory Server 资源。这种情况可能会容许客户机应用程序通过以下手段意外或故意地滥用资源,从而对服务器性能产生负面影响:打开许多连接,然后让这些连接空闲或不使用;启动开销大且不必要的无索引搜索;或将大量未计划的二进制属性值存储在目录中。
在某些部署情况下,不建议修改默认配置。对于选择不更改本节提及的配置属性值的部署,可以考虑使用 Sun ONE Directory Proxy Server 软件在外部设置限制,以帮助防止拒绝服务攻击。
在某些部署情况下,Directory Server 的一个实例必须支持占用目录比较严重的客户机应用程序(如消息服务器),以及临时的目录客户机应用程序(如用户邮件应用程序)。在这种情况下,如 Sun ONE Directory Server 管理指南 中所述,请考虑使用基于绑定 DN 的资源限制,来提高针对占用目录比较严重的应用程序的单个限制。
表 9-1 中的建议讨论了针对于限制所有客户机应用程序可用资源的设置。这些限制不应用于目录管理员用户,因此请确保客户机应用程序没有作为目录管理员用户连接。
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册 。
使用可用的系统资源
根据部署要求,可以选择调整 Directory Server 实例使用系统和网络资源的方式、管理访问控制的方式,以及配置服务器插件的方式。表 9-2 中的建议讨论了针对系统资源的设置。
表 9-2    针对配置系统资源的使用情况的调整建议
属性(dn:cn=config 时)
简短说明和调整建议
nsslapd-listenhost
设置用于 Directory Server 进行监听的 IP 接口的主机名。此属性为单值。
默认行为是在所有接口上进行监听。默认行为适合于使用冗余网络接口以提高可用性和吞吐量的高容量部署。
在多宿主系统上部署时,或者当在通过单独的接口支持每个协议的系统上只监听 IPv4 或 IPv6 通信时,应考虑设置此值。当使用 SSL 时,应考虑设置 nsslapd-securelistenhost。
nsslapd-maxdescriptors
设置 Directory Server 试图使用的文件描述符的最大数量。
Directory Server 使用文件描述符处理客户机连接,并在内部维护文件。如果错误日志指出 Directory Server 有时由于没有足够的文件描述符可用而停止监听新连接,则增大此属性的值可以增大 Directory Server 能够同时处理的客户机连接的数量。
如果已经如“文件描述符”中所述增大了系统上可用的文件描述符的数量,则应相应地设置此属性的值。此属性的值应该小于或等于系统上可用的文件描述符的最大数量。
nsslapd-nagle
设置是否在套接字级别延迟发送 TCP 数据包。
保留 off(默认值),以便在将结果发送到客户机应用程序时防止协议级别的延迟。
nsslapd-reservedescriptors
设置 Directory Server 所维护的用于管理索引、复制以及其他内部处理的文件描述符的数量。Directory Server 不使用这样的文件描述符来处理客户机连接。
如果下列所有情况皆为真,则应考虑将此属性的值设置为大于默认值 64。
- Directory Server 复制到 10 个以上的使用者或 Directory Server 维护 30 个以上的索引文件。
- Directory Server 处理大量的客户机连接。
- 错误日志中的消息表明 Directory Server 已为与客户机连接不相关的操作用完了文件描述符。
注意,随着预留的文件描述符的数量增大,处理客户机连接可用的文件描述符的数量会减少。如果增大此属性的值,则应考虑增大系统上可用的文件描述符的数量,并且增大 nsslapd-maxdescriptors 的值。
如果决定更改此属性,则针对要预留的文件描述符数量的初步估计,应尝试将 nsslapd-reservedescriptors 的值设置为:
20 + 4 *(数据库的数量)+(索引的总数)+ (nsoperationconnectionslimit 的值)*(链接后端的数量) + ReplDescriptors + PTADescriptors + SSLDescriptors
其中,如果使用复制,则 ReplDescriptors = 供应商副本的数量 + 8;如果 Pass Through Authentication (PTA) 插件已启用,则 PTADescriptors 为 3(否则为 0);如果使用 SSL,则 SSLDescriptors 为 5(否则为 0)。
除非实例被配置为每个后缀使用多个数据库,否则,数据库的数量与实例的后缀数量相同。通过经验测试对估计进行验证。
nsslapd-securelistenhost
设置用于 Directory Server 进行监听 SSL 连接的 IP 接口的主机名。此属性为单值。
默认行为是在所有接口上进行监听。以对待 nsslapd-listenhost 相同的方式考虑此属性。
nsslapd-threadnumber
设置 Directory Server 使用的线程数。
如果下列条件皆为真,则应考虑调整此属性的值:
- 客户机应用程序执行许多费时的操作(如同时进行更新或复杂的搜索)。
- Directory Server 支持许多同时发生的客户机连接。
- Directory Server 处理 5,000,000 个以上的条目。
多处理器系统能够比单处理器系统维持更大的线程池。作为优化此属性值时的初步估计,可以使用两倍处理器的数量或 20 + 同时更新的数量。如表 9-1 中所讨论,还可考虑调整每个客户机连接的最大线程数 nsslapd-maxthreadsperconn。处理客户机连接的这些线程的最大数量不能超过系统上可用的文件描述符的最大数量。在某些情况下,减少而不是增加该属性的值将很有用。
通过经验测试对估计进行验证。结果不仅取决于特定的部署情况,而且还取决于基础系统。
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册 。
管理访问控制
Directory Server 目前为访问控制指令 (ACI) 提供性能和可伸缩性改进(如增强的内存管理以及对宏 ACI 的支持)。虽然有这些改进,但是 Directory Server 还会使用大量的系统资源来评估复杂 ACI。因此,复杂 ACI 的广泛使用会给性能带来负面影响。
宏 ACI 帮助您限制所使用的 ACI 的数量。通过限制 ACI 的数量,可使访问控制更易于管理,并可减少系统上的负载。宏是表示 ACI 中的 DN(或 DN 的部分)的占位符。可以在 ACI 目标、ACI 绑定规则中或同时在这两者中使用宏。当 Directory Server 接收请求时,它会对照结果操作所针对的资源检查哪些 ACI 宏匹配。如果一个宏匹配,Directory Server 就将它替换为实际 DN 的值。然后 Directory Server 对 ACI 进行常规评估。有关 ACI 的详细信息,请参阅 Sun ONE Directory Server 管理指南。
测试结果已经表明,Directory Server 能够支持 50,000 个以上的 ACI。各种部署情况对性能的影响当前尚在分析中。应尽可能将 ACI 的数量设置得小一点,以限制对性能造成的负面影响,并降低管理访问控制的复杂性。对于涉及复杂 ACI 环境的部署,应考虑使用 Sun ONE Directory Proxy Server 提供某些访问控制功能。
配置服务器插件
Directory Server 使用插件来实现许多关键功能(如访问控制、复制、语法检查和属性唯一性)。在特定部署的环境中,您可能会发现重新配置某些插件是很有用的。表 9-3 中的建议讨论了针对某些标准插件的设置。
表 9-3    针对某些标准插件的调整建议
名称和 DN
简短说明和调整建议
7 位检查插件
dn:cn=7-bit check,cn=plugins,cn=config
允许 Directory Server 检查属性是否为 7 位干净值。换言之,提供的属性值只包含适合 7 位编码的那些字符。
如果基础结构设计用于支持较宽的编码(如日语字符),则可以选择禁用此插件(默认为 on)。
遗留复制插件
dn:cn=Legacy Replication Plugin,cn=plugins,cn=config
允许 Directory Server 作为 4.x 供应商的使用者来工作。
除非您希望在更新期间使用 Directory Server 作为 4.x 供应商的使用者,否则请关闭插件(默认设置为 on,以便在需要 4.x 复制功能时使用)。
引荐完整性插件
dn:cn=referential integrity postoperation,cn=plugins,cn=config
允许 Directory Server 确保保持相关条目之间的关系。例如,当从目录中删除用户条目或重命名用户条目时,该用户所属的组便会按需要更新,而无需手动干预。
在所有主服务器上启用并配置此插件。
如果选择启用该插件,则请为配置为与该插件一起使用的所有属性创建等同性索引。该插件在搜索要更新的条目时使用此类索引。若没有它所使用属性的等同性索引,则该插件必须执行开销大的无索引搜索,从而会给性能带来负面影响。
有关配置和启用该插件的说明,请参阅 Sun ONE Directory Server 管理指南。
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册 。