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

配置内存

本部分提供有关管理不同类型内存的信息。有关不同类型缓存的描述以及有关缓存调整的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的第 5  章 “Directory Server Data Caching”

填充缓存

填充缓存是指将数据填入缓存中,以使后续的目录服务器行为能反映出正常的操作性能,而不是提升的性能。如果希望在执行基准测试时获得可再现的结果,或者要测量和分析潜在的优化,则填充缓存非常有用。

请尽量避免主动填充缓存。在测量性能之前,让客户端与目录服务器之间的一般或典型交互操作来填充缓存。

可以在 http://www.slamd.com 找到用于填充数据库缓存的工具。

Procedure修改数据库缓存


注意 – 注意 –

修改缓存可能会严重影响服务器性能。修改缓存时请谨慎操作。


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

  1. 获取当前的数据库缓存级别。


    $ dsconf get-server-prop -h host -p port db-cache-size
  2. 更改数据库缓存级别。


    $ dsconf set-server-prop -h host -p port db-cache-size:size
    

    其中,size 可以用千兆字节 (G)、兆字节 (M)、千字节 (k) 或字节 (b) 表示。计算机必须支持所指定的大小。

Procedure监视数据库缓存

安装时的默认缓存级别适合于测试环境,而不适用于生产环境。进行调整时,您可能需要监视服务器的数据库缓存。

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

  1. 监视数据库缓存。


    $ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \
     -b "cn=monitor,cn=ldbm database,cn=plugins,cn=config" "(objectclass=*)"

    如果数据库缓存足够大,并且已进行了填充,则命中率 (dbcachehitratio) 应该很高。此外,读入的页面数 (dbcachepagein) 和写出的干净页面数 (dbcacheroevict) 应该很低。此处的“高”和“低”是相对于部署限制而言的。

Procedure监视条目缓存

进行调整时,您可能需要检查一个或多个后缀的条目缓存。可使用以下过程查看条目缓存级别。

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

  1. 监视条目缓存。


    $ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \
     -b "cn=monitor,cn=db-name,cn=ldbm database,cn=plugins,cn=config" "(objectclass=*)"

    如果后缀的条目缓存足够大(可以容纳该后缀中的大多数条目),并且已经填充了缓存,则命中率 (entrycachehitratio ) 应该很高。

    如果已经填充了缓存,您将会看到,当先前为空的条目缓存被填满时,条目缓存大小 (currententrycachesize) 将接近于最大条目缓存大小 (maxentrycachesize)。理想情况下,条目的数量 (currententrycachecount) 应该等于或非常接近于后缀中的条目总数 (ldapentrycachecount)。

Procedure修改条目缓存


注意 – 注意 –

修改缓存可能会严重影响服务器性能。修改缓存时请谨慎操作。


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

  1. 获取当前的条目缓存级别。


    $ dsconf get-suffix-prop -h host -p port suffix-DN entry-cache-count entry-cache-size
  2. 更改条目缓存计数。


    $ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-count:integer
    

    其中,integer 是要存储在缓存中的条目数。

  3. 更改条目缓存大小。


    $ dsconf set-suffix-prop -h host -p port suffix-DN entry-cache-size:size
    

    其中,size 是缓存大小,可以用千兆字节 (G)、兆字节 (M)、千字节 (k) 或字节 (b) 表示。计算机必须支持所指定的大小。

Procedure配置堆内存阈值

如果要限制 nsslapd 进程所使用的堆内存量,可以设置动态内存占用的阈值。当目录服务器在资源共享或资源稀少的计算机上运行时,可能需要设置此阈值。


注 –

只能在 Solaris 和 Linux 平台上设置此阈值。


有关调整内存大小的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Deployment Planning Guide》中的“Directory Server and Memory”

无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。


注 –

默认情况下,heap-high-threshold-sizeheap-low-threshold-size 属性为 undefined


  1. 设置堆内存高端阈值的最大值。


    $ dsconf set-server-prop -h host -p port heap-high-threshold-size:value
    

    其中,valueundefined 或内存大小,用千兆字节 (G)、兆字节 ( M)、千字节 (k) 或字节 (b) 表示。计算机必须支持所指定的大小。

    有关用于 heap-high-threshold-size 的值的建议,请参见 server(5dsconf) 手册页。

  2. 设置堆内存低端阈值的最大值(可选)。


    $ dsconf set-server-prop -h host -p port heap-low-threshold-size:value
    

    其中,valueundefined 或内存大小,用千兆字节 (G)、兆字节 ( M)、千字节 (k) 或字节 (b) 表示。计算机必须支持所指定的大小。

    有关用于 heap-low-threshold-size 的值的建议,请参见 server(5dsconf) 手册页。