2014-01-09 43 views
1

我发现我的Java Web服务器(Tomcat)的使用高CPU,所以我用 '的ps aux' 来查看进程信息来源,如:在Linux中使用'ps'命令,如何查看实时数据?

# ps aux | grep -E "PID|java" 
USER  PID %CPU %MEM  
root  7533 143 39.8 

它表明了Java的143%的CPU。 然后我用'top'命令看到,java进程的CPU使用率也是大约140%。

之后,我离开了网络服务器(无法访问,错误过程仍然存在)。 然后我用最上方看到,Java中使用非常低的CPU:

# top | grep -E "PID|java"  
PID %CPU %MEM TIME+ COMMAND 
7533 0.7 39.9 455:13.81 java 
PID %CPU %MEM TIME+ COMMAND 

'vmstat的' 也表明,CPU几乎是空闲:

# vmstat 1 
-----cpu------ 
us sy id wa st 
19 1 79 1 0 
0 0 99 1 0 
0 0 100 0 0 
0 0 100 0 0 
0 0 98 1 0 
0 0 99 1 0 

然后,我又用 'PS' 命令,结果是:

#ps aux | grep -E "PID|java" 
USER  PID %CPU %MEM 
root  7533 137 39.8 

这表明7533仍然需要137%cpu!经过很长时间,我再次检查'ps',结果仍然是%137 ...

那么,用'ps'命令显示一些旧数据?我怎样才能看到'ps'的实时数据(因为我想用'ps -L'来查看线程的信息)?或者这是不可能的?

回答

3

有很多工具看到almost实时处理状态,如:
top
htop
dstat

而且,在linux下,你可以探索系统状态,包括cpu informationprocess informationnetwork and interface information和所以第四下/proc文件夹。
这是工具从中提取的所有数据的来源。

+0

你好,谢谢!我不仅要看到进程状态,还要看到线程状态,就像'ps -eL'的结果一样。哪个工具可以做到这一点? – lonelycoder

+0

@lonelycoder我最喜欢的工具是'htop',你可以在'htop'中做一些设置,让它显示'thread'信息! – Rugal