管理Linux主機的性能看起來經常象是在變魔術一樣。許多管理員在遇到性能問題的時候常常簡單化處理,依靠硬件的更新換代,更大的內存和更強的CPU來解決問題。事實上,利用一些簡單的命令,可以發現許多管理主機的細節問題並且能迅速而簡單地解決性能問題。
一、top
對許多管理員來說,最新學會的就是TOP命令,它可以顯示出當前運行的所有內核任務,並且提供了一些主機狀態的統計報告。默認地,TOP命令每隔五分鐘自動更新一次這個數據(這個更新間隔是可設置的)。
TOP命令的功能豐富到令人難以置信(估計很少有人使用過一半以上的功能)。一般來說你會以‘h’鍵開始,就是‘help’(說明文檔也非常精彩)。幫助參數可以快速顯示出你能從中增加和減去的內容,同時也可以改變排序。你還可以用k來結束進程或者用r標注特別的進程。
Top命令顯示當天的正常運行時間、系統負載、處理器的數量、內存的使用率和哪些進程使用了大多數CPU資源(包括每個進程的大量相關信息,例如在線用戶和正在執行的命令等)。
二、vmstat
Vmstat命令提供給你一個當前CPU、IO、進程和內存使用率的快照。和TOP命令一樣,它自動動態刷新,並且可以用下面的命令執行:
$ vmstat 10
在這裡延遲是指兩次刷新間隔的以秒為單位的時間,這裡是10秒鐘。VMSTAT命令會將檢查的結果不停刷新顯示在屏幕上,直到你用CTRL-C命令結束它(或者你也可以在執行的時候設置一個限制)。這個持續輸出的結果有時候被用來導入到文件中用來分析性能趨勢,但是我們將找到更好的方式來做這件事情,在文章後面的部分會介紹。
第一列顯示的是處理器, r列是待命的處理器,而b列是休眠的處理器。如果你在這裡看到好多個待命的處理器,那說明你可能在某個地方遇到了性能瓶頸。第二列顯示的是內存:虛擬的,空閒的,緩沖和緩存內存。第三列顯示的是交換存儲以及具體有多少內存在和磁盤做交換。第四列則是I/O信息,顯示了塊服務接收和發送的塊數據信息。
最後兩列顯示了系統和CPU相關的信息。系統列顯示的是沖突的數量和每秒鐘的交換。CPU列是顯示了特別有用的信息。每個分列顯示了一個CPU時間的百分比。這些分列如下:
US:運行用戶任務和代碼耗費的時間
SY:運行內核或者系統代碼耗費的時間
ID:空閒時間
WA:等待IO耗費的時間
ST:虛擬機占用的時間
VMSTAT命令擅長用來查詢CPU使用情況,雖然記住每個參數主要取決於持續的監控,因為對CPU進行短時間的觀察你可能無法獲知CPU真正的問題所在。你需要查看長期的運行趨勢來獲得一個確切的CPU性能信息。