У меня есть приложение java / tomcat, работающее на RedHat linux. Сначала, когда я запускаю приложение, все вроде работает отлично. Однако через некоторое время, я полагаю, через 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 экземпляров. Пожалуйста, пролей свет на эту загадку.
Вы могли увидеть crontab myuser и root с crontab -l
команда. Если ничего нет, возможно, секция postrotate конфигурации logrotate запускает новые процессы.
В приложении может быть автоматический перезапуск jvm-кода. Я бы поискал очевидные места, такие как crontab, а также посмотрел, почему он запускается под двумя пользователями (это означает, что запускается из двух мест). Если это внутреннее приложение, вы также можете спросить разработчика, поскольку он может перезапустить приложение из самого приложения.