linux - Apache Tomcat 始终运行 3 个相同的进程

标签 linux tomcat

我有一个正在运行电子商务应用程序的 Apache Tomcat 服务器。我正在使用 Tomcat 6 和 Apache 以及 mod_jk 运行 Debian Stable。

当我启动 Tomcat 时,我总是在内存中收到 3 个相同的进程:

 0:00 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid -Djava.awt.headless=true -Xmx11000M -Xms11000M -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -XX:+UseParallelGC -XX:ParallelGCThreads=6 -Dcom.sun.management.jmxremote -XX:+AgressiveHeap -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/home/tomcat-temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap
 0:00 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid -Djava.awt.headless=true -Xmx11000M -Xms11000M -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -XX:+UseParallelGC -XX:ParallelGCThreads=6 -Dcom.sun.management.jmxremote -XX:+AgressiveHeap -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/home/tomcat-temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap
53:18 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid -Djava.awt.headless=true -Xmx11000M -Xms11000M -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -XX:+UseParallelGC -XX:ParallelGCThreads=6 -Dcom.sun.management.jmxremote -XX:+AgressiveHeap -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/home/tomcat-temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap

我担心这可能是一个问题。我只是试图杀死前两个进程,因为它们不使用处理器能力(0:00 时间),但在轻柔地杀死第一个进程后,其他进程也会终止。

我们这台机器只有16G,内存不足。如果我真的为这3个进程分别分配11G,这可能是我最近遇到的麻烦的一部分。

我的问题是:这正常吗?谷歌搜索答案,似乎没有其他人遇到这个问题,或者没有人认为这是一个问题。

哦,pid 文件命名了占用 CPU 时间的进程。

最佳答案

由于 outfile/errfile 设置为 SYSLOG,因此创建了明显不活动的子线程。它从主子进程接收日志消息并将其传递到系统日志。

为了演示这一点,如果您设置不设置 outfile 和 errfile,或者将它们设置为常规文件,则只有父线程和主子线程才会启动。您还可以看到“netstat -anp|grep jsvc”中的差异,如果您输出到 SYSLOG,则会显示一个额外的套接字

所以就像 Tim Funk 所说的那样,这没什么好担心的,而且它正在按预期工作。

关于linux - Apache Tomcat 始终运行 3 个相同的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827962/

相关文章:

tomcat - 在 tomcat 上运行的 Birt 查看器

tomcat - 如何在我的系统中使用 Puppet

linux - 用于对数组进行排序的 Perl 程序不起作用

c++ - 无法在 gnu linux c++ 中写入 ostream 错误 : invalid operands of types ofstream and ‘const char [2]’ to binary ‘operator

Python 读取名为 PIPE

java - org.apache.activemq.broker.TransportConnection serviceTransportException 警告 : java. io.EOFException

tomcat - 包 javax.servlet.*;不存在,其他javax包也不存在

java - Spring MVC default-servlet-handler 配置阻塞 JSTL View

linux - x86 Linux 汇编程序从_start 获取程序参数

c - KMALLOC 大小分配