Linux 實(shí)時(shí)查看進(jìn)程 top
詳情點(diǎn)擊鏈接:? https://www.xiaobuteach.com/linux2/process/top.html?from=bili
Linux 實(shí)時(shí)查看進(jìn)程 top
top命令用于動(dòng)態(tài)實(shí)時(shí)的查看進(jìn)程信息,以及系統(tǒng)信息,包括:CPU、內(nèi)存、負(fù)載。
為更好的理解各數(shù)據(jù),我們運(yùn)行了一個(gè)消耗系統(tǒng)CPU與內(nèi)存的程序。本文結(jié)尾附JAVA程序。
基本語(yǔ)法
top
運(yùn)行結(jié)果

1 結(jié)果說(shuō)明
第1行 綜合說(shuō)明
top - 05:24:40 up 3:34 :當(dāng)前時(shí)間為05:24:40,已運(yùn)行時(shí)間3:34(小時(shí):分鐘)
3 users :當(dāng)前登錄用戶(hù)3個(gè)。
load average: 2.04, 2.73, 2.21 :系統(tǒng)負(fù)載平均值:過(guò)去1分鐘的均值,過(guò)去5分鐘的均值,過(guò)去15分鐘的均值。
第2行 進(jìn)程情況
Tasks: 212 total, :進(jìn)程的總數(shù)量212
1 running :正在運(yùn)行進(jìn)程的數(shù)量1
211 sleeping, 0 stopped, 0 zombie :睡眠進(jìn)程,停止進(jìn)程,僵尸進(jìn)程的數(shù)量。
第3行 CPU情況
%Cpu(s): 55.8 us, 0.8 sy, 0.0 ni, 43.4 id:用戶(hù)進(jìn)程使用率,系統(tǒng)進(jìn)程使用率,nice用戶(hù)進(jìn)程使用率, idle進(jìn)程使用率
0.0 wa, 0.0 hi, 0.0 si, 0.0 st:等待IO,硬件中斷,軟件中斷,搶斷 (的消耗時(shí)間)
第4行 內(nèi)存情況
KiB Mem : 1862996 total, 472880 free, 951280 used, 438836 buff/cache
總大?。?.8G,空閑0.47G,已使用0.95G,緩存0.43G。
第5行 SWAP情況
KiB Swap: 2097148 total, 2097148 free, 0 used. 732068 avail Mem
交換區(qū) 總大小2G,空閑2G,已使用0,可一次性分配給程序的可用大?。?.73G。
第6行 進(jìn)程表格
標(biāo)題示例值說(shuō)明PID5788Process ID,進(jìn)程IDUSERroot用戶(hù)名PR20priority,進(jìn)程優(yōu)先級(jí)NI0nice,用戶(hù)進(jìn)程nice值VIRT2898832virtual,虛擬內(nèi)存大小RES435836常駐內(nèi)存大小SHR12232共享內(nèi)存大小SSState,狀態(tài)。R表示運(yùn)行中;S表示睡眠。%CPU227.6CPU使用率%MEM23.4內(nèi)存使用率TIME+2:22.25累計(jì)使用CPU時(shí)間COMMANDjava運(yùn)行命令
2 進(jìn)程%CPU為什么大于100
示例數(shù)據(jù)中
匯總%Cpu(s): 54.3 us,用戶(hù)進(jìn)程CPU總共占54.3%;
而java進(jìn)程%CPU為227.6,大于100,為什么?
原因
匯總值是以所有CPU個(gè)數(shù)的對(duì)應(yīng)時(shí)間為比例進(jìn)行計(jì)算;
進(jìn)程%CPU是以單個(gè)CPU的對(duì)應(yīng)時(shí)間為比例進(jìn)行計(jì)算。
查看CPU個(gè)數(shù)設(shè)置

CPU內(nèi)核數(shù)為4 。
54.3*4=217.2,約等于227.6 。
3 操作命令
top運(yùn)行結(jié)果界面實(shí)時(shí)更新,也可以同時(shí)按操作命令鍵,執(zhí)行相應(yīng)操作。
操作命令說(shuō)明回車(chē)或空格立即刷新c顯示命令的詳細(xì)信息i只顯示占用資源高的進(jìn)程;再次按顯示所有進(jìn)程o添加過(guò)濾ctrl+o顯示過(guò)濾=取消所有過(guò)濾q退出
例1:查看命令詳情
按下c運(yùn)行結(jié)果

默認(rèn)情況,只有命令名,沒(méi)有運(yùn)行參數(shù)與選項(xiàng)。C后顯示。
例2:查看高負(fù)載進(jìn)程
按下i運(yùn)行結(jié)果

其它低負(fù)載進(jìn)程不再顯示。連續(xù)按i進(jìn)行切換。
例3:過(guò)濾
按o,然后輸入過(guò)濾條件 COMMAND=java

回車(chē)后

Ctrl+O查看過(guò)濾條件

= 取消過(guò)濾。
4 附:模擬消耗資源的程序
XiaobuteachBig.java
import java.util.ArrayList;
/**
* Author: 小步教程 ?www.xiaobuteach.com
* 用于消耗CPU與內(nèi)存
* 消耗內(nèi)存:約1G
* 消耗CPU:會(huì)盡量消耗,其中有死循環(huán)
*/
public class XiaobuteachBig {
? ?public static void main(String[] args) {
? ? ? ?for(;true;){
? ? ? ? ? ?ArrayList arrayList = new ArrayList();
? ? ? ? ? ?for (int i = 0; i < 100; i++) {
? ? ? ? ? ? ? ?byte[] byteArr = new byte[1000000];
? ? ? ? ? ? ? ?byteArr[i] = (byte)i ;
? ? ? ? ? ? ? ?arrayList.add(byteArr);
? ? ? ? ? ?}
? ? ? ?}
? ?}
}
已經(jīng)編繹好XiaobuteachBig.class,可通過(guò)下方群獲取,或者自行編繹。
將XiaobuteachBig.class上傳到/code目錄

cd到/code目錄,然后執(zhí)行
[root@xiaobuteach code]# java XiaobuteachBig

代碼會(huì)一直運(yùn)行,命令提示符不會(huì)彈出。要執(zhí)行其它命令需要新打開(kāi)一個(gè)連接。