解决CPU和内存使用过多的问题

解决CPU和内存使用过多的问题

我全新安装了 Centos 7,并且发现 setroubleshootd 的 CPU 使用率很高。我怎样才能解决这个问题?这个进程在做什么?

答案1

首先,您不应该禁用 SELinux。那么到底是什么原因导致CPU占用率高呢setroubleshootd

尝试通过键入 来查明 SELinux 在计算机上运行的模式sestatus。它应该显示几行。有趣的部分是SELinux status:和 ,Current Mode通常是enabledenforcing。如果当前模式是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_64GUI;这可能比使用更容易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 的更多信息。

相关内容