创建了新的 java 实例

创建了新的 java 实例

我通过 ssh 连接到办公室的一台服务器,它运行的是 Lucid Lynx 10.04。我不知道它为什么运行这么多 Java 实例。

谢谢

这是控制台的吐词$ top

Tasks: 134 total,   2 running, 132 sleeping,   0 stopped,   0 zombie
Cpu(s): 98.2%us,  1.8%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1926032k total,  1895432k used,    30600k free,    19500k buffers
Swap:  5644280k total,   192576k used,  5451704k free,   268796k cached

  PID USER      NI  VIRT  RES  SHR S %CPU %MEM    TIME+   PPID GROUP    COMMAND                                                                                                                                
27132 padmin     0 1149m 405m  10m S   58 21.6 429:33.50     1 padmin   java                                                                                                                                   
 7169 padmin     0 1134m 380m  10m S   57 20.2  37:02.32     1 padmin   java                                                                                                                                   
 1893 padmin     0 1142m 381m  10m S   51 20.3 170:03.34     1 padmin   java                                                                                                                                   
 3515 padmin     0 1105m 241m  916 S   20 12.8   4932:54     1 padmin   java                                                                                                                                   
16946 root       0 41784 7768 1084 S    1  0.4   0:00.13  6935 root     munin-node                                                                                                                             
17301 nobody     0 17368 2744 1696 R    1  0.1   0:00.03 16946 munin    memory                                                                                                                                 
16930 root       0 41784 7768 1084 S    1  0.4   0:00.13  6935 root     munin-node                                                                                                                             
   54 root       0     0    0    0 S    0  0.0  22:38.89     2 root     kondemand/0                                                                                                                            
  926 mysql      0  237m 2484  664 S    0  0.1  14:30.06     1 mysql    mysqld                                                                                                                                 
 1692 root       0 1017m  51m  27m S    0  2.7  60:31.46     1 root     mongod                                                                                                                                 
 3284 padmin     0 76400 1032  232 S    0  0.1   0:30.69     1 padmin   memcached                                                                                                                              
16012 padmin     0 19224 1424 1064 R    0  0.1   0:00.82 12115 padmin   top                                                                                                                                    
    1 root       0 23904 1316  644 S    0  0.1   0:00.74     0 root     init                                                                                                                                   
    2 root       0     0    0    0 S    0  0.0   0:00.01     0 root     kthreadd                                                                                                                               
    3 root       0     0    0    0 S    0  0.0   0:00.03     2 root     migration/0                                                                                                                            
    4 root       0     0    0    0 S    0  0.0   0:00.27     2 root     ksoftirqd/0                                                                                                                            
    5 root       0     0    0    0 S    0  0.0   0:00.21     2 root     watchdog/0                                                                                                                             
    6 root       0     0    0    0 S    0  0.0   0:00.03     2 root     migration/1                                                                                                                            
    7 root       0     0    0    0 S    0  0.0   0:00.95     2 root     ksoftirqd/1                                                                                                                            
    8 root       0     0    0    0 S    0  0.0   0:00.15     2 root     watchdog/1                                                                                                                             
    9 root       0     0    0    0 S    0  0.0   1:09.30     2 root     events/0

如您所见,所有 java 实例都具有相同的 ppid。这是一个轻微的情况。在许多疯狂的实例中,最多可以有 7-10 个 java 实例。如果您需要任何其他输出,请告诉我。

另外,每次我登录服务器时,我都会收到

*** System restart required ***

java 实例太多是原因吗?

编辑:$ pstree

init─┬─apache2───5*[apache2]
     ├─atd
     ├─avahi-daemon───avahi-daemon
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─cron
     ├─cupsd
     ├─dbus-daemon
     ├─dnsmasq
     ├─dovecot─┬─2*[dovecot-auth]
     │         ├─3*[imap-login]
     │         └─3*[pop3-login]
     ├─6*[getty]
     ├─java───56*[{java}]
     ├─java───67*[{java}]
     ├─libvirtd───6*[{libvirtd}]
     ├─master─┬─pickup
     │        └─qmgr
     ├─2*[memcached───5*[{memcached}]]
     ├─mongod───76*[{mongod}]
     ├─munin-node
     ├─mysqld───9*[{mysqld}]
     ├─named───4*[{named}]
     ├─nmbd
     ├─postgres───4*[postgres]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─smbd───smbd
     ├─sshd───sshd───sshd───bash───pstree
     ├─udevd───2*[udevd]
     ├─upstart-udev-br
     ├─vsftpd
     └─winbindd───3*[winbindd]

答案1

事实上它是一个 Java 进程,但这并不能告诉你很多关于实际应用程序的信息;你想看到整个命令行。ps -fp $(pgrep -d, -x java)应该给你每个当前 java 进程的完整命令行(如果它们是短暂的进程,那么首先查找进程可能会失败,因为当您尝试找到它的命令行时它可能已经完成,因此在一行中执行它是个好主意)

答案2

我不认为这些代表 Java 线程,因为它们每个都有不同的 PID。

您可以让 padmin 用户(或 root 用户,或者可以使用 sudo 实现此目的的用户等)使用以下任一方法检查这些相应 Java 进程的命令行(将 pid 替换为顶部输出中的相应数字 - 27132、7169 等):

ps -ef | grep pid

或者

猫/ proc / pid / cmdline

这样,至少你可以开始弄清楚它们每一个是从哪里调用的,以及它在做什么。

答案3

1)如果不看你的进程列表,很难判断,但很可能你只是观察了许多 Java线程,实例/进程不多。Java 本质上非常大量使用线程,因此看到很多线程是很正常的。

2) 您已更新服务器,其中一个更新是内核升级。这需要重新启动才能使用新内核,因此 Ubuntu 要求您重新启动服务器。

答案4

“ps aux | grep java” 输出将提供有关该问题的更好的数据。

但是对于给定的数据,只有一个兴趣点:这些 Java 程序的组:padmin。这个用户是你的用户,对吗?因为你正在用这个用户运行“top”。

您还以您的用户身份运行 memcached。因此我怀疑您已以该用户身份运行了完整的服务器实例。也许是 Tomcat?它至少使用 Java。

从那个时间来看,这些进程已经运行了很长时间,所以我猜测它们是程序的某种后端线程。

相关内容