应用程序以多个进程运行

应用程序以多个进程运行

我有一个在 RedHat Linux 上运行的 java/tomcat 应用程序。最初,当我启动该应用程序时,一切似乎都运行良好。然而,过了一段时间,我猜是 1-2 天,我看到了以下顶级输出。

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

7023 root      20   0 2857m 577m 5920 S  0.0 14.6   5:12.80 /prd/JAVA//bin/java -Djava.util.logging.config.file=/prd/myapp

17729 myus     20   0 2875m 574m 5920 S  0.0 14.5  10:49.76 /prd/JAVA//bin/java -Djava.util.logging.config.file=/prd/myapp

12597 root      20   0 2868m 564m 6304 S  0.0 14.3   5:54.86 /prd/JAVA//bin/java -Djava.util.logging.config.file=/prd/myapp

15863 myus     20   0 2856m 563m 5936 S  0.0 14.2  10:21.21 /prd/JAVA//bin/java -Djava.util.logging.config.file=/prd/myapp

我真的很困惑我的应用程序怎么会运行 4 次。值得一提的是,它还占用了所有 4 个实例的内存。请解开这个谜团。

答案1

它可能在应用程序中有一个自动重启 jvm 代码。我会寻找像 crontab 这样明显的地方,并查看为什么它在两个用户下启动(这意味着它从两个地方启动)。如果它是内部应用程序,那么您可能还会询问开发人员,因为他可以从应用程序本身重新启动该应用程序。

答案2

您可以使用以下命令查看 myuser 和 root 的 crontab crontab -l。如果没有,则可能是 logrotate 配置的 postrotate 部分正在启动新进程。

相关内容