我发现我的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'来查看线程的信息)?或者这是不可能的?
你好,谢谢!我不仅要看到进程状态,还要看到线程状态,就像'ps -eL'的结果一样。哪个工具可以做到这一点? – lonelycoder
@lonelycoder我最喜欢的工具是'htop',你可以在'htop'中做一些设置,让它显示'thread'信息! – Rugal