重型磁盘IO期间SSSD_NSS的高CPU使用率



我在Oracle Enterprise Linux 7U2上,我执行频繁的重型Maven构建,会产生大量的罐子/战争/耳朵。我最近注意到的(经过一些熔化/幽灵补丁之后(是很重的CPU利用率:

/usr/libexec/sssd/sssd_nss - uid 0 - gid 0 - debug-to-files

当我的服务器闲置时?没问题。但是,在我的Maven构建的重型磁盘中,Maven Java Process和SSSD_NSS对CPU进行了斗争,每个过程都取决于总数的50%。(作为参考,我有4个核心Xeon服务器(

我真的不知道这个过程(除了可能处理LDAP之外?(,或者为什么它会关心Java文件复制和Zipping。(这全都在本地/非NFS磁盘上(

sssd_nss是从下游服务(例如LDAP(中抽象用户/组信息请求的守护程序。它实际上没有进行查找,而是向执行该服务的请求,首先检查本地磁盘缓存。

这使我认为沉重的I/O部分正在围绕用户和组进行大量操作(例如,查找UID的用户名,查找UID的组(。

您还应该研究高sssd_nss CPU是否是IOWAIT。这表明您确实正在进行大量用户/组查询,并且以某种方式由磁盘I/O持有。您可以使用top查看整体系统IOWAIT(查找wa(,并查看iotop以获取每个程序指标。

如果主要是爱意,您可能需要将添加I/O容量分开或将构建量与系统量分开。我怀疑这是您问题的根本原因。

您提到这是在崩溃/幽灵补丁后发生的。这可能表明构建过程正在启动sssd_nss中的许多系统调用,这些系统现在使用这些补丁程序较慢。您可能需要查看构建过程,看看是否有不必要的用户/组相关命令。您可以查看使用strace -p $pid_of_sssd_nss调用的系统调用,也可以使用Sysdig进行更奇特的分析。如果该服务正在进行大量系统调用,请查看它正在制作的内容,并找出您的构建过程在何处启动这些调用。然后尝试最大程度地减少它们。

最新更新