gpt4 book ai didi

java - 为什么 Tomcat 会为我的应用程序打开那么多 Java 进程?

转载 作者:行者123 更新时间:2023-11-28 21:54:14 26 4
gpt4 key购买 nike

我有一个 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。

  1. 为什么 tomcat 会为我的应用程序启动这么多进程?
  2. 我必须限制他们吗?如果是,如何?

最佳答案

您可能看到的是线程而不是进程。根据 man htop,您可以使用 H 命令以交互方式隐藏用户线程。

根据记录,Tomcat 将创建许多工作线程来处理传入的 HTTP 请求。如果您(真的)需要控制工作线程的数量,可以使用 Tomcat 配置选项来实现。

关于java - 为什么 Tomcat 会为我的应用程序打开那么多 Java 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com