天天看點

top指令

來源《鳥哥的linux私房菜》

top:動态觀察程式的變化

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

<code>參數:</code>

<code>-d :後面可以接秒數,就是整個程式畫面更新的秒數。預設是</code><code>5</code> <code>秒;</code>

<code>-b :以批次的方式執行 top ,還有更多的參數可以使用喔!</code>

<code>通常會搭配資料流重導向來将批次的結果輸出成為檔案。</code>

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

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

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

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

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

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

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

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

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

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

範例1:每兩秒鐘更新一次 top ,觀察整體資訊

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

<code>top -</code><code>18</code><code>:</code><code>30</code><code>:</code><code>36</code> <code>up</code><code>30</code> <code>days,</code><code>7</code> <code>min,</code><code>1</code> <code>user, load average:</code><code>0</code><code>.</code><code>42</code><code>,</code><code>0</code><code>.</code><code>48</code><code>,</code><code>0</code><code>.</code><code>45</code>

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

<code>Cpu(s):</code><code>4</code><code>.</code><code>7</code><code>% us,</code><code>4</code><code>.</code><code>0</code><code>% sy,</code><code>6</code><code>.</code><code>3</code><code>% ni,</code><code>82</code><code>.</code><code>5</code><code>% id,</code><code>0</code><code>.</code><code>4</code><code>% wa,</code><code>0</code><code>.</code><code>1</code><code>% hi,</code><code>2</code><code>.</code><code>0</code><code>% 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>PID</code> <code>USER</code> <code>PR</code> <code>NI</code> <code>VIRT</code> <code>RES</code> <code>SHR</code> <code>S</code> <code>%</code><code>CPU</code> <code>%</code><code>MEM</code> <code>TIME</code><code>+</code><code>COMMAND</code>

<code>3981</code> <code>apache</code><code>34</code> <code>19</code> <code>84012</code> <code>11m</code><code>7352</code> <code>S</code> <code>17</code><code>.</code><code>3</code> <code>1</code><code>.</code><code>2</code> <code>0</code><code>:</code><code>00</code><code>.</code><code>09</code> <code>httpd</code>

<code>1454</code> <code>mysql</code><code>16</code> <code>0</code> <code>289m 40m</code><code>2228</code> <code>S</code> <code>3</code><code>.</code><code>8</code> <code>4</code><code>.</code><code>0</code> <code>115</code><code>:</code><code>01</code><code>.</code><code>32</code> <code>mysqld</code>

<code>3985</code> <code>dmtsai</code><code>15</code> <code>0</code> <code>2148</code> <code>904</code> <code>668</code> <code>R</code> <code>3</code><code>.</code><code>8</code> <code>0</code><code>.</code><code>1</code> <code>0</code><code>:</code><code>00</code><code>.</code><code>03</code> <code>top</code>

<code>1</code> <code>root</code><code>16</code> <code>0</code> <code>3552</code> <code>552</code> <code>472</code> <code>S</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>.</code><code>1</code> <code>0</code><code>:</code><code>08</code><code>.</code><code>90</code> <code>init</code>

<code>2</code> <code>root</code><code>RT</code> <code>0</code> <code>0</code> <code>0</code> <code>0</code> <code>S</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>:</code><code>52</code><code>.</code><code>76</code> <code>migration/</code><code>0</code>

<code>3</code> <code>root</code><code>34</code> <code>19</code> <code>0</code> <code>0</code> <code>0</code> <code>S</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>:</code><code>03</code><code>.</code><code>01</code> <code>ksoftirqd/</code><code>0</code>

範例2:将 top 的資訊進行 2 次,然後将結果輸出到 /tmp/top.txt

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

<code># 這樣一來,嘿嘿!就可以将 top 的資訊存到 /tmp/top.txt 檔案中了。</code>

範例3:假設 10604 是一個已經存在的 PID ,僅觀察該程式?

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

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

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

<code>Cpu(s):</code><code>0</code><code>.</code><code>0</code><code>% us,</code><code>0</code><code>.</code><code>0</code><code>% sy,</code><code>0</code><code>.</code><code>0</code><code>% ni,</code><code>100</code><code>.</code><code>0</code><code>% id,</code><code>0</code><code>.</code><code>0</code><code>% wa,</code><code>0</code><code>.</code><code>0</code><code>% hi,</code><code>0</code><code>.</code><code>0</code><code>% 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>10604</code> <code>root</code><code>16</code> <code>0</code> <code>5396</code> <code>1544</code> <code>1244</code> <code>S</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>.</code><code>4</code> <code>0</code><code>:</code><code>00</code><code>.</code><code>07</code> <code>bash</code>

範例四:承上題,上面的 NI 值是 0 ,想要改成 10 的話?

<code># 在範例三的 top 畫面當中直接按下 r 之後,會出現如下的圖樣!</code>

<code>PID</code> <code>to renice:</code><code>10604</code>

<code># 之後,可以輸入 nice 值了!</code>

<code>Renice</code><code>PID</code> <code>10604</code> <code>to value:</code><code>10</code>

<code>10604</code> <code>root</code><code>30</code> <code>10</code> <code>5396</code> <code>1544</code> <code>1244</code> <code>S</code> <code>0</code><code>.</code><code>0</code> <code>0</code><code>.</code><code>4</code> <code>0</code><code>:</code><code>00</code><code>.</code><code>07</code> <code>bash</code>

<code>top 也是個挺不錯的程式觀察工具!但不同于 ps 是靜态的結果輸出, top 這個程式可以持續的監測 (monitor) 整個系統的程式工作狀态,例如上面的範例一所示啊! 在預設的情況下,每次更新程式資源的時間為 </code><code>5</code> <code>秒,不過,可以使用 -d 來進行修改。 top 主要分為兩個畫面,上面的畫面為整個系統的資源使用狀态,基本上總共有六行, 顯示的内容依序是:</code>

<code>• 第一行:顯示系統已啟動的時間、目前上線人數、系統整體的負載(load)。 比較需要注意的是系統的負載,三個資料分别代表</code><code>1</code><code>, </code><code>5</code><code>, </code><code>10</code> <code>分鐘的平均負載。 一般來說,這個負載值應該不太可能超過 </code><code>1</code> <code>才對,除非您的系統很忙碌。 如果持續高于 </code><code>5</code> <code>的話,那麼.....仔細的看看到底是那個程式在影響整體系統吧!</code>

<code>• 第二行:顯示的是目前的觀察程式數量,比較需要注意的是最後的 zombie 那個數值,如果不是 </code><code>0</code> <code>,嘿嘿!好好看看到底是那個 process 變成疆屍了吧?!</code>

<code>• 第三行:顯示的是 </code><code>CPU</code> <code>的整體負載,每個項目可使用 ? 查閱。需要觀察的是 id (idle) 的數值,一般來說,他應該要接近</code><code>100</code><code>% 才好,表示系統很少資源被使用啊! ^</code><code>_</code><code>^。</code>

<code>• 第四行與第五行:表示目前的實體記憶體與虛拟記憶體 (Mem/Swap) 的使用情況。</code>

<code>• 第六行:這個是當在 top 程式當中輸入指令時,顯示狀态的地方。 例如範例四就是一個簡單的使用例子。</code>

<code>至于 top 底下的畫面,則是每個 process 使用的資源情況。比較需要注意的是:</code>

<code>• </code><code>PID</code> <code>:每個 process 的 </code><code>ID</code> <code>啦!</code>

<code>• </code><code>USER</code><code>:該 process 所屬的使用者;</code>

<code>• </code><code>PR</code> <code>:Priority 的簡寫,程式的優先執行順序,越小越早被執行;</code>

<code>• </code><code>NI</code> <code>:Nice 的簡寫,與 Priority 有關,也是越小越早被執行;</code>

<code>• %</code><code>CPU</code><code>:</code><code>CPU</code> <code>的使用率;</code>

<code>• %</code><code>MEM</code><code>:記憶體的使用率;</code>

<code>• </code><code>TIME</code><code>+:</code><code>CPU</code> <code>使用時間的累加;</code>

<code>一般來說,如果鳥哥想要找出最損耗 </code><code>CPU</code> <code>資源的那個程式時,大多使用的就是 top 這支程式啦!然後強制以 </code><code>CPU</code> <code>使用資源來排序 (在 top 當中按下 </code><code>P</code> <code>即可), 就可以很快的知道啦! ^</code><code>_</code><code>^。多多愛用這個好用的東西喔!</code>

 本文轉自二郎三郎部落格園部落格,原文連結:http://www.cnblogs.com/haore147/p/4057081.html,如需轉載請自行聯系原作者

上一篇: SQL