2014-01-09 62 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