【问题标题】:Will defunct processes prevent proper running of other processes? [closed]失效的进程会阻止其他进程的正常运行吗? [关闭]
【发布时间】:2011-01-25 18:11:07
【问题描述】:

我的杂种没有响应,上帝重启和集群重启都没有太大的不同。我挖得更深一点,发现我有很多僵尸进程。

应用 29607 27948 0 19:45 ? 00:00:00 [mongrel_rails] 应用程序 30578 21681 0 19:52? 00:00:00 [mongrel_rails] 应用程序 30704 21405 0 19:53? 00:00:00 [mongrel_rails]

但是,在我使用这个杀死父进程之后:

"ps -ef | grep defunct | grep -v grep | awk '{print $3}' | xargs kill -9"

重新启动开始工作。我杀死僵尸是否有助于重启工作?如果是这样,那就很奇怪了,因为我找不到任何可以解释失效进程如何影响正常进程的参考

【问题讨论】:

    标签: ruby-on-rails linux process mongrel god


    【解决方案1】:

    我相信僵尸进程会保留预定义的一组套接字(例如 8000),因此阻止了混合进程的正确重启。

    【讨论】:

      【解决方案2】:

      僵尸进程有可能阻止新进程。 Linux 可以限制唯一进程的数量,一旦所有这些进程都在使用中,您将无法创建新进程。

      在相对现代的 Linux (openSUSE 11.1) 上,默认值为 32,768 个进程。

      附带说明,您不能杀死僵尸进程,因为它们已经退出。如果父进程没有收割它的子进程,你需要杀死父进程以便 init 可以收割僵尸。

      进一步考虑,您可能没有达到机器总进程限制,而是达到每个用户的 ulimit 进程限制。此限制通常低于总操作系统限制。要找出你的限制是什么,你可以运行ulimit -u

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-09
        • 1970-01-01
        • 2014-04-09
        • 1970-01-01
        • 1970-01-01
        • 2021-04-26
        • 1970-01-01
        相关资源
        最近更新 更多