9.8. 管理缓存设置
目录服务器使用以下缓存:
- 条目缓存,其中包含单个目录条目。
- 可区分名称(DN)缓存用于将 DN 和相对可分辨名称(RDN)与条目相关联。
-
数据库缓存,其中包含数据库索引文件 3.0.
db
文件。
为了提高性能,所有缓存大小都必须能够存储其所有记录。如果不使用推荐的自动大小功能,且没有足够可用的 RAM,请按前面显示的顺序将可用内存分配给缓存。
默认情况下,目录服务器使用自动大小功能来优化在实例启动时在服务器的硬件资源和条目缓存的大小。
红帽建议使用自动大小功能,而不是手动设置缓存大小。
cn=config,cn=ldbm database,cn=plugins,cn=config
条目中的以下参数控制自动大小:
nsslapd-cache-autosize
这些设置控制是否为数据库和条目缓存启用自动大小。启用自动大小:
-
对于数据库和条目缓存,如果
nsslapd-cache-autosize
参数设置为大于0
的值。 -
对于数据库缓存,如果
nsslapd-cache-autosize
和nsslapd-dbcachesize
参数设置为0。
-
对于条目缓存,如果
nsslapd-cache-autosize
和nsslapd-cachememsize
参数设置为0。
-
对于数据库和条目缓存,如果
nsslapd-cache-autosize-split
- 该值设定目录服务器用于数据库缓存的 RAM 百分比。服务器对条目缓存使用其余百分比。
- 将 1.5 GB RAM 用于数据库缓存不会提高性能。因此,目录服务器将数据库缓存限制为 1.5 GB。
默认情况下,Directory 服务器使用以下默认值:
-
nsslapd-cache-autosize: 25
-
nsslapd-cache-autosize-split: 25
-
nsslapd-dbcachesize: 1,536 MB
使用这些设置时,使用系统可用 RAM 的 25%(nsslapd-cache-autosize
)。从此内存中,服务器将 25% 用于数据库缓存(nsslapd-cache-autosize-split
),剩余的 75% 用于条目缓存。
根据可用 RAM,这会产生以下缓存大小:
GB 的可用 RAM | 数据库缓存大小 | 条目缓存大小 |
---|---|---|
1 GB | 64 MB | 192 MB |
2 GB | 128 MB | 384 MB |
4 GB | 256 MB | 768 MB |
8 GB | 512 MB | 1,536 MB |
16 GB | 1,024 MB | 3,072 MB |
32 GB | 1,536 MB | 6,656 MB |
64 GB | 1,536 MB | 14,848 MB |
128 GB | 1,536 MB | 31,232 MB |
9.8.2. 所需的缓存大小 复制链接链接已复制到粘贴板!
dsconf monitor dbmon
命令可让您在运行时监控缓存统计信息。要显示统计信息,请输入:
(可选)将 -b back_end
or -x
选项传给命令,以显示特定后端或索引的统计信息。
如果您的缓存足够大小,则 DN Cache Count
中的数字与 Cache Count
后端条目中的值匹配。另外,如果所有条目和 DN 都位于其各自缓存中,则 Entry Cache Count
count 值与 DN Cache Count
值匹配。
示例输出显示:
只有 2.2% 可用数据库缓存保留:
Database Cache: ... - Free Space: 397.31 KB - Free Percentage: 2.2%
Database Cache: ... - Free Space: 397.31 KB - Free Percentage: 2.2%
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 但是,为了高效操作,至少需要 15% 的可用数据库缓存。要确定数据库缓存的最佳大小,请计算
/var/lib/dirsrv/slapd- <instance_name> /db/
目录(包括子目录和更改日志数据库)中所有以前db 文件大小,并为开销添加 12%。要设置数据库缓存,请参阅 使用命令行设置数据库缓存大小。
userroot
数据库的 DN 缓存很好选择:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 数据库的 DN 缓存包含 100000 记录、69.% 的缓存可用,并且内存中的每个 DN 都需要 130 字节。
要设置 DN 缓存,请参阅 使用命令行设置 DN 缓存大小。
userroot
数据库的条目缓存的统计信息表示应提高条目缓存值以提高性能:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 条目缓存包含在这个数据库 50000 记录中,只保留 2 Kilobytes 的可用空间。要启用目录服务器缓存所有 100000 DN,缓存必须至少增加到 890 MB (100000 DNs * 8,9 KB average entry size)。但是,红帽建议将最低大小舍入到下一个最高 GB,并加倍结果。在本例中,条目缓存应设置为 2 Gigabytes。
要设置条目缓存,请参阅 使用命令行设置条目缓存大小。
9.8.3. 使用命令行设置数据库缓存大小 复制链接链接已复制到粘贴板!
数据库缓存包含数据库的 Berkeley 数据库索引文件,这意味着用于数据库属性索引的所有 5.2. db
和其他文件。这个值被传递给 Berkeley DB API 功能 set_cachesize ()
。这个缓存大小对 Directory 服务器性能的影响低于条目缓存大小,但如果设置条目缓存大小后有可用的 RAM,请增加分配给数据库缓存的内存量。
流程
禁用自动缓存调整
dsconf <instance_name> backend config set --cache-autosize=0
# dsconf <instance_name> backend config set --cache-autosize=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 手动设置数据库缓存大小:
dsconf <instance_name> backend config set --dbcachesize=268435456
# dsconf <instance_name> backend config set --dbcachesize=268435456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以字节为单位指定数据库缓存大小。在本例中,命令会将数据库缓存设置为 256 MB。
重启实例:
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.4. 使用 Web 控制台设置数据库缓存大小 复制链接链接已复制到粘贴板!
数据库缓存包含数据库的 Berkeley 数据库索引文件,这意味着用于数据库属性索引的所有 5.2. db
和其他文件。这个值被传递给 Berkeley DB API 功能 set_cachesize ()
。这个缓存大小对 Directory 服务器性能的影响低于条目缓存大小,但如果设置条目缓存大小后有可用的 RAM,请增加分配给数据库缓存的内存量。
先决条件
- 在 web 控制台中登录到实例。
流程
-
导航到
。 - 取消选择 Automatic Cache Tuning。
- 单击 。
-
在 Database Cache Size 字段中输入数据库缓存大小(以字节为单位),如
268435456
。 - 单击 。
- 点右上角的 Restart Instance。 ,然后选择
9.8.5. 使用命令行设置 DN 缓存大小 复制链接链接已复制到粘贴板!
目录服务器使用 entryrdn
索引将可分辨名称(DN)和相对可分辨名称(RDN)与条目关联。它使服务器能够高效地重命名子树、移动条目和执行 moddn
操作。服务器使用 DN 缓存来缓存 entryrdn
索引的内存中表示,以避免昂贵的文件 I/O 和转换操作。
如果不使用自动调整功能,为获得最佳性能,尤其是在重命名条目和移动操作的情况下,请将 DN 缓存设置为可让目录服务器缓存数据库中的所有 DN 的大小。
如果 DN 没有存储在缓存中,Directory 服务器会从 entryrdn.db
索引数据库文件读取 DN,并将 DN 从磁盘上的格式转换为内存中格式。存储在缓存中的 DNS 可让服务器跳过磁盘 I/O 和转换步骤。
流程
显示后缀及其对应的后端:
dsconf <instance_name> backend suffix list
# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令显示每个后缀旁的后端数据库名称。在下一步中需要后缀的数据库名称。
设置 DN 缓存大小:
dsconf <instance_name> backend suffix set --dncache-memsize=20971520 userRoot
# dsconf <instance_name> backend suffix set --dncache-memsize=20971520 userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将
userRoot
数据库的 DN 缓存设置为 20MB。重启实例:
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.6. 使用 Web 控制台设置 DN 缓存大小 复制链接链接已复制到粘贴板!
目录服务器使用 entryrdn
索引将可分辨名称(DN)和相对可分辨名称(RDN)与条目关联。它使服务器能够高效地重命名子树、移动条目和执行 moddn
操作。服务器使用 DN 缓存来缓存 entryrdn
索引的内存中表示,以避免昂贵的文件 I/O 和转换操作。
如果不使用自动调整功能,为获得最佳性能,尤其是在重命名条目和移动操作的情况下,请将 DN 缓存设置为可让目录服务器缓存数据库中的所有 DN 的大小。
如果 DN 没有存储在缓存中,Directory 服务器会从 entryrdn.db
索引数据库文件读取 DN,并将 DN 从磁盘上的格式转换为内存中格式。存储在缓存中的 DNS 可让服务器跳过磁盘 I/O 和转换步骤。
先决条件
- 在 web 控制台中登录到实例。
流程
-
导航到
。 - 在 DN Cache Size 字段中输入 DN 缓存大小(以字节为单位)。
- 单击 。
- 点右上角的 Restart Instance。 ,然后选择
9.8.7. 使用命令行设置条目缓存大小 复制链接链接已复制到粘贴板!
目录服务器使用条目缓存来存储搜索和读取操作期间使用的目录条目。将条目缓存设置为可让 Directory 服务器存储所有记录的大小,对搜索操作具有最高的性能影响。
如果没有配置条目缓存,Directory 服务器会从 id2entry.db
数据库文件读取条目,并将可区别的名称(DN)从磁盘上的格式转换为内存中格式。存储在缓存中的条目可让服务器跳过磁盘 I/O 和转换步骤。
流程
禁用自动缓存调整:
dsconf <instance_name> backend config set --cache-autosize=0
# dsconf <instance_name> backend config set --cache-autosize=0 Successfully updated database configuration
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示后缀及其对应的后端:
dsconf <instance_name> backend suffix list
# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令显示每个后缀旁的后端数据库名称。在下一步中需要后缀的数据库名称。
为数据库设置条目缓存大小(以字节为单位):
dsconf <instance_name> backend suffix set --cache-memsize=2147483648 userRoot
# dsconf <instance_name> backend suffix set --cache-memsize=2147483648 userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将
userRoot
数据库的条目缓存设置为 2GB。重启实例:
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.8. 使用 Web 控制台设置条目缓存大小 复制链接链接已复制到粘贴板!
目录服务器使用条目缓存来存储搜索和读取操作期间使用的目录条目。将条目缓存设置为可让 Directory 服务器存储所有记录的大小,对搜索操作具有最高的性能影响。
如果没有配置条目缓存,Directory 服务器会从 id2entry.db
数据库文件读取条目,并将可区别的名称(DN)从磁盘上的格式转换为内存中格式。存储在缓存中的条目可让服务器跳过磁盘 I/O 和转换步骤。
先决条件
- 在 web 控制台中登录到实例。
流程
-
导航到
。 - 禁用自动 缓存调优设置。
- 单击 。
- 点右上角的 Restart Instance。 ,然后选择
-
导航到
。 - 在 Entry Cache Size 字段中设置 数据库缓存的大小。
- 单击 。
- 点右上角的 Restart Instance。 ,然后选择