【发布时间】:2013-08-17 15:25:36
【问题描述】:
我有一个 Grails 2.2.4 应用程序,它被打包为 war,并部署到我的 ubuntu 12.04 LTS 64 位、8GB RAM 上的 tomcat7 服务器上。
我的 setenv.sh 文件包含以下内容:
CATALINA_OPTS="
-server
-Xms1G
-Xmx2G
-XX:MaxPermSize=512m";
我使用 htop 来获取正在运行的进程数。我发现我的系统上有 20 多个正在运行的 java 进程。
20多个进程中的每个进程如下所示:
PRI NI VIRT RES SHR S CPU% MEM* TIME+ Command
20 0 6028M 1290M 11140 S 0.0 16.2 0:01.21 /usr/lib/jvm/java-7-oracle/bin/java -Djava.util.logging.config.file
当我使用 ./bin/startup.sh 统计 tomcat 时,我的应用程序启动时没有错误。当我使用不同的浏览器访问我的应用程序时,我会运行 20 多个 Java 进程。我运行的唯一其他 Java 进程是 elasticsearch。
- 为什么 tomcat 会为我的应用程序启动这么多进程?
- 我必须限制它们吗?如果有怎么办?
【问题讨论】:
-
我怀疑 Tomcat 正在这样做。您是否在每次启动前执行关机?
-
我从一个干净的系统开始。唯一运行的其他 java 进程是弹性搜索。
标签: java spring tomcat grails jvm