SIZE 進程的代碼大小加上數據大小再加上堆棧空間大小的總數,單位是KB RSS 進程占用的物理內存的總數量,單位是KB SHARE 進程使用共享內存的數量 top命令詳解 名稱:top 使用權限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 說明:即時顯示 process 的動態 把計 d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行 c : 切換顯示模式,共有兩種模式,一是只顯示執行檔的名稱,另一種是顯示完整的路徑與名稱S : 累積模式,會將己完成或消失的子行程 ( dead child process ) 的 CPU time 累積起來 s : 安全模式,將交談式指令取消, 避免潛在的危機 i : 不顯示任何閑置 (idle) 或無用 (zombie) 的行程 n : 更新的次數,完成后將會退出 top b : 批次檔模式,搭配 "n" 參數一起使用,可以用來將 top 的結果輸出到檔案內 范例: 顯示更新十次后退出 ; top -n 10 使用者將不能利用交談式指令來對行程下命令 : top -s 將更新顯示二次的結果輸入到名稱為 top.log 的檔案里 : top -n 2 -b < top.log 另:其它功能 3. 交互命令: [Space] 立即刷新顯示 [h] 顯示幫助屏幕 [k] 殺死某進程。你會被提示輸入進程 ID 以及要發送給它的信號。 一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被屏蔽。 [n] 改變顯示的進程數量。你會被提示輸入數量。 [u] 按用戶排序。 [M] 按內存用量排序。 [o][O] 改變顯示項目的順序。 [P] 根據CPU使用百分比大小進行排序。 [T] 根據時間/累計時間進行排序。 [Ctrl+L] 擦除并且重寫屏幕。 [q] 退出程序。 [r] 重新安排一個進程的優先級別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10。 [S] 切換到累計模式。 [s] 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位為s。如果有小數,就換算成m s。輸入0值則系統將不斷刷新,默認值是5 s。需要注意的是如果設置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。 4. 顯示說明 ====================================================================== 17:31:42 up 18 days, 23:38, 1 user, load average: 0.00, 0.00, 0.00 當前時間 系統運行時間 當前用戶數 平均負責(1、5、10分鐘) ====================================================================== 94 processes: 93 sleeping, 1 running, 0 zombie, 0 stopped 進程總數 休眠進程數 運行進程數 僵死進程數 終止進程數 ====================================================================== CPU states: cpu user nice system irq softirq iowait idle total 0.0% 0.0% 0.1% 0.0% 0.0% 0.0% 99.8% cpu00 0.0% 0.0% 0.3% 0.0% 0.0% 0.0% 99.6% cpu01 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0% cpu狀態 用戶占用 優先.. 系統.. 中斷 軟中斷 ?? 空閑 ====================================================================== Mem: 3094664k av, 2627700k used, 466964k free, 0k shrd, 120776k buff 1434068k actv, 155972k in_d, 41624k in_c Swap: 2048248k av, 130068k used, 1918180k free 1319416k cached 內存使用情況:可用內存,已使用內存,空閑內存....... swap情況: ======================================================================= PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND 9590 root 25 0 172M 172M 11740 S 4.3 5.7 0:17 0 java PID 每個進程的ID USER 進程所有者的用戶名 PRI 每個進程的優先級別 NI 每個優先級的值 SIZE 進程的代碼大小加上數據大小再加上堆棧空間大小的總數,單位是KB RSS 進程占用的物理內存的總數量,單位是KB SHARE 進程使用共享內存的數量 STAT 進程的狀態。其中S代表休眠狀態;D代表不可中斷的休眠狀態;R代表運行狀態;Z代表僵死狀態;T代表停止或跟蹤狀態 %CPU 進程自最近一次刷新以來所占用的CPU時間和總時間的百分比 %MEM 進程占用的物理內存占總內存的百分比 TIME 進程自啟動以來所占用的總CPU時間 CPU CPU標識 COMMAND 進程的命令名稱 --------------------------------------------------------------------------------- top命令的顯示結果如下所示: top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 191272k total, 173656k used, 17616k free, 22052k buffers Swap: 192772k total, 0k used, 192772k free, 123988k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd 14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top 1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 統計信息區 前五行是系統整體的統計信息。第一行是任務隊列信息,同 uptime 命令的執行結果。其內容如下: 01:06:48 當前時間 up 1:22 系統運行時間,格式為時:分 1 user 當前登錄用戶數 load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度。 三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。 第二、三行為進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。內容如下: Tasks: 29 total 進程總數 1 running 正在運行的進程數 28 sleeping 睡眠的進程數 0 stopped 停止的進程數 0 zombie 僵尸進程數 Cpu(s): 0.3% us 用戶空間占用CPU百分比 1.0% sy 內核空間占用CPU百分比 0.0% ni 用戶進程空間內改變過優先級的進程占用CPU百分比 98.7% id 空閑CPU百分比 0.0% wa 等待輸入輸出的CPU時間百分比 0.0% hi 0.0% si 最后兩行為內存信息。內容如下: Mem: 191272k total 物理內存總量 173656k used 使用的物理內存總量 17616k free 空閑內存總量 22052k buffers 用作內核緩存的內存量 Swap: 192772k total 交換區總量 0k used 使用的交換區總量 192772k free 空閑交換區總量 123988k cached 緩沖的交換區總量。 內存中的內容被換出到交換區,而后又被換入到內存,但使用過的交換區尚未被覆蓋, 該數值即為這些內容已存在于內存中的交換區的大小。 相應的內存再次被換出時可不必再對交換區寫入。 進程信息區 統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。 序號 列名 含義 a PID 進程id b PPID 父進程id c RUSER Real user name d UID 進程所有者的用戶id e USER 進程所有者的用戶名 f GROUP 進程所有者的組名 g TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ? h PR 優先級 i NI nice值。負值表示高優先級,正值表示低優先級 j P 最后使用的CPU,僅在多CPU環境下有意義 k %CPU 上次更新到現在的CPU時間占用百分比 l TIME 進程使用的CPU時間總計,單位秒 m TIME+ 進程使用的CPU時間總計,單位1/100秒 n %MEM 進程使用的物理內存百分比 o VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES p SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。 q RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA r CODE 可執行代碼占用的物理內存大小,單位kb s DATA 可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb t SHR 共享內存大小,單位kb u nFLT 頁面錯誤次數 v nDRT 最后一次寫入到現在,被修改過的頁面數。 w S 進程狀態。 D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程 x COMMAND 命令名/命令行 y WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名 z Flags 任務標志,參考 sched.h 默認情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。 更改顯示內容 通過 f 鍵可以選擇顯示的內容。按 f 鍵之后會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最后按回車鍵確定。 按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最后按回車鍵確定。 按大寫的 F 或 O 鍵,然后按 a-z 可以將進程按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。 |
|