Sun Java System Directory Server Enterprise Edition 6.2 管理指南

更改索引列表阈值

搜索速度缓慢可能是因为系统索引列表大小超过了索引列表阈值。索引列表阈值是每个索引键的最大值数。要确定是否已超过索引列表阈值大小,请检查访问日志。访问日志 RESULT 消息末尾的 notes=U 标志表明执行了未编制索引的搜索。前面的 SRCH 消息(属于同一个连接和操作)指定已使用的搜索过滤器。以下两行示例将跟踪一个未编制索引的搜索 cn=Smith,该搜索将返回 10,000 个条目。已从这些消息中删除了时间戳。


conn=2 op=1 SRCH base="o=example.com" scope=0 filter="(cn=Smith)"
conn=2 op=1 RESULT err=0 tag=101 nentries=10000 notes=U

如果您的系统经常超过索引列表阈值,请考虑增加阈值以提高性能。以下过程将使用 dsconf set-server-prop 命令修改 all-ids-threshold 属性。有关调整索引和 all-ids-threshold 属性的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.2 Reference》中的“Tuning Indexes for Performance”

Procedure更改索引列表阈值

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 调整索引列表阈值。

    可在以下任何级别上调整索引列表阈值:

    • 在实例级别:


      dsconf set-server-prop -h host -p port all-ids-threshold:value
      
    • 在后缀级别:


      dsconf set-suffix-prop -h host -p port suffix-DN all-ids-threshold:value
      
    • 在条目级别:


      dsconf set-index-prop -h host -p port suffix-DN all-ids-threshold:value
      
    • 在索引级别(按搜索类型):


      dsconf set-index-prop -h host -p port suffix-DN all-ids-threshold search-type:value
      

      其中 search-type 为以下任一选项:

      • eq-enabled 等同

      • pres-enabled 存在

      • sub-enabled 子串

      无法为近似索引配置 all-ids-threshold 属性。

    可以使用 DSCC 在索引级别(按搜索类型)设置阈值。有关详细信息,请参见目录服务器联机帮助。

  2. 重新生成后缀索引。

    请参见生成索引

  3. 如果已针对旧的所有 ID 阈值调整了数据库缓存大小,并且服务器有足够的物理内存,请考虑增加数据库缓存大小。

    可以按照所有 ID 阈值增幅的 25% 来增加数据库缓存大小。

    换句话说,如果将所有 ID 阈值从 4000 增加到 6000,则根据索引列表大小的增幅,可以将数据库缓存大小大致增加 12.5%。

    数据库缓存大小是使用属性 dbcachesize 设置的。在将更改应用于生产服务器之前,应该先根据经验找到最合适的大小。