我發現我的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