CentOS 中睡眠进程数量过多-如何诊断?

CentOS 中睡眠进程数量过多-如何诊断?

我有大量休眠进程,大约 600 个,其中大多数是 Apache 进程。

我是否应该终止所有这些休眠进程,或者这是否会导致 Apache 彻底失败?

为什么这些进程首先处于休眠状态?

该服务器运行带有 Apache 2.2 的 CentOS 6。

答案1

终止系统的所有休眠进程并不能解决任何问题,更不用说解决您遇到的问题了。


采用结构化和有条理的方法比四处乱窜要好得多。

我个人认为科学的方法(其他人称之为有些不同) 是系统管理工具包中诊断问题时可以使用的一个非常好的工具。

  1. 您真正想要解决的问题是什么?

服务停止响应。1

  1. 现在我们知道了要解决的实际问题,我们有了一些方向。让我们收集一些信息来帮助我们找到解决方案。

    • 问题是否与时间有关?它是定期发生还是随机发生。
    • 检查您的日志,检查所有日志,而不仅仅是特定服务的日志,因为其他原因可能会导致问题。日志条目通常有时间戳,这是为了帮助您关联多个应用程序和服务之间的事件 - 使用它们。如有必要,也可以增加日志详细程度。
    • 观察你的系统在做什么。使用 top、vmstat、iostat、sar、ps、tcpdump 等工具,甚至全面的工具监控系统

  2. 分析您收集到的信息。当服务停止响应时,系统上究竟发生了什么?系统资源的状态如何?

  3. 采取适当的措施进行补救。希望您能清楚地知道发生了什么,内存不足,OOM 杀手开始发挥作用,您的交换活动太高,您的运行队列太长,您受到 iobound 等。如果情况不明显,那么您可能没有收集正确的数据 - 您知道该怎么做,请返回 2。

  4. 监控4.处引入的变更。

  5. 这些变化解决了问题吗?是好转了吗?还是恶化了?没有区别吗?接下来该怎么做取决于你发现了什么。你可能需要回到 2. 并收集更多相关数据,或者 3. 重新分析你拥有的数据,或者 4. 因为你已经确定了许多潜在的解决方案。

  6. 记录您的发现和所做的更改。

  7. 回到床上 / 下班回家 / 去酒吧。

1这可能是任何事情,例如‘我的服务器很慢’,‘我的服务器使用了太多内存’...

相关内容