實用的top命令

dbhelper發表於2014-11-26

對於系統級的監控來說,top命令是實用而高效的瑞士軍刀。相比vmstat,sar來說提供的是實時的程式資訊,對於監控效能,排查問題是很高效的。而且提供了互動式的命令模式,能夠靈活的對輸出結果進行組合。
如果資料庫系統中存在著cpu或者記憶體的過度使用,或者說IO等待較高,都可以通過top命令進行一個快速的定位到系統程式資訊,然後從系統級和資料庫級的程式進行一個對映,從而得到資料庫級的程式資訊,定位可能存在的問題。
top命令是個人比較喜好的一個命令,大體的總結了下,有一些比較實用的功能。
首先簡單解釋下top命令的一些內容。
第1行顯示了系統級的負載,平均負載有3個輸出,分別代表在過去的1分鐘,5分鐘,15分鐘時的平均負載,可以看到當前這個系統是沒有任何壓力的。這部分的輸出和命令uptime是一致的。
第2行顯示了關於程式的一些大體資訊,當前的程式總數,哪些程式是執行狀態,哪些睡眠,等待狀態等。可以看到程式27758是執行狀態的,因為標亮的程式列表中如果"S"對應的值為R代表running,如果為S則為sleeping.
第3行顯示了cpu的一些負載資訊,這個也是top命令的比較實用的一個功能。特別是%id和%wa這兩個指標尤為重要,很多的效能問題中,如果%id過低,%wa也很低,說明cpu使用率很高,可能有一些sql語句消耗了大量的cpu資源,如果%wa很高的話,很可能是系統IO出現了問題。在以往的系統升級中,如果發現%wa過於10%,就說明IO等待很高了,可以通過dd等方式做一個簡單的測試。
第4行顯示了記憶體的一些使用情況。如果記憶體使用情況存在明顯的異常,可以通過標亮的程式資訊中查詢%MEM消耗比較高的程式。
第5行顯示了交換區的一些情況,如果記憶體足夠或者系統負載不高,這個部分的資料沒有什麼大的變化。


實用的top命令

-B 選項
輸入top,然後在螢幕中直接輸入B,就會開啟或者關閉表中重要數字的加粗顯示,如果你仔細比較會發現確實有一些資料是做了加粗的顯示,這樣也更方便你對問題進行排查。
實用的top命令


-C 選項
直接輸入top -c 或者(輸入top,然後在螢幕中直接輸入c)會切換顯示程式的命令名或者是完成的命令列輸入資訊。
程式28751就可以看到程式對應的命令列輸入資訊
實用的top命令

-o選項
如果你想定製顯示top命令的輸出順序,比如預設是按照pid,user的順序來顯示程式資訊的,如果你想根據user,pid來顯示,可以使用c選項
輸入top,然後在顯示螢幕上輸入o,就會彈出一個互動介面。我想先顯示列USER,就輸入E,然後回車,結果就進行了重排。
實用的top命令
修改後顯示的列的順序就相應的進行了調整。
實用的top命令

-選項
top命令的輸出還是比較多的,可以使用來進行靈活的翻頁,畢竟程式數很多,有些程式資訊在一個螢幕裡還顯示不到,可以前後翻頁來檢視。
輸入top,然後直接在螢幕中輸入就可以分頁的顯示出程式的資訊了。

-F或者O選項
可以根據需要對某個列進行排序,預設是對%CPU進行排序
輸入top,然後在輸出螢幕上輸入F或者O,選擇相應的列進行排序即可,比如我們對PPID進行排序。
實用的top命令
輸出結果如下,對於一些可能由遞迴呼叫中問題可以使用這個方法進行排查。
實用的top命令

-i選項
這個選項對於一些效能問題的排查是如虎添翼,比如我們只是看看哪些程式在執行狀態,不需要看到哪些睡眠狀態的,可以使用-i選項。
輸入top -i 或者輸入top,然後在螢幕中直接輸入i,就會顯示出正在那些執行中的程式。
實用的top命令

-z選項
如果想顯示的結果能夠更加清晰,可以使用-z選項切換彩色模式或者單色模式
輸入top然後在螢幕總輸入i就會顯示出比較清晰的程式資訊,可以根據自己的需要來決定是否啟用。
實用的top命令

-u選項
如果你只是想檢視某個使用者的程式資訊,可以使用u選項。
實用的top命令
輸出結果就比較清晰,只是顯示ora11g的程式。
實用的top命令

-d或者s選項
因為top命令的輸出是動態的,會平均每3秒進行一次重新整理,如果想調節重新整理的頻率,可以使用d或者s選項。
輸入top,然後再輸入d或者s,自行設定重新整理頻率即可。
實用的top命令

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1333333/,如需轉載,請註明出處,否則將追究法律責任。

相關文章