【问题标题】:Awake sleeping detached java process唤醒睡眠分离的java进程
【发布时间】:2012-06-11 10:34:55
【问题描述】:

我编写了一个 Java 程序,它分析其他程序。执行可能需要很长时间(= 天)。现在(三天后),我遇到了问题,我的程序/进程正在休眠(S)。它仍然分配了 50% 的内存,有时它会打印新的输出,但 top 显示必须是 0% CPU。

我使用 jstack 来确定仍然有可运行的线程。因此,这似乎不是一个死锁问题。我不知道,为什么进程没有得到更多的cpu时间。我偶然发现了 java 进程的 niceness 从 0 到 -10,但什么也没发生。

更多详情: 该进程在 linux 服务器上运行:Ubuntu 10.04.4 LTS。 我从 screen 开始我的过程。所以,我不必一直登录。

screen -S analyse ant myParameters

服务器几乎无事可做。

感谢您的帮助。

【问题讨论】:

  • 您应该在您的程序中添加一些日志信息,以确保线程仍在工作。
  • 您提供的细节不够。请提供您的程序的一些代码sn-p。
  • 感谢您的回复。我确信线程仍在工作,因为 jstack 表明它们是可运行的,并且程序会不时打印新的控制台输出。

标签: java linux process cpu scheduling


【解决方案1】:

在调试模式下启动您的程序。然后,您可以使用任何 Java 调试器附加到它并检查它在做什么。

【讨论】:

    猜你喜欢
    • 2014-07-29
    • 1970-01-01
    • 2012-10-08
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多