Sun ONE 徽标     上一章      目录      索引      下一章     
Sun ONE Directory Server 5.2 安装和调整指南



第 9 章   管理其他资源的使用情况

在优化缓存大小、属性值索引和日志管理之后,调整 Directory Server 限制客户机应用程序可用的资源的方式,以及 Directory Server 使用系统资源的方式是有用的。重新配置甚至禁用作为 Directory Server 插件提供的某些功能也可能是有用的。

限制客户机可用的资源

默认配置可能允许客户机应用程序使用多于实际需要的 Directory Server 资源。这种情况可能会容许客户机应用程序通过以下手段意外或故意地滥用资源,从而对服务器性能产生负面影响:打开许多连接,然后让这些连接空闲或不使用;启动开销大且不必要的无索引搜索;或将大量未计划的二进制属性值存储在目录中。

在某些部署情况下,不建议修改默认配置。对于选择不更改本节提及的配置属性值的部署,可以考虑使用 Sun ONE Directory Proxy Server 软件在外部设置限制,以帮助防止拒绝服务攻击。

在某些部署情况下,Directory Server 的一个实例必须支持占用目录比较严重的客户机应用程序(如消息服务器),以及临时的目录客户机应用程序(如用户邮件应用程序)。在这种情况下,如 Sun ONE Directory Server 管理指南 中所述,请考虑使用基于绑定 DN 的资源限制,来提高针对占用目录比较严重的应用程序的单个限制。

表 9-1 中的建议讨论了针对于限制所有客户机应用程序可用资源的设置。这些限制不应用于目录管理员用户,因此请确保客户机应用程序没有作为目录管理员用户连接。

表 9-1    针对限制客户机可用资源的调整建议 

配置条目 DN 和属性

简短说明和调整建议

dn:cn=config

nsslapd-idletimeout

以秒为单位设置一个时间值,在该时间之后 Directory Server 关闭空闲客户机连接。这里的空闲是指连接保持打开状态,但没有请求任何操作。默认情况下,未设置时间限制。

某些应用程序(如消息服务器)可能会在通讯量比较低时打开连接池,该连接池仍然处于空闲状态,但是不应该关闭。理想情况下,此时可专门使用一个副本以支持应用程序。如果不可行,则应考虑使用基于绑定 DN 的限制。

在任何情况下,将此值设置得很高并不会关闭其他应用程序期望其保持打开状态的连接,但如果将此值设置得很低,则无法让连接保持空闲状态。应考虑使用 120 秒(2 分钟)作为优化测试的起点。

dn:cn=config

nsslapd-ioblocktimeout

设置以毫秒为单位的时间值,在该时间之后 Directory Server 关闭被阻塞的客户机连接。这里的被阻塞是指服务器被阻止向客户机发送输出,或者被阻止从客户机读取输入。

对于特别容易遭受拒绝服务攻击的 Directory Server 实例,应考虑将此值设置成比默认值 1,800,000 毫秒(30 分钟)低的值。

dn:cn=config,cn=ldbm  database,cn=plugins,cn=config

nsslapd-lookthroughlimit

设置候选条目的最大数量,在搜索期间要对这些条目执行检查以便进行匹配。

某些应用程序(如消息服务器)可能需要搜索整个目录。理想情况下,此时可专门使用一个副本以支持应用程序。如果不可行,则应考虑使用基于绑定 DN 的限制。

在任何情况下,都应考虑从默认值 5000 条目降低此值,但不能低于 nsslapd-sizelimit 的阈值。

dn:cn=config

nsslapd-maxbersize

以字节为单位设置传入消息的最大大小。Directory Server 会拒绝添加大于此限制的条目的请求。

如果您确信能够准确地预测目录数据的最大条目大小,则应考虑将此值从默认值 2097152 (2 MB) 更改为所需的最大目录条目的大小。

dn:cn=config

nsslapd-maxthreadsperconn

设置每个客户机连接的最大线程数。

某些应用程序(如消息服务器)可以打开一个连接池,而且可以在每个连接上发出多个请求。理想情况下,此时可专门使用一个副本以支持应用程序。如果不可行,则应考虑使用基于绑定 DN 的限制。

如果预测某些应用程序可以对每个连接执行许多请求,则应考虑从默认值 5 增大此值,但不能超过 10。通常不建议为每个连接指定 10 个以上的线程。

dn:cn=config

nsslapd-sizelimit

设置 Directory Server 响应搜索请求而返回的最大条目数。

某些应用程序(如消息服务器)可能需要搜索整个目录。理想情况下,此时可专门使用一个副本以支持应用程序。如果不可行,则应考虑使用基于绑定 DN 的限制。

在任何情况下,都应考虑将此值降为比默认值 2000 低的值。

dn:cn=config

nsslapd-timelimit

设置 Directory Server 用于处理一个搜索请求的最大秒数。

某些应用程序(如消息服务器)可能需要执行非常大的搜索。理想情况下,此时可专门使用一个副本以支持应用程序。如果不可行,则应考虑使用基于绑定 DN 的限制。

在任何情况下,都应将此值设置得尽可能低,同时还应满足部署要求。对于许多部署,默认值 3600 秒(1 小时)稍大,而实际不需要这么大。应考虑使用 600 秒(10 分钟)作为优化测试的起点。

有关单个配置属性的详细信息,请参阅 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 参考手册


上一章      目录      索引      下一章     
版权所有 2003 Sun Microsystems, Inc. 保留所有权利。