天天看點

top2

1)指令及參數基本用法:

<code>top</code> <code>-hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]</code>

<code>d 指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動指令來改變之。</code>

<code>p 通過指定監控程序ID來僅僅監控某個程序的狀态。</code>

<code>q 該選項将使top沒有任何延遲的進行重新整理。如果調用程式有超級使用者權限,那麼top将以盡可能高的優先級運作。</code>

<code>S 指定累計模式。</code>

<code>s 使top指令在安全模式中運作。這将去除互動指令所帶來的潛在危險。</code>

<code>i 使top不顯示任何閑置或者僵死程序。</code>

<code>c 顯示整個指令行而不隻是顯示指令名。</code>

<code>-n :與 -b 搭配,意義是,需要進行幾次 top 的輸出結果。</code>

<code>-p :指定某些個 PID 來進行觀察監測而已。</code>

<code>在 top 執行過程當中可以使用的按鍵指令:</code>

<code>? :顯示在 top 當中可以輸入的按鍵指令;</code>

<code>P :以 CPU 的使用資源排序顯示;</code>

<code>M :以 Memory 的使用資源排序顯示;</code>

<code>N :以 PID 來排序喔!</code>

<code>T :由該 Process 使用的 CPU 時間累積 (TIME+) 排序。</code>

<code>k :給予某個 PID 一個訊号 (signal)</code>

<code>r :給予某個 PID 重新制訂一個 nice 值。</code>

1)top指令執行結果如圖所示

2)top指令執行結果重要列的含義詳解

top指令結果各列的含義如下:

<code>列名    含義</code>

<code>PID    程序id</code>

<code>PPID    父程序id</code>

<code>RUSER    Realusername</code>

<code>UID    程序所有者的使用者id</code>

<code>USER    程序所有者的使用者名</code>

<code>GROUP    程序所有者的組名</code>

<code>TTY    啟動程序的終端名。不是從終端啟動的程序則顯示為?</code>

<code>PR       優先級</code>

<code>NInice     值。負值表示高優先級,正值表示低優先級</code>

<code>P        最後使用的CPU,僅在多CPU環境下有意義</code>

<code>%CPU    上次更新到現在的CPU時間占用百分比</code>

<code>TIME    程序使用的CPU時間總計,機關秒</code>

<code>TIME+    程序使用的CPU時間總計,機關1/100秒</code>

<code>%MEM    程序使用的實體記憶體百分比</code>

<code>VIRT    程序使用的虛拟記憶體總量,機關kb。VIRT=SWAP+RES</code>

<code>SWAP    程序使用的虛拟記憶體中,被換出的大小,機關kb。</code>

<code>RES    程序使用的、未被換出的實體記憶體大小,機關kb。RES=CODE+DATA</code>

<code>CODE    可執行代碼占用的實體記憶體大小,機關kb</code>

<code>DATA    可執行代碼以外的部分(資料段+棧)占用的實體記憶體大小,機關kb</code>

<code>SHR    共享記憶體大小,機關kb</code>

<code>nFLT    頁面錯誤次數</code>

<code>nDRT    最後一次寫入到現在,被修改過的頁面數。</code>

<code>S    程序狀态。</code>

<code>D=    不可中斷的睡眠狀态</code>

<code>R=    運作</code>

<code>S=    睡眠</code>

<code>T=    跟蹤/停止</code>

<code>Z=    僵屍程序</code>

<code>COMMAND    指令名/指令行</code>

<code>WCHAN    若該程序在睡眠,則顯示睡眠中的系統函數名</code>

3)top指令執行結果按照某一列排序

更改顯示内容

按大寫的 F 或 O 鍵,然後按 a-z 可以将程序按照相應的列進行排序。而大寫的 R 鍵可以将目前的排序倒轉。

<code>[root@linux ~]# top -d 2</code>

<code>top - 18:30:36 up 30 days, 7 min, 1 user, load average: 0.42, 0.48, 0.45</code>

<code>Tasks: 163 total, 1 running, 161 sleeping, 1 stopped, 0 zombie</code>

<code>Cpu(s): 4.7% us, 4.0% sy, 6.3% ni, 82.5% id, 0.4% wa, 0.1% hi, 2.0% si</code>

<code>Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers</code>

<code>Swap: 1052216k total, 728k used, 1051488k free, 360248k cached</code>

<code>&lt;==如果加入 k 或 r 時,就會有相關的字樣出現在這裡</code>

<code> </code> 

<code>PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND</code>

<code>3981 apache 34 19 84012 11m 7352 S 17.3 1.2 0:00.09 httpd</code>

<code>1454 mysql 16 0 289m 40m 2228 S 3.8 4.0 115:01.32 mysqld</code>

<code>3985 dmtsai 15 0 2148 904 668 R 3.8 0.1 0:00.03 top</code>

<code>1 root 16 0 3552 552 472 S 0.0 0.1 0:08.90 init</code>

<code>2 root RT 0 0 0 0 S 0.0 0.0 0:52.76 migration/0</code>

<code>3 root 34 19 0 0 0 S 0.0 0.0 0:03.01 ksoftirqd/0</code>

<code>[root@linux ~]</code><code># top -b -n 2 &gt; /tmp/top.txt</code>

<code>[root@linux ~]# top -d 2 -p 9999</code>

<code>top - 13:53:00 up 51 days, 2:27, 1 user, load average: 0.00, 0.00, 0.00</code>

<code>Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie</code>

<code>Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si</code>

<code>Mem: 385676k total, 371760k used, 13916k free, 131164k buffers</code>

<code>Swap: 1020116k total, 880k used, 1019236k free, 95772k cached</code>

<code>9999 root 16 0 5396 1544 1244 S 0.0 0.4 0:00.07 bash</code>

<code>top</code> <code>-H</code>

加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個程序。

<code>top</code> <code>-H -p 2308</code>

示例5: top指令執行結果之後按數字鍵1顯示各個CPU的核心指令

Linux下top指令中%CPU結果為什麼比%us的結果高?

在Linux下怎樣讓top指令啟動之後就按記憶體使用排序?

      本文轉自Tenderrain 51CTO部落格,原文連結:http://blog.51cto.com/tenderrain/1982721,如需轉載請自行聯系原作者