9.7 top:实时显示系统中各个进程的资源占用状况
top命令
? 用于實時地對系統處理器狀態進行監控,它能夠實時地顯示系統中各個進程的資源占用狀況。該命令可以按照CPU的使用、內存的使用和執行時間對系統任務進程進行排序顯示,同時top命令還可以通過交互式命令進行設定顯示。
top命令的參數選項及說明
-a 將進程按照使用內存排序 -b 以批處理的模式顯示進程信息,輸出結果可以傳遞給其他程序或寫入到文件中。在這種模式下,top命令不會接受任何輸入,一直運行直到達到 -n 選項設置的閥值,或者按Ctrl+C等組合鍵終止程序 -c 顯示進程的整個命令路徑,而不是只顯示命令名稱 -d 指定每兩次屏幕信息刷新之間的時間間隔 -H 指定這個可以顯示每個線程的情況,否則就是進程的總的狀態 -i 不顯示閑置或者僵死的進程信息 -n top輸出信息更新的次數,完成后將退出top命令 -p 顯示指定的進程信息交互式命令
交互式命令就是在top命令執行過程中使用的一些命令。對交互式命令說明h或? 顯示幫助信息,給出交互式命令的一些說明總結 Z 全局顏色設置 B 全局字體加粗設置 l 切換是否顯示平均負載和啟動時間信息 t 切換是否顯示進程和CPU狀態信息 m 切換是否顯示內存信息 1 數字1,用于多核CPU監控,可監控每個邏輯CPU的狀況 I Irix/Solaris模式 f 從當前顯示列表中添加或刪除項目。按“f”鍵之后會顯示列的列表,按“a~z”鍵即可顯示或隱藏對應的列,最后按回車鍵確定 o 改變top輸出信息中顯示項目的順序。按小寫的“a~z”鍵可以將相應的列向右移動,而按大寫的“A~Z”鍵可以將相應的列向左移動,最后按回車鍵確定 F或O 選擇排序的列 <,> 移動選擇排序的列,“<”選擇左鄰一列排序,“>”選擇右鄰一列排序R 切換正常/反轉排序 H 切換是否顯示線程信息 c 切換是否顯示完整命令行和命令名稱信息 i 切換是否顯示閑置進程和僵死進程 S 切換到累計模式 x 以高亮的形式排序對應列,需要結合b/z使用 y 高亮運行的進程,需要結合b/z使用 z 打開/關閉顏色 b 打開/關閉加粗 u 顯示指定用戶相關的進程信息 n或# 設置顯示進程的最大行數 k 終止一個進程,系統將提示用戶輸入一個需要終止進程的PID r 重新設置一個進程的優先級,系統提示用戶輸入需要改變的進程PID,以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10 d或s 改變top輸出信息兩次刷新之間的時間,系統將提示輸入新的時間,單位是s。如果是小數,則換算成ms;如果輸入0,那么系統輸出將會不斷刷新,默認刷新時間是3s。需要注意的是,如果設置太小的時間,則可能會引起系統不斷刷新,無法看清輸出顯示情況,而且系統負載也會加大 W 將當前top設置寫入“.toprc”文件中 q 退出top顯示顯示進程信息
下面針對命令各行的內容進行說明。 第一行,任務隊列信息,同uptime命令的執行結果。02:39:54 當前系統時間。up 1day,16:36 系統已經運行了1天16小時36分。1 users 當前有 1 個用戶登錄系統。load average:0.00,0.00,0.00load average后面的三個數分別是1分鐘、5分鐘、15分鐘的平均負載情況。 第二行,Tasks為任務(進程)。從上面的信息可以看出,系統現在共有134個進程,其中處于運行狀態的有1個,91個在休眠(sleep),stoped狀態0個,zombie狀態(僵死)的有0個。 第三行,CPU狀態信息。0.0%us 用戶空間占用CPU的百分比。0.0%sy 內核空間占用CPU的百分比。0.0%ni 改變過優先級的進程占用CPU的百分比。100.0%id 空閑CPU百分比。0.0%wa I/0等待占用CPU的百分比。0.0%hi 硬中斷(Hardware IRQ)占用CPU的百分比。0.0%si 軟中斷(Software Interrupts)占用CPU的百分比。0.0%st 虛擬機占用CPU的百分比。 第四行,內存狀態。486224k total 物理內存總量。401188k used 使用中的內存總量。85036k free 空閑內存總量。42352k buffers 緩沖的內存量。 第五行,swap交換分區信息。1535996k total 交換區總量。0k used 使用的交換區總量。1535996k free 空閑交換區總量。216936k cached 緩存的內存量。1)計算真正可用的內存數為:第四行的free+第四行的buffers+第五行的cached。 2)在對內存進行監控時,我們要時刻關注top命令里第五行swap交換分區的used,如果這個數值還在不斷地變化,則說明內核正在不斷進行內存和swap的數據交換,這表示內存真的不夠用了或者程序運行有內存溢出問題。第六行,空行。 從第七行開始,給出的是各進程(任務)的狀態監控。PID 進程id。USER 進程所有者。PR 進程優先級。NI nice值,負值表示高優先級,正值表示低優先級。VIRT 進程使用的虛擬內存總量,單位為kb。RES 進程使用的、未被換出的物理內存大小,單位為kb。SHR 共享內存大小,單位為kb。S 進程狀態。D=不可中斷的睡眠狀態R=運行S=睡眠T=跟蹤/停止Z=僵尸進程。%CPU 上次更新到現在的CPU時間占用百分比。%MEM 進程使用的物理內存百分比。TIME+ 進程使用的CPU時間總計,單位1/100秒。COMMAND 進程名稱(命令名/命令行)。顯示多核不同核CPU的信息
按數字“1”,可監控每個邏輯CPU情況
服務器有兩個CPU,再按數字1返回到top基本視圖界面
將進程按照使用內存排序
[root@cs6 ~]# top -a # centos 7 里面沒有該選項,top交互模式下按 M
以批處理模式顯示進程信息。
[root@doit ~]# top -b #<=使用參教 -b 可以看到命令執行結果不停地向下刷新。
顯示進程的完整路徑
[root@doit ~]# top -c #<=使用參數-c 顯示進程的整個命令路經,而不是只顯示命令名稱。
設置執行top命令后的信息刷新時間
[root@doit ~]# top -d 3 #<==使用參數-d指定更新周期為3秒,也就是說命令結果每隔3s刷新一次。
設置執行top命令后的信息刷新次數。
[root@doit ~]# top -n 2 #<=使用參數 -n 指定更新次數為2次,也就是說命令結果刷新兩次后終止退出,-n參數可以和一d參數配合使用。
顯示指定的進程信息
[root@doit ~]# top -p 3782
字段排序(交互模式)例子
默認進入top命令時,各進程是按照CPU的使用量來排序的。
敲擊鍵盤“b”和“x”,得到圖
敲擊鍵盤“z”和“x”,
敲擊z后,可以看到大部分內容都變成了紅色,再敲x,對列高亮顯示。
通過“>”或“<”可以向右或向左改變排序列,
敲擊鍵盤“>”或“<”,可以改變排序的列,依然高亮顯示,降序排列。
總結
以上是生活随笔為你收集整理的9.7 top:实时显示系统中各个进程的资源占用状况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9.2-3 pstree pgrep
- 下一篇: 9.10 nohup:用户退出系统进程继