【发布时间】:2012-09-25 17:26:32
【问题描述】:
我正在运行一个实验性的 Java 应用程序,每次我终止或停止该应用程序时,都会创建僵尸进程。我知道僵尸并不是真正的问题,因为它们(据说)不会消耗资源。但是,我的 RAM 可用空间明显少于应有的空间。这是
的转储ps aux | grep java
3052 8.5 0.0 0 0 ? Zl Sep24 127:24 [java] <defunct>
6644 0.9 0.0 0 0 ? Zl Sep24 13:20 [java] <defunct>
8325 0.7 0.0 0 0 ? Zl Sep24 11:01 [java] <defunct>
8954 0.7 0.0 0 0 ? Zl Sep24 11:01 [java] <defunct>
16229 1.3 0.0 0 0 ? Zl Sep24 16:57 [java] <defunct>
19222 106 0.0 0 0 ? Zl Sep24 1346:37 [java] <defunct>
以下都不起作用:(
kill -9 PID , kill -1 PID, kill -KILL PID
我无法重启我的机器!所以我非常欢迎任何解决方案。
【问题讨论】:
-
如果您的机器无法重新启动并且进程表太大以至于占用了很大一部分 RAM,那么是时候拔掉电源插头或呼叫驱魔人了。
-
您有几个基本的误解,但最重要的是:您应该拥有的可用 RAM 量尽可能接近于零。空闲内存是纯粹的损失。这不像今天使用一半的 RAM,明天就可以使用额外的 RAM。如果您希望 RAM 空闲,请将其从您的机器中取出并放在您的办公桌上。当我们想让系统性能更好时,我们通常通过增加 RAM 来让它使用更多的 RAM。
-
好吧,谢谢大卫,但我知道我在说什么。
-
@DotNet:如果你这样做了,你就不会说“我的 RAM 可用空间明显少于应有的空间”。可用 RAM 应尽可能接近零,以使操作系统能够摆脱。
标签: linux kill-process zombie-process