我全新安装了 Centos 7,并且发现 setroubleshootd 的 CPU 使用率很高。我怎样才能解决这个问题?这个进程在做什么?
答案1
首先,您不应该禁用 SELinux。那么到底是什么原因导致CPU占用率高呢setroubleshootd
?
尝试通过键入 来查明 SELinux 在计算机上运行的模式sestatus
。它应该显示几行。有趣的部分是SELinux status:
和 ,Current Mode
通常是enabled
和enforcing
。如果当前模式是permissive
,那么 SELinux 不会阻止任何内容,而只会记录它(有利于故障排除)。
假设 SELinux 已启用并处于强制模式,现在查看日志/var/log/audit/audit.log
。我建议使用来tail -f /var/log/audit/audit.log
查看文件的实时更改。
因为您的 CPU 负载很高,所以setroubleshootd
我假设您在文件中进行了永久性更改/条目,这意味着某些内容永久违反了 SELinux 策略,并且输出可以为您提供第一个线索。
要进行更深入的故障排除,您可以setroubleshoot-server
安装yum install setroubleshoot-server
.该软件包是一组工具,可以帮助您找到 SELinux 违规的真正原因。大多数情况下,当您向系统添加文件而未设置正确的 SELinux 权限或进程尝试访问非典型文件或文件夹时,就会发生这种情况。
我会推荐你首先阅读这个关于 SELinux 的文档和这个文件获得概览,然后查看像这样的文件供您分配。
SELinux 有一点学习曲线,对于一个简单的答案来说太多了,但我永远不会在面向公众的服务器上禁用它。
答案2
a) 安装setroubleshoot.x86_64
GUI;这可能比使用更容易tail
。
# yum install setroubleshoot.x86_64 setroubleshoot-plugins.noarch
为(以及可能的其他)添加 SE Linux 策略mongodb
可能会减少负载。
请注意,它提出的建议有时可能是无用的/具有误导性的。
b) 重新安装setroubleshootd
可能是一种选择:
yum reinstall setroubleshoot-server
答案3
诚然这是一个老问题,但是这两种解决方案都没有起到作用。我发现这个答案:完全卸载flatpak实际上消除了过高的CPU占用率。
答案4
该守护进程setroubleshootd
是 SELinux(安全增强型 Linux)的一部分。 SELinux 旨在为文件提供上下文类型,以增加更多安全性并符合 NSA 要求。如果配置和使用不当,SELinux 可能会导致问题。 Setroubleshootd 监视并报告 SELinux 问题,并提供解决方案建议。
确定您是否确实需要 SELinux 才能运行。如果没有,请将其禁用。
点击这里有关禁用 SELinux 的更多信息。