身份管理性能调优
大约 43 分钟
身份管理性能调优
来源:官方文档 原始多页入口:身份管理性能调优 内容规模:约 32,775 字符,50 个章节标题,109 个命令/代码块,17 条提示框
阅读提要
- 副标题:优化 IdM 服务,如目录服务器、KDC 和 SSSD,以提高性能
- 摘要:红帽调优身份管理(IdM),以便在大多数部署中表现良好。然而,在特定场景中,调优 IdM 组件(如复制协议、目录服务器、Kerberos 密钥分发中心(KDC)或系统安全服务守护进程(SSSD))非常有用。
- 主要章节:优化 IdM 服务,如目录服务器、KDC 和 SSSD,以提高性能;对红帽文档提供反馈;第 1 章 调优 IdM 时的重要注意事项;第 2 章 硬件建议;第 3 章 IdM 服务器性能建议;第 4 章 IdM 中的故障转移、负载平衡和高可用性;第 5 章 优化副本拓扑;第 6 章 调整搜索大小和时间限制;第 7 章 调整 IdM 目录服务器性能;第 8 章 调整 KDC 的性能;第 9 章 为大型 IdM-AD 信任部署调整 SSSD 性能;第 10 章 调优 WSGI 进程
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
优化 IdM 服务,如目录服务器、KDC 和 SSSD,以提高性能
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 调优 IdM 时的重要注意事项
- 要点:对身份管理组件服务进行微调,以适用于大多数部署的最佳方式。作为系统管理员,您可能想要调整 IdM 服务的性能,以适应特定环境的需求。
- 要点:重要注意事项
- 列表:每个 IdM 部署可能有不同的硬件、软件、联网、数据、工作负载和其他因素,因此每个部署都可能有其唯一性。适合一个环境的调整可能并不适合于另一个环境。
- 列表:性能升级是一个迭代的实验过程。一次只调整一个变量,并监控其对您的环境的影响。在通过一个变量达到预期的结果后,调整下一个变量,同时继续监控之前调整的性能。
第 2 章 硬件建议
- 要点:对于性能调整,RAM 是最重要的硬件。请确定您的系统有足够可用 RAM。
- 要点:典型的 RAM 要求是:
- 列表:对于 10,000 个用户和 100 个组:至少 4 GB RAM 和 4 GB 交换(swap)空间
- 列表:对于 100,000 个用户和 50,000 个组:至少 16 GB RAM 和 4 GB swap 空间
- 注意:注意 基本用户条目或带有证书的简单主机条目大约是 5-10 kB 大小。
第 3 章 IdM 服务器性能建议
- 要点:为确保稳定的性能,身份管理(IdM)对您可同时添加或注册到 IdM 服务器的用户和客户端的最大数量强制实施了限制。
- 要点:其他资源
- 列表:使用批处理执行 IdM API 命令
- 表格样本(共 5 行):
- 操作 | 描述 | Number
- 客户端注册 | 在注册开始失败前,您可以同时注册到 IdM 服务器的最大 IdM 客户端数。 | 130
- 添加用户 | 在无法添加用户前,您可以从不同的 IdM 客户端使用 ipa user-add 命令同时添加的最大用户数。 您可以使用 IdM API batch 命令在相同的时间内添加更多用户。我们建议以 100 个用户为一批添加用户。 | 325
- 客户端身份验证 | 身份验证开始失败前可以同时验证的 IdM 客户端的最大数。 | 800
第 4 章 IdM 中的故障转移、负载平衡和高可用性
- 要点:身份管理(IdM)为 IdM 客户端提供故障转移机制,并为 IdM 服务器提供负载平衡和高可用性功能。IdM 客户端和 SSSD 会自动选择可用的服务器和服务器端架构,通过使用多个副本提供高可用性。
4.1. 客户端故障转移功能
- 要点:客户端故障转移是 IdM 客户端上的内置 SSSD 机制,可自动决定并连接到可用的 IdM 服务器,以维护持续验证和访问。
- 要点:故障转移机制使用 DNS SRV 记录,以便在主服务器不可用时在 IdM 服务器间发现和切换。
- 注意:注意 SSSD 从 DNS 服务器查询 SRV 记录。默认情况下,在尝试查询另一个 DNS 服务器前,SSSD 会等待 6 秒,以得到 DNS 解析器的回复。如果所有 DNS 服务器都不可访问,域将继续在离线模式下运行。您可以使用 dns_resolver_timeout 选项增加客户端等待 DNS 解析器回复的时间。
4.2. IdM 服务器端负载平衡和高可用性
- 要点:您可以通过安装多个 IdM 副本来实现 IdM 中的负载平衡和高可用性,该副本在 IdM 域中提供主动/主动服务可用性。这种机制可在客户端之间确保高服务可用性和固有负载平衡。
- 列表:如果您的网络分布在不同的地理位置,可以通过为每个数据中心配置多个 IdM 副本来缩短 IdM 客户端和最快的服务器间的路径。
- 列表:红帽支持最多有 60 个副本的环境。
- 列表:IdM 复制机制提供主动/主动服务可用性:所有 IdM 副本的服务都同时可用。
- 注意:注意 红帽建议不要将 IdM 和其他负载均衡或高可用性(HA)软件结合使用。 许多第三方高可用性解决方案假定使用主动/被动模式,并可能导致 IdM 服务出现不必要的中断。其他解决方案使用虚拟 IP 或每个集群服务使用一个主机名。所有这些方法通常不适用于 IdM 所提供的服务。另外,它们与 Kerberos 的集成效果也不好,从而降低了部署的整体安全性和稳定性。
4.3. 配置 SSSD 客户端故障切换
- 要点:在 IdM 客户端上配置系统安全服务守护进程(SSSD)来管理服务器故障切换。
- 要点:您可以通过两种方式设置服务器连接首选项:启用自动 DNS SRV 记录发现或手动指定优先级的主和备份服务器列表。
- 列表:在 IdM 客户端机器上具有 root 权限。
- 列表:您知道 IdM 服务器的完全限定域名(FQDN)。
- 列表:如果您使用 DNS 方法,请确保正确配置了 IdM 服务器的 DNS SRV 记录。
- 列表:打开 /etc/sssd/sssd.conf 文件:
- 列表:使用以下方法之一指定服务器列表: 将 srv 指定为 ipa_server 参数中的第一个值,后跟主服务器 FQDN 的优先顺序列表。然后,在 ipa_backup_server 参数中列出任何备份服务器 FQDN。例如: [domain/<idm_domain_name>] id_provider = ipa ipa_server = srv, <primary_idm_server1>, <primary_idm_server2> ipa_backup_server = <backup_idm_server1>, <backup_idm_server2> ... ipa_backup_server 不支持 srv …
- 列表:将 srv 指定为 ipa_server 参数中的第一个值,后跟主服务器 FQDN 的优先顺序列表。然后,在 ipa_backup_server 参数中列出任何备份服务器 FQDN。例如: [domain/<idm_domain_name>] id_provider = ipa ipa_server = srv, <primary_idm_server1>, <primary_idm_server2> ipa_backup_server = <backup_idm_server1>, <backup_idm_server2> ... ipa_backup_server 不支持 srv 选项。
- 命令/配置摘录:
[domain/<idm_domain_name>] id_provider = ipa ipa_server = _srv_, <primary_idm_server1>, <primary_idm_server2> ipa_backup_server = <backup_idm_server1>, <backup_idm_server2> ...
[domain/<idm_domain_name>] id_provider = ipa ipa_server = <primary_idm_server1>, <primary_idm_server2> ipa_backup_server = <backup_idm_server1>, <backup_idm_server2> ...4.4. IdM 服务器配置和故障转移参数
- 要点:/etc/sssd/sssd.conf 中的 ipa_server 参数控制系统安全服务守护进程(SSSD)客户端故障转移和服务器解析。使用 DNS SRV 记录或手动地址指定服务器。
- 要点:服务器配置选项
- 列表:指定 srv 选项后,SSSD 检索按首选顺序排序的 IdM 服务器的列表。如果主服务器离线,IdM 客户端上的 SSSD 服务会自动连接到另一个可用的 IdM 服务器。
- 列表:主服务器在 ipa_server 参数中指定。SSSD 尝试首先连接到主服务器,只有在没有主服务器可用时才切换到备份服务器。
- 列表:备份服务器不支持 srv 选项。
- 列表:删除 srv 条目和列出服务器,如 ipa_server = idm_server1.example.com,idm_server2.example.com,绕过 DNS 查找。此配置可确保客户端只使用列出的首选项顺序连接到指定的 IdM 服务器。
- 表格样本(共 3 行):
- 参数 | 默认值 | 描述
- failover_primary_timeout | 31 秒 | 尝试 SSSD 的时间间隔,在连接到备份服务器时重新连接到其中一个主服务器。
- dns_resolver_timeout | 6 秒 | 客户端在尝试查询另一个 DNS 服务器前等待来自 DNS 解析器的回复。如果所有 DNS 服务器都不可访问,域将继续以离线模式运行。
第 5 章 优化副本拓扑
- 要点:一个良好的副本拓扑可以对工作负载进行分散,并减少复制延迟。按照以下步骤优化副本拓扑布局。
5.1. 决定拓扑中合适数量的 IdM 副本的指南
- 要点:为确保最佳性能和服务可用性,请使用以下准则来规划您的 IdM 拓扑,并确定满足您机构特定要求的适当副本数。
5.2. 从 IdM 服务器卸载 IdM CA 服务
- 要点:如果您的拓扑中有超过四个带有 CA 角色 的身份管理(IdM)副本,并且由于冗余的证书复制而遇到性能问题,请从 IdM 副本中删除冗余的 CA 服务实例。
- 要点:要做到这一点,您必须首先完全停用受影响的 IdM 副本,然后在其上重新安装没有 CA 服务的 IdM 。
- 列表:您已在拓扑中超过四个 IdM 服务器上安装了 IdM CA 服务。
- 列表:识别冗余 CA 服务,并按照在托管此服务的 IdM 副本上 卸载 IdM 服务器 中的流程操作。
- 列表:在同一台主机上,请按照 安装 IdM 服务器:带有集成 DNS,没有 CA 中的流程操作。
- 注意:注意 虽然您可以将 CA 角色 添加 到 IdM 副本中,但 IdM 没有提供一种从 IdM 副本中只 删除 CA 角色的方法:ipa-ca-install 命令没有 --uninstall 选项。这个限制适用于所有其他 IdM 服务器角色,包括 DNS 服务器、KRA 服务器、AD 信任代理 和 AD 信任控制器。对于每个情况,删除角色都需要完全弃用副本,并在不需要的角色的情况下重新安装它。
5.3. 其他资源
- 列表:规划副本拓扑
- 列表:拓扑中连接 IdM 副本的指南
- 列表:管理复制拓扑
- 列表:副本拓扑示例
第 6 章 调整搜索大小和时间限制
- 要点:有些查询(比如请求 IdM 用户列表)可能会返回大量条目。通过调优这些搜索操作,您可以在运行 ipa *-find 命令时提高服务器的总体性能,例如 ipa user-find,并在 Web UI 中显示相应的列表。
- 要点:定义从客户端 CLI 发送发送到服务器的请求或从访问 IdM Web UI 的浏览器返回的最大条目数。
- 注意:重要 如果设置的搜索大小或时间限制太大,则可能会对服务器性能造成负面影响。
6.1. 在命令行中调整搜索大小和时间限制
- 要点:您可以在全局范围内或为特定条目调整搜索大小和时间限制,以优化搜索性能和响应速度。
- 要点:流程
- 列表:要在 CLI 中显示当前搜索时间和大小限制,请使用 ipa config-show 命令: $ ipa config-show Search time limit: 2 Search size limit: 100
- 列表:要在全局范围内调整对所有查询的限制,运行 ipa config-mod 命令并使用 --searchrecordslimit 和 --searchtimelimit 选项。例如: $ ipa config-mod --searchrecordslimit=500 --searchtimelimit=5
- 列表:要为一个特定查询临时调整限制,请在命令中添加 --sizelimit 或 --timelimit 选项。例如: $ ipa user-find --sizelimit=200 --timelimit=120
- 命令/配置摘录:
$ ipa config-show Search time limit: 2 Search size limit: 100
$ ipa config-mod --searchrecordslimit=500 --searchtimelimit=56.2. 在 Web UI 中调整搜索大小和时间限制
- 要点:您可以使用 IdM Web UI 调整全局搜索大小和时间限制,以优化搜索性能和响应速度。
- 要点:流程
- 列表:登录到 IdM Web UI。
- 列表:点 IPA Server。
- 列表:在 IPA Server 选项卡中点 Configuration。
- 列表:在搜索选项区域中设置所需的值。 默认值为: 搜索大小限制: 100 个条目 搜索时间限值: 2 秒
- 列表:搜索大小限制: 100 个条目
- 列表:搜索时间限值: 2 秒
第 7 章 调整 IdM 目录服务器性能
- 要点:您可以通过调整 LDAP 属性来控制目录服务器的资源和行为来调整身份管理数据库的性能。
- 要点:您可以微调以下内容:
- 列表:调整目录服务器如何 缓存数据 。
- 列表:调整目录服务器的 资源限制。
- 列表:调整对性能有最大影响的 超时。
- 列表:使用 LDIF 文件中的自定义目录服务器设置安装 IdM 服务器或副本。
7.1. 调整 IdM 目录服务器中的条目缓存大小
- 要点:当默认自动大小不符合部署要求时,您可以调整条目缓存大小来优化 IdM 目录服务器的内存用量。
- 要点:nsslapd-cachememsize 属性指定条目缓存的可用内存空间大小(以字节为单位)。此属性是控制目录服务器使用多少物理 RAM 的最重要的值之一。
- 列表:LDAP Directory Manager 密码
- 列表:禁用自动缓存调整。 [root@server ~]# dsconf <ds_instance_name> backend config set --cache-autosize=0
- 列表:显示数据库后缀及其对应的后端。 [root@server ~]# dsconf <ds_instance_name> backend suffix list cn=changelog (changelog) dc=example,dc=com (userroot) o=ipaca (ipaca) 这个命令显示每个后缀旁的后端数据库名称。在下一步中使用后缀的数据库名称。
- 列表:为数据库设置条目缓存大小。这个示例将 userroot 数据库的条目缓存设置为 2GB。 [root@server ~]# dsconf <ds_instance_name> backend suffix set --cache-memsize=2147483648 userroot
- 列表:重启 Directory 服务器。 [root@server ~]# systemctl restart dirsrv.target
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 cache-memsize 调整为不同的值,或者重新启用缓存自动调整大小。
- 命令/配置摘录:
REASON: entry too large (83886080 bytes) for the import buffer size (67108864 bytes). Try increasing nsslapd-cachememsize.
[root@server ~]# dsconf <ds_instance_name> backend config set --cache-autosize=0- 注意:重要 不要更改此设置,除非您强烈需要应用自定义值。IdM 目录服务器使用内置的缓存自动调整大小功能来优化性能。
- 表格样本(共 3 行):
- 默认值 | 209715200 (200 MiB)
- 有效范围 | 500000 - 18446744073709551615 (500 kB - (264-1))
- 条目 DN 位置 | cn=<database_name>,cn=ldbm database,cn=plugins,cn=config
7.2. 调整 IdM 目录服务器中的数据库索引缓存大小
- 要点:您可以调整数据库索引缓存大小,以便在 IdM 目录服务器超出条目缓存分配之外时提高搜索性能。
- 要点:nsslapd-dbcachesize 属性控制数据库索引使用的内存量。这个缓存大小对目录服务器性能的影响比条目缓存大小的影响要小,但如果在设置条目缓存大小后有可用的 RAM,红帽建议增加分配给数据库缓存的内存量。
- 列表:LDAP Directory Manager 密码
- 列表:禁用自动缓存调整,并设置数据库缓存大小。这个示例将数据库缓存设置为 256MB。 [root@server ~]# dsconf <ds_instance_name> backend config set --cache-autosize=0 --dbcachesize=268435456
- 列表:重启 Directory 服务器。 [root@server ~]# systemctl restart dirsrv.target
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 dbcachesize 调整为不同的值,或者重新启用缓存自动大小。
- 列表:显示 nsslapd-dbcachesize 属性的值,并将其设置为您所需的值。 [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-dbcachesize nsslapd-dbcachesize: 2147483648
- 列表:nsslapd-dbcachesize
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> backend config set --cache-autosize=0 --dbcachesize=268435456
[root@server ~]# systemctl restart dirsrv.target- 注意:重要 不要更改此设置,除非您强烈需要应用自定义值。IdM 目录服务器使用内置的缓存自动调整大小功能来优化性能。
- 表格样本(共 3 行):
- 默认值 | 10000000 (10 MB)
- 有效范围 | 500000 - 1610611911 (500 kB - 1.5GB)
- 条目 DN 位置 | cn=config,cn=ldbm database,cn=plugins,cn=config
7.3. 在 IdM 目录服务器中重新启用数据库和条目缓存自动调整大小
- 要点:您可以恢复默认的缓存自动大小设置,以便 IdM 目录服务器根据可用的硬件资源自动优化缓存大小。
- 要点:默认情况下,IdM Directory 服务器会自动决定数据库缓存和条目缓存的最佳大小。自动的设置会忽略一部分可用 RAM,并在实例启动时根据服务器的硬件资源优化这两个缓存的大小。
- 列表:之前您已经禁用了数据库和条目缓存自动扩展。
- 列表:停止目录服务器实例。 [root@server ~]# systemctl stop dirsrv.target
- 列表:在进行任何进一步修改前,请备份 /etc/dirsrv/slapd-<instance_name>/dse.ldif 文件。 [root@server ~]# cp /etc/dirsrv/slapd-<instance_name>/dse.ldif \ /etc/dirsrv/slapd-<instance_name>/dse.ldif.bak.$(date "+%F_%H-%M-%S")
- 列表:编辑 /etc/dirsrv/slapd-<instance_name>/dse.ldif 文件: 设置用于数据库的可用系统 RAM 百分比,恢复默认的 10% 可用 RAM。 nsslapd-cache-autosize: 10 将可用系统 RAM 中数据库缓存使用的百分比设置为默认的 25%: nsslapd-cache-autosize-split: 25
- 列表:设置用于数据库的可用系统 RAM 百分比,恢复默认的 10% 可用 RAM。 nsslapd-cache-autosize: 10
- 列表:将可用系统 RAM 中数据库缓存使用的百分比设置为默认的 25%: nsslapd-cache-autosize-split: 25
- 命令/配置摘录:
[root@server ~]# systemctl stop dirsrv.target
[root@server ~]# cp /etc/dirsrv/slapd-<instance_name>/dse.ldif \ /etc/dirsrv/slapd-<instance_name>/dse.ldif.bak.$(date "+%F_%H-%M-%S")- 注意:重要 对优化的性能使用内置缓存自动调整大小功能。不要手动设置缓存大小。
- 表格样本(共 4 行):
- nsslapd-cache-autosize | 这个设置控制为自动分配数据库和条目缓存而分配的可用 RAM 量。0 代表禁用自动大小。
- 默认值 | 10 (10% 的可用 RAM)
- 有效范围 | 0 - 100
- 条目 DN 位置 | cn=config,cn=ldbm database,cn=plugins,cn=config
7.4. 调整 IdM 目录服务器中的 DN 缓存大小
- 要点:您可以调整可辨识名称(DN)缓存大小,以提高 IdM 目录服务器中的查找操作的性能。
- 要点:nsslapd-dncachememsize 属性指定可辨识名称(DN)缓存的可用内存空间大小(以字节为单位)。DN 缓存与数据库的条目缓存类似,但其表只存储条目 ID 和条目 DN,这样可加快查找 rename 和 moddn 操作。
- 列表:LDAP Directory Manager 密码
- 列表:可选:显示数据库后缀及其相应的数据库名称。 [root@server ~]# dsconf <ds_instance_name> backend suffix list dc=example,dc=com (userroot) 这个命令显示每个后缀旁的后端数据库名称。在下一步中使用后缀的数据库名称。
- 列表:为数据库设置 DN 缓存大小。这个示例将 DN 缓存设置为 20MB。 [root@server ~]# dsconf <ds_instance_name> backend suffix set --dncache-memsize=20971520 userroot
- 列表:重启 Directory 服务器。 [root@server ~]# systemctl restart dirsrv.target
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 dncache-memsize 调整为不同的值,或者调整回默认值 10 MB。
- 列表:显示 nsslapd-dncachememsize 属性的新值,并将其设置为您所需的值。 [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=userroot,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-dncachememsize nsslapd-dncachememsize: 20971520
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> backend suffix list
dc=example,dc=com (userroot)- 注意:重要 不要更改此设置,除非您强烈需要应用自定义值。IdM 目录服务器使用内置的缓存自动调整大小功能来优化性能。
- 表格样本(共 3 行):
- 默认值 | 10485760 (10 MB)
- 有效范围 | 500000 - 18446744073709551615 (500 kB - (264-1))
- 条目 DN 位置 | cn=database-name,cn=ldbm database,cn=plugins,cn=config
7.5. 调整 IdM 目录服务器中的规范化 DN 缓存大小
- 要点:您可以调整规范化 DN 缓存大小,以在内存中保留更频繁使用的 DN,并提高 IdM 目录服务器中的查找性能。
- 要点:nsslapd-ndn-cache-max-size 属性控制存储规范化可分辨名称(NDN)的缓存的大小(以字节为单位)。增加这个值将在内存中保留更频繁使用的 DN。
- 列表:确保启用了 NDN 缓存。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-ndn-cache-enabled nsslapd-ndn-cache-enabled: on 如果缓存关闭,使用以下命令启用它。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-ndn-cache-enabled=on Successfully replaced "nsslapd-ndn-cache-enabled"
- 列表:检索 nsslapd-ndn-cache-max-size 参数的当前值,并在需要恢复任何调整前记录它。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-ndn-cache-max-size nsslapd-ndn-cache-max-size: 20971520
- 列表:修改 nsslapd-ndn-cache-max-size 属性的值。这个示例将值增加到 41943040 (40 MB)。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-ndn-cache-max-size=41943040
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 nsslapd-ndn-cache-max-size 调整为不同的值,或者重新启用缓存自动调整大小。
- 列表:显示 nsslapd-ndn-cache-max-size 属性的新值,并将其设置为您所需的值。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-ndn-cache-max-size nsslapd-ndn-cache-max-size: 41943040
- 列表:nsslapd-ndn-cache-max-size
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> config get nsslapd-ndn-cache-enabled
nsslapd-ndn-cache-enabled: on- 注意:重要 不要更改此设置,除非您强烈需要应用自定义值。IdM 目录服务器使用内置的缓存自动调整大小功能来优化性能。
- 表格样本(共 3 行):
- 默认值 | 20971520 (20 MB)
- 有效范围 | 0 - 2147483647
- 条目 DN 位置 | cn=config
7.6. 调整 IdM 目录服务器中的最大消息大小
- 要点:增加最大 LDAP 消息大小,以支持 IdM 目录服务器中的更大合法请求。这可防止在添加条目或执行超过默认 2 MB 限制的操作时出现错误。
- 要点:nsslapd-maxbersize 属性以字节为单位设定传入消息或 LDAP 请求的最大值。限制请求大小可防止某种形式拒绝服务攻击。
- 列表:检索 nsslapd-maxbersize 参数的当前值,并在需要恢复任何调整前记录它。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-maxbersize nsslapd-maxbersize: 2097152
- 列表:修改 nsslapd-maxbersize 属性的值。这个示例将值增加到 4194304,4 MB。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-maxbersize=4194304 Successfully replaced "nsslapd-maxbersize"
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 nsslapd-maxbersize 调整为不同的值,或者调整回默认的 2097152。
- 列表:显示 nsslapd-maxbersize 属性的值,并将其设置为您所需的值。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-maxbersize nsslapd-maxbersize: 4194304
- 列表:nsslapd-maxbersize
- 命令/配置摘录:
Incoming BER Element was too long, max allowable is 2097152 bytes. Change the nsslapd-maxbersize attribute in cn=config to increase.
[root@server ~]# dsconf <ds_instance_name> config get nsslapd-maxbersize- 表格样本(共 3 行):
- 默认值 | 2097152 (2 MB)
- 有效范围 | 0 - 2147483647 (0 到 2 GB)
- 条目 DN 位置 | cn=config
7.7. 调整 IdM 目录服务器中文件描述符的最大数
- 要点:您可以调整文件描述符的最大数量,以处理 IdM 目录服务器中的更多同时客户端连接、日志文件和套接字资源。
- 要点:可以为 /etc/systemd/system.conf 文件中的 DefaultLimitNOFILE 参数定义一个值。具有 root 特权的管理员可使用 setrlimit 命令为 ns-slapd 进程的 DefaultLimitNOFILE 参数设置一个较低的值。然后,这个值优先于 /etc/systemd/system.conf 中的值,并被身份管理(IdM)目录服务器(DS)作为 nsslapd-maxdescriptors 属性的值所接受。
- 列表:如果 nsslapd-maxdescriptors 的新值大于本地定义的值,则服务器会拒绝新值设置,并继续将本地限制值强制为高水位值。
- 列表:如果新值低于本地定义的值,则将使用新值。
- 列表:检索 nsslapd-maxdescriptors 参数的当前值,并在需要恢复任何调整前记录它。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-maxdescriptors nsslapd-maxdescriptors: 4096
- 列表:修改 nsslapd-maxdescriptors 属性的值。这个示例将值增加到 8192。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-maxdescriptors=8192 Successfully replaced "nsslapd-maxdescriptors"
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 nsslapd-maxdescriptors 调整为不同的值,或者调整回默认的 4096。
- 列表:显示 nsslapd-maxdescriptors 属性的值,并验证它已设置为您所需的值。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-maxdescriptors nsslapd-maxdescriptors: 8192
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> config get nsslapd-maxdescriptors
nsslapd-maxdescriptors: 40967.8. 调整 IdM 目录服务器中的连接积压大小
- 要点:您可以增加连接积压大小,以在 IdM 目录服务器开始拒绝它们前处理更多传入的 LDAP 请求。
- 要点:侦听服务设定可用于接收进入的连接的套接字的数量。nsslapd-listen-backlog-size 值代表,在拒绝连接前 sockfd socket 队列的最大长度。
- 列表:检索 nsslapd-listen-backlog-size 参数的当前值,并在进行任何调整前记录它,以备需要恢复时使用。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-listen-backlog-size nsslapd-listen-backlog-size: 128
- 列表:修改 nsslapd-listen-backlog-size 属性的值。这个示例将值增加到 192。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-listen-backlog-size=192 Successfully replaced "nsslapd-listen-backlog-size"
- 列表:显示 nsslapd-listen-backlog-size 属性的值,并验证它已设置为您所需的值。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-listen-backlog-size nsslapd-listen-backlog-size: 192
- 列表:nsslapd-listen-backlog-size
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> config get nsslapd-listen-backlog-size
nsslapd-listen-backlog-size: 128- 表格样本(共 3 行):
- 默认值 | 128 个队列插槽
- 有效范围 | 0 - 9223372036854775807
- 条目 DN 位置 | cn=config
7.9. 调整 IdM 目录服务器中数据库锁的最大数
- 要点:您可以增加数据库锁定的最大数量,以解决 IdM 目录服务器中的"out of available locks"错误。
- 要点:锁定机制控制目录服务器进程可以同时运行多少个副本,nsslapd-db-locks 参数设置最大锁定数。
- 列表:LDAP Directory Manager 密码
- 列表:检索 nsslapd-db-locks 参数的当前值,并在需要恢复任何调整前记录它。 [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-db-locks nsslapd-db-locks: 50000
- 列表:修改 locks 属性的值。这个示例将值加倍到 100000 个锁定。 [root@server ~]# dsconf <ds_instance_name> backend config set --locks=100000 Successfully updated database configuration
- 列表:重启目录服务器。 [root@server ~]# systemctl restart dirsrv.target
- 列表:显示 nsslapd-db-locks 属性的值,并将其设置为您所需的值。 [root@server ~]# ldapsearch -D "cn=directory manager" -w <directory_manager_password> -b "cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-db-locks nsslapd-db-locks: 100000
- 列表:nsslapd-db-locks
- 命令/配置摘录:
libdb: Lock table is out of available locks
[root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-db-locks nsslapd-db-locks: 50000- 表格样本(共 3 行):
- 默认值 | 50000 个锁定
- 有效范围 | 0 - 2147483647
- 条目 DN 位置 | cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config
7.10. 在 IdM 目录服务器中禁用透明巨页功能
- 要点:禁用透明巨页(THP)以提高 IdM 目录服务器性能并降低延迟。THP 可能会因为 IdM 访问内存而减慢目录操作的速度。
- 要点:THP 是 RHEL 上默认启用的 Linux 内存管理功能。虽然 THP 有助于具有连续内存访问的应用程序,但它可能会降低 IdM 目录服务器性能,因为目录使用稀疏内存访问模式。
- 列表:要禁用这个功能,请参阅 Red Hat Directory Server 13 文档中的 禁用 Transparent Huge Pages 功能。
- 列表:RHDS 上透明巨页(THP)的副作用
7.11. 调整 IdM 目录服务器中的输入/输出块超时
- 要点:您可以调整 I/O 块超时,以更快地关闭连接停止的 LDAP 客户端,并在 IdM 目录服务器中释放资源。
- 要点:nsslapd-ioblocktimeout 属性代表一个时间(以毫秒为单位),在经过这个时间后到停滞的 LDAP 客户端的连接将关闭。当 LDAP 客户端没有为读或写操作进行任何 I/O 处理时,它被视为已停止工作。
- 列表:检索 nsslapd-ioblocktimeout 参数的当前值,并在需要恢复任何调整前记录它。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-ioblocktimeout nsslapd-ioblocktimeout: 10000
- 列表:修改 nsslapd-ioblocktimeout 属性的值。这个示例将值降低为 8000。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-ioblocktimeout=8000 Successfully replaced "nsslapd-ioblocktimeout"
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 nsslapd-ioblocktimeout 调整为不同的值,或者调整回默认的 10000。
- 列表:显示 nsslapd-ioblocktimeout 属性的值,并将其设置为您所需的值。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-ioblocktimeout nsslapd-ioblocktimeout: 8000
- 列表:nsslapd-ioblocktimeout
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> config get nsslapd-ioblocktimeout
nsslapd-ioblocktimeout: 10000- 表格样本(共 3 行):
- 默认值 | 10000 毫秒
- 有效范围 | 0 - 2147483647
- 条目 DN 位置 | cn=config
7.12. 调整 IdM 目录服务器中的闲置连接超时
- 要点:您可以调整闲置连接超时来关闭过时的连接,同时在 IdM 目录服务器中保持活跃连接。
- 要点:nsslapd-idletimeout 属性以秒为单位设置闲置 LDAP 客户端连接被 IdM 服务器关闭的时间长度(以秒为单位)。0 表示服务器永远不会关闭闲置连接。
- 列表:检索 nsslapd-idletimeout 参数的当前值,并在需要恢复任何调整前记录它。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-idletimeout nsslapd-idletimeout: 3600
- 列表:修改 nsslapd-idletimeout 属性的值。这个示例将值降低为 1800 (30 分钟)。 [root@server ~]# dsconf <ds_instance_name> config replace nsslapd-idletimeout=1800 Successfully replaced "nsslapd-idletimeout"
- 列表:监控 IdM 目录服务器的性能。如果没有改进,请重复此流程,并将 nsslapd-idletimeout 调整为不同的值,或者调整回默认的 3600。
- 列表:显示 nsslapd-idletimeout 属性的值,并将其设置为您所需的值。 [root@server ~]# dsconf <ds_instance_name> config get nsslapd-idletimeout nsslapd-idletimeout: 1800
- 列表:nsslapd-idletimeout
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> config get nsslapd-idletimeout
nsslapd-idletimeout: 3600- 表格样本(共 3 行):
- 默认值 | 3600 秒 (1 小时)
- 有效范围 | 0 - 2147483647
- 条目 DN 位置 | cn=config
7.13. 调整复制发行超时
- 要点:您可以调整复制发行超时,以平衡复制延迟和更新 IdM 副本之间的吞吐量。
- 要点:IdM 副本在带有另一个副本的复制会话中被锁定。在一些环境中,因为大型更新或网络拥塞导致副本长时间锁定,这会增加复制延迟。
- 列表:如果值设置过低,则副本会持续重新分配另一个,并且副本无法发送较大的更新。
- 列表:较长的超时可以改进高流量的情况。在高流量的情况中,一个服务器可以在较长的时间内独家访问一个副本是最佳的,但如果高于 120 秒则会减慢复制速度。
- 列表:LDAP Directory Manager 密码
- 列表:显示数据库后缀及其对应的后端。 [root@server ~]# dsconf <ds_instance_name> backend suffix list cn=changelog (changelog) dc=example,dc=com (userroot) o=ipaca (ipaca) 这个命令会在后缀旁的显示后端数据库名称。在下一步中使用后缀名称。
- 列表:修改主 userroot 数据库的 repl-release-timeout 属性的值。这个示例将值增加到 90 秒。 [root@server ~]# dsconf <ds_instance_name> replication set --suffix="dc=example,dc=com" --repl-release-timeout=90 Successfully replaced "repl-release-timeout"
- 列表:可选:如果您的 IdM 环境使用 IdM 证书颁发机构(CA),则您可以修改 CA 数据库的 repl-release-timeout 属性的值。这个示例将值增加到 90 秒。 [root@server ~]# dsconf <ds_instance_name> replication set --suffix="o=ipaca" --repl-release-timeout=90 Successfully replaced "repl-release-timeout"
- 命令/配置摘录:
[root@server ~]# dsconf <ds_instance_name> backend suffix list
cn=changelog (changelog) dc=example,dc=com (userroot) o=ipaca (ipaca)- 注意:注意 本例中后缀的可辨识名称为 dc=example,dc=com,但等号(=)和逗号(,)必须在 ldapsearch 命令中进行转义。 使用以下转义字符将后缀 DN 转换为 cn=dc\3Dexample\2Cdc\3Dcom: \3D 替换 = \2C 替换 ,
- 表格样本(共 3 行):
- 默认值 | 60 秒
- 有效范围 | 0 - 2147483647
- 推荐的范围 | 30 - 120
7.14. 其他资源
- 列表:使用 LDIF 文件中的自定义目录服务器设置安装 IdM 服务器或副本
- 列表:红帽目录服务器 13 的性能调优
第 8 章 调整 KDC 的性能
- 要点:要优化 Kerberos 密钥分发中心(KDC)(其负责验证用户、主机和服务)的性能,请根据您部署的流量模式调整密钥参数。
8.1. 调整 KDC 侦听队列的长度
- 要点:增加 KDC 侦听队列大小,以在忙碌的 IdM 环境中处理 Kerberos 身份验证请求的更高卷。这可防止在高峰流量期间出现连接延迟。
- 要点:您可以使用 /var/kerberos/krb5kdc/kdc.conf 文件的 [kdcdefaults] 部分中的 kdc_tcp_listen_backlog 选项调整此设置。对于遇到大量 Kerberos 流量的 IdM 部署,默认的侦听队列大小值为 5 可能太低,但将此值设置为太高。
- 列表:在文本编辑器中打开 /var/kerberos/krb5kdc/kdc.conf 文件。
- 列表:将 TCP 侦听功能设置为所需值,如 7。 [kdcdefaults] ... kdc_tcp_listen_backlog = 7
- 列表:保存并关闭 /var/kerberos/krb5kdc/kdc.conf 文件。
- 列表:重启 KDC 来加载新设置。
- 命令/配置摘录:
[kdcdefaults] ... kdc_tcp_listen_backlog = 7- 表格样本(共 2 行):
- 默认值 | 5
- 有效范围 | 1 - 10
8.2. 每个域控制 KDC 行为的选项
- 要点:您可以为每个域调整 KDC 选项,以最大程度减少 KDC 将身份验证跟踪信息写入其数据库的频率。
- 要点:为了跟踪每个 Kerberos 域的锁定和解锁用户帐户,KDC 会在每个成功和身份验证失败后写入其数据库。通过调整 /etc/krb5.conf 文件的 [dbmodules] 部分中的以下选项,您可以最大程度减少 KDC 写入信息的频率来提高性能。
- 列表:根据每个域(realm)调整 KDC 设置
- 表格样本(共 2 行):
- 默认值 | false
- 有效范围 | true 或 false
8.3. 根据每个域(realm)调整 KDC 设置
- 要点:通过修改 /etc/krb5.conf 文件来调整特定 Kerberos 域的 KDC 设置。
- 要点:流程
- 列表:在文本编辑器中打开 /etc/krb5.conf 文件。
- 列表:在 [dbmodules] 部分中指定任意选项及其所需值,并在相应的 Kerberos 域中指定。在本例中,您为 <kerberos_realm> 设置 disable_last_success 变量,如 EXAMPLE.COM。 [dbmodules] <kerberos_realm> = { disable_last_success = true }
- 列表:保存并关闭 /etc/krb5.conf 文件。
- 列表:重启 KDC 来加载新设置。
- 列表:每个域控制 KDC 行为的选项
- 命令/配置摘录:
[dbmodules] <kerberos_realm> = { disable_last_success = true }8.4. 调整 krb5kdc 进程的数量
- 要点:您可以手动调整密钥分发中心(KDC)开始处理进入的连接的 worker 进程数量。
- 要点:默认情况下,IdM 安装程序检测 CPU 核数,并在 /etc/sysconfig/krb5kdc 文件中输入值。例如,该文件可能包含以下条目:
- 列表:在文本编辑器中打开 /etc/sysconfig/krb5kdc 文件。
- 列表:指定 KRB5KDC_ARGS 参数的值。在本例中,您要将进程数设置为 10: KRB5KDC_ARGS='-w 10' [...]
- 列表:保存并关闭 /etc/sysconfig/krb5kdc 文件。
- 列表:重新载入 systemd 配置: # systemctl daemon-reload
- 列表:重启 krb5kdc 服务: # systemctl restart krb5kdc.service 注意 您可以使用 IdM Healthcheck 工具来验证 KDC 是否已被配置为使用最佳数量的 worker 进程。请参阅使用 IdM Healthcheck 验证 KDC worker 进程的最佳数量。
- 命令/配置摘录:
KRB5KDC_ARGS='-w 2' [...]
KRB5KDC_ARGS='-w 10' [...]- 注意:注意 您可以使用 IdM Healthcheck 工具来验证 KDC 是否已被配置为使用最佳数量的 worker 进程。请参阅使用 IdM Healthcheck 验证 KDC worker 进程的最佳数量。
8.5. 其他资源
- 列表:MIT Kerberos 文档 - kdc.conf
第 9 章 为大型 IdM-AD 信任部署调整 SSSD 性能
- 要点:对于系统安全服务守护进程 (SSSD),检索用户和组群信息会涉及大量数据操作,特别是在带有信任到大型 Active Directory (AD) 域的 IdM 部署中。提高此性能的方法是,调整 SSSD 从身份提供程序检索哪些信息,以及进行多久。
9.1. 为大型 IdM-AD 信任部署在 IdM 服务器中调整 SSSD
- 要点:将调优选项应用到 IdM 服务器中 SSSD 服务的配置,以便在从大型 AD 环境检索信息时改进其响应时间。
- 要点:先决条件
- 列表:您需要 root 权限来编辑 /etc/sssd/sssd.conf 配置文件。
- 列表:在文本编辑器中打开 /etc/sssd/sssd.conf 配置文件。
- 列表:将以下选项添加到您身份管理(IdM)域的 [domain] 部分: [domain/<idm_domain_name>] ignore_group_members = true subdomain_inherit = ignore_group_members ... 注意 subdomain_inherit 选项中列出的设置适用于主(IdM)域和可信 AD 域。
- 列表:保存并关闭服务器上的 /etc/sssd/sssd.conf 文件。
- 列表:重启 SSSD 服务以载入配置更改。 [root@client ~]# systemctl restart sssd
- 列表:为大型 IdM-AD 信任部署在 IdM 服务器和客户端中调整 SSSD 的选项
- 命令/配置摘录:
[domain/<idm_domain_name>] ignore_group_members = true subdomain_inherit = ignore_group_members ...
[root@client ~]# systemctl restart sssd- 注意:注意 subdomain_inherit 选项中列出的设置适用于主(IdM)域和可信 AD 域。
9.2. 在 IdM 服务器中调整 ipa-extdom 插件的配置超时
- 要点:调整 ipa-extdom 插件超时,以防止在 IdM 客户端请求 Active Directory 用户和组信息时进行失败的查找。正确的超时配置可确保可靠的跨域身份验证,而不阻止目录服务器。
- 要点:IdM 客户端无法直接从活动目录(AD)接收有关用户和组的信息。相反,IdM 服务器使用 ipa-extdom 插件从 SSSD 检索 AD 用户和组的信息,然后将该信息转发到请求的客户端。
- 列表:LDAP Directory Manager 密码
- 列表:使用以下命令将配置超时调整为 20000 毫秒: # ldapmodify -D "cn=Directory Manager" -W dn: cn=ipa_extdom_extop,cn=plugins,cn=config changetype: modify replace: ipaExtdomMaxNssTimeout ipaExtdomMaxNssTimeout: 20000
- 命令/配置摘录:
# ldapmodify -D "cn=Directory Manager" -W dn: cn=ipa_extdom_extop,cn=plugins,cn=config changetype: modify replace: ipaExtdomMaxNssTimeout ipaExtdomMaxNssTimeout: 20000- 注意:警告 调整配置超时时要非常谨慎: 如果您设置了太小的值(如 500 毫秒),SSSD 可能没有足够的时间来回复,请求始终会返回超时。 如果您设置了太大的值,如 30000 毫秒(30 秒),则单个请求可能会阻止到 SSSD 的连接。因为一个线程一次只能连接到 SSSD,所以来自插件的所有其他请求都必须等待。 如果 IdM 客户端发送了多个请求,它们可以阻止为 IdM 服务器上的 Directory 服务器配置的所有可用 worker。因此,服务器可能无法在一段时间内回复任何类型的请求。 只在以下情况下更改配置超时: 在请求 AD 用户和组的信息时,如果 IdM 客户端会在达到自己的搜索超时前频繁收到超时错误,这代表配置超时值太小。 如果 IdM 服务器上的 Directory Server 经常会锁定,pstack 程序报告有很多或所有 worker 线程在处理 ipa-extdom 请求,这代表这个值 太大。
9.3. 在 IdM 服务器中调整 ipa-extdom 插件的最大缓冲区大小
- 要点:您可以增加 ipa-extdom 插件的最大缓冲区大小,以便在检索大量 Active Directory 用户和组数据时减少重试尝试。
- 要点:IdM 客户端无法直接从活动目录(AD)接收有关用户和组的信息。相反,IdM 服务器使用 ipa-extdom 插件从 SSSD 检索 AD 用户和组的信息,然后将该信息转发到请求的客户端。
- 列表:LDAP Directory Manager 密码
- 列表:使用以下命令将最大缓冲区大小设置为 268435456 字节: # ldapmodify -D "cn=Directory Manager" -W dn: cn=ipa_extdom_extop,cn=plugins,cn=config changetype: modify replace: ipaExtdomMaxNssBufSize ipaExtdomMaxNssBufSize: 268435456
- 命令/配置摘录:
# ldapmodify -D "cn=Directory Manager" -W dn: cn=ipa_extdom_extop,cn=plugins,cn=config changetype: modify replace: ipaExtdomMaxNssBufSize ipaExtdomMaxNssBufSize: 2684354569.4. 在 IdM 服务器上调整 ipa-extdom 插件的最大实例数
- 要点:您可以调整 ipa-extdom 插件实例的最大数量,以防止在处理大量 Active Directory 信任请求时的 LDAP 服务瓶颈。
- 要点:IdM 客户端无法直接从活动目录(AD)接收有关用户和组的信息。相反,IdM 服务器使用 ipa-extdom 插件从 SSSD 检索 AD 用户和组的信息,然后将该信息转发到请求的客户端。
- 列表:LDAP Directory Manager 密码
- 列表:检索总 worker 线程数: # ldapsearch -xLLLD cn=Directory\ Manager -W -b cn=config -s base nsslapd-threadnumber Enter LDAP Password: dn: cn=config nsslapd-threadnumber: 16 这意味着 ipaExtdomMaxInstances 的当前值是 13。
- 列表:调整实例的最大数。这个示例将值改为 14: # ldapmodify -D "cn=Directory Manager" -W dn: cn=ipa_extdom_extop,cn=plugins,cn=config changetype: modify replace: ipaExtdomMaxInstances ipaExtdomMaxInstances: 14
- 列表:检索 ipaExtdomMaxInstances 的当前值: # ldapsearch -xLLLD "cn=Directory Manager" -W -b "cn=ipa_extdom_extop,cn=plugins,cn=config" |grep ipaextdommaxinstances Enter LDAP Password: ipaextdommaxinstances: 14
- 列表:监控 IdM 目录服务器的性能,如果没有改进,请重复此流程,并调整 ipaExtdomMaxInstances 变量的值。
- 命令/配置摘录:
(2022-05-22 5:00:13): [be[ad.example.com]] [ipa_s2n_get_user_done] (0x0040): s2n exop request failed. (2022-05-22 5:00:13): [be[ad.example.com]] [ipa_s2n_get_user_done] (0x0040): s2n exop request failed. (2022-05-22 5:00:13): [be[ad.example.com]] [ipa_s2n_exop_done] (0x0040): ldap_extended_operation result: Server is busy(51), Too many extdom instances running.
# ldapsearch -xLLLD cn=Directory\ Manager -W -b cn=config -s base nsslapd-threadnumber Enter LDAP Password: dn: cn=config nsslapd-threadnumber: 169.5. 为大型 IdM-AD 信任部署在 IdM 客户端中调整 SSSD
- 要点:对 IdM 客户端中的 SSSD 服务配置应用调优选项,来在从大型 AD 环境检索信息时改进其响应时间。
- 要点:先决条件
- 列表:您需要 root 权限来编辑 /etc/sssd/sssd.conf 配置文件。
- 列表:确定单个未缓存登录所需的秒数。 清除 IdM 客户端上的 SSSD 缓存。 [root@client_hostname ~]# sss_cache -E 使用 time 命令测量 AD 用户的登录时间。从 IdM 客户端,通过登录到同一主机,来以 AD 用户身份进行本地身份验证。 [root@client_hostname ~]# time ssh <ad_username>@<ad_domain>@<client_fqdn> 尽快输入密码。 Password: Last login: Sat Jan 23 06:29:54 2021 from 10.0.2.15 [ad_username@ad_domain@client_fqd…
- 列表:清除 IdM 客户端上的 SSSD 缓存。 [root@client_hostname ~]# sss_cache -E
- 列表:使用 time 命令测量 AD 用户的登录时间。从 IdM 客户端,通过登录到同一主机,来以 AD 用户身份进行本地身份验证。 [root@client_hostname ~]# time ssh <ad_username>@<ad_domain>@<client_fqdn>
- 列表:尽快输入密码。 Password: Last login: Sat Jan 23 06:29:54 2021 from 10.0.2.15 [ad_username@ad_domain@client_fqdn ~]$
- 列表:尽快注销以显示已经过的时间。在本例中,单个未缓存的登录大约需要 9 秒。 [ad_username@ad_domain@client_fqdn /]$ exit logout Connection to client.example.com closed. real 0m8.755s user 0m0.017s sys 0m0.013s
- 命令/配置摘录:
[root@client_hostname ~]# sss_cache -E
[root@client_hostname ~]# time ssh <ad_username>@<ad_domain>@<client_fqdn>9.6. 在 tmpfs 中挂载 SSSD 缓存
- 要点:您可以在 RAM 中挂载 SSSD 缓存,以通过消除 LDAP 对象缓存的磁盘写入操作来提高性能。
- 要点:系统安全服务守护进程(SSSD)持续将 LDAP 对象写入其缓存中。这些内部 SSSD 事务将数据写入磁盘,它的速度比从 Random-Access Memory(RAM)进行读取和写入要慢。
- 列表:如果 SSSD 缓存位于 RAM,则缓存的信息不会在重启后保留。
- 列表:在 IdM 服务器上执行此更改是安全的,因为 IdM 服务器中的 SSSD 实例不会丢失与同一主机上 Directory 服务器的连接。
- 列表:如果您在 IdM 客户端中执行此调整,且丢失了与 IdM 服务器的连接,则用户重启后将无法进行身份验证,直到重新建立连接为止。
- 列表:您需要 root 权限来编辑 /etc/fstab 配置文件。
- 列表:创建 tmpfs 临时文件系统: 确认 SSSD 用户拥有 config.ldb 文件: # ls -al /var/lib/sss/db/config.ldb -rw-------. 1 sssd sssd 1286144 Jun 8 16:41 /var/lib/sss/db/config.ldb 将以下条目作为一行添加到 /etc/fstab 文件中: tmpfs /var/lib/sss/db/ tmpfs size=300M,mode=0700,uid=sssd,gid=sssd,rootcontext=system_u:object_r:sssd_var_lib_t:s0 0 0 这个示例创建了一个 300MB 缓存。…
- 列表:确认 SSSD 用户拥有 config.ldb 文件: # ls -al /var/lib/sss/db/config.ldb -rw-------. 1 sssd sssd 1286144 Jun 8 16:41 /var/lib/sss/db/config.ldb
- 命令/配置摘录:
# ls -al /var/lib/sss/db/config.ldb -rw-------. 1 sssd sssd 1286144 Jun 8 16:41 /var/lib/sss/db/config.ldb
tmpfs /var/lib/sss/db/ tmpfs size=300M,mode=0700,uid=sssd,gid=sssd,rootcontext=system_u:object_r:sssd_var_lib_t:s0 0 09.7. sssd.conf 中用于为大型 IdM-AD 信任部署调整 IdM 服务器和客户端中的选项
- 要点:在大型 IdM-AD 信任部署中优化 SSSD 性能,以减少身份验证延迟并改进用户登录时间。调优特定的 SSSD 选项有助于管理复杂组成员资格和跨域查找的开销。
- 要点:/etc/sssd/sssd.conf 配置文件中的以下选项控制大型 IdM-AD 信任部署中 IdM 服务器和客户端的 SSSD 性能。
- 注意:注意 id user@ad-domain.com 命令仍然会返回正确的组列表,但 getent group ad-group@ad-domain.com 会返回一个空列表。
- 注意:注意 当部署涉及带有 compat 树的 IdM 服务器时,您不应该将这个选项设置为 true。
- 表格样本(共 2 行):
- 默认值 | false
- 推荐的值 | true
9.8. 其他资源
- 列表:大型 IdM-AD 信任部署的性能调优 SSSD
第 10 章 调优 WSGI 进程
- 要点:如果您因为长时间运行的 API 进程导致请求失败,调整 Web 服务器网关接口(WSGI)进程的数量可以提高性能并允许更多的并发请求。
- 要点:默认情况下,IdM 为 64 位系统上的 API 服务分配 4 WSGI 进程。这个默认限制是为内存保留的目的实现的。任何长时间运行的 API 端点都受益于调整,特别是在具有高容量自动化操作的环境中。
10.1. 调整 WSGI 进程数
- 要点:调整 Web 服务器网关接口(WSGI)进程数量,以处理 IdM 环境中的更多并发 API 请求。增加 WSGI 进程提高了高容量操作(如证书颁发)的性能,从而增加内存消耗成本。
- 要点:先决条件
- 列表:您有访问 IdM 服务器的 root 权限。
- 列表:打开 /etc/httpd/conf.d/ipa.conf 文件,并修改 WSGIDaemonProcess 指令中的 进程 值: WSGIDaemonProcess ipa processes=<value> threads=1 maximum-requests=500 \ 默认情况下,IdM 使用 4 个进程。您可以增加这个值来处理更多并发请求。建议最多为 16 个进程。 注意 每个 WSGI 进程消耗大约 100-110 MB 内存。使用 16 个进程时,内存消耗大约为 1.3 GB。
- 列表:重启 Apache HTTP 服务器以应用更改: [root@server ~]# systemctl restart httpd
- 命令/配置摘录:
WSGIDaemonProcess ipa processes=<value> threads=1 maximum-requests=500 \
[root@server ~]# systemctl restart httpd- 注意:注意 每个 WSGI 进程消耗大约 100-110 MB 内存。使用 16 个进程时,内存消耗大约为 1.3 GB。
10.2. 为改进的 IPA 服务器性能优化 CPU 使用率
- 要点:在大量证书颁发任务过程中遇到性能限制时,调优 CPU 和 Web 服务器网关接口(WSGI)进程数可以显著增强 IPA 服务器处理同时请求的能力。
- 要点:如果服务器配置了 4 个 CPU 和 70 个客户端,每个请求每个证书都请求 7 个证书,则当请求卷超过服务器的处理容量时发生服务器超时。
完整目录
- 优化 IdM 服务,如目录服务器、KDC 和 SSSD,以提高性能
- 对红帽文档提供反馈
- 第 1 章 调优 IdM 时的重要注意事项
- 第 2 章 硬件建议
- 第 3 章 IdM 服务器性能建议
- 第 4 章 IdM 中的故障转移、负载平衡和高可用性
- 4.1. 客户端故障转移功能
- 4.2. IdM 服务器端负载平衡和高可用性
- 4.3. 配置 SSSD 客户端故障切换
- 4.4. IdM 服务器配置和故障转移参数
- 第 5 章 优化副本拓扑
- 5.1. 决定拓扑中合适数量的 IdM 副本的指南
- 5.2. 从 IdM 服务器卸载 IdM CA 服务
- 5.3. 其他资源
- 第 6 章 调整搜索大小和时间限制
- 6.1. 在命令行中调整搜索大小和时间限制
- 6.2. 在 Web UI 中调整搜索大小和时间限制
- 第 7 章 调整 IdM 目录服务器性能
- 7.1. 调整 IdM 目录服务器中的条目缓存大小
- 7.2. 调整 IdM 目录服务器中的数据库索引缓存大小
- 7.3. 在 IdM 目录服务器中重新启用数据库和条目缓存自动调整大小
- 7.4. 调整 IdM 目录服务器中的 DN 缓存大小
- 7.5. 调整 IdM 目录服务器中的规范化 DN 缓存大小
- 7.6. 调整 IdM 目录服务器中的最大消息大小
- 7.7. 调整 IdM 目录服务器中文件描述符的最大数
- 7.8. 调整 IdM 目录服务器中的连接积压大小
- 7.9. 调整 IdM 目录服务器中数据库锁的最大数
- 7.10. 在 IdM 目录服务器中禁用透明巨页功能
- 7.11. 调整 IdM 目录服务器中的输入/输出块超时
- 7.12. 调整 IdM 目录服务器中的闲置连接超时
- 7.13. 调整复制发行超时
- 7.14. 其他资源
- 第 8 章 调整 KDC 的性能
- 8.1. 调整 KDC 侦听队列的长度
- 8.2. 每个域控制 KDC 行为的选项
- 8.3. 根据每个域(realm)调整 KDC 设置
- 8.4. 调整 krb5kdc 进程的数量
- 8.5. 其他资源
- 第 9 章 为大型 IdM-AD 信任部署调整 SSSD 性能
- 9.1. 为大型 IdM-AD 信任部署在 IdM 服务器中调整 SSSD
- 9.2. 在 IdM 服务器中调整 ipa-extdom 插件的配置超时
- 9.3. 在 IdM 服务器中调整 ipa-extdom 插件的最大缓冲区大小
- 9.4. 在 IdM 服务器上调整 ipa-extdom 插件的最大实例数
- 9.5. 为大型 IdM-AD 信任部署在 IdM 客户端中调整 SSSD
- 9.6. 在 tmpfs 中挂载 SSSD 缓存
- 9.7. sssd.conf 中用于为大型 IdM-AD 信任部署调整 IdM 服务器和客户端中的选项
- 9.8. 其他资源
- 第 10 章 调优 WSGI 进程
- 10.1. 调整 WSGI 进程数
- 10.2. 为改进的 IPA 服务器性能优化 CPU 使用率
