五大Linux簡單命令解決系統效能問題

2021-06-02 06:42:36 字數 2746 閱讀 3099

管理linux主機的效能看起來經常象是在變魔術一樣。許多管理員在遇到效能問題的時候常常簡單化處理,依靠硬體的更新換代,更大的記憶體和更強的cpu來解決問題。事實上,利用一些簡單的linux命令,可以發現許多管理主機的細節問題並且能迅速而簡單地解決效能問題。

一、top

對許多管理員來說,最新學會的就是top命令,它可以顯示出當前執行的所有核心任務,並且提供了一些主機狀態的統計報告。預設地,top命令每隔五分鐘自動更新一次這個資料(這個更新間隔是可設定的)。

top命令的功能豐富到令人難以置信(估計很少有人使用過一半以上的功能)。一般來說你會以『h』鍵開始,就是『help』(說明文件也非常精彩)。幫助引數可以快速顯示出你能從中增加和減去的內容,同時也可以改變排序。你還可以用k來結束程序或者用r標註特別的程序。

二、vmstat

vmstat命令提供給你乙個當前cpu、io、程序和記憶體使用率的快照。和top命令一樣,它自動動態重新整理,並且可以用下面的命令執行:

$ vmstat 10

在這裡延遲是指兩次重新整理間隔的以秒為單位的時間,這裡是10秒鐘。vmstat命令會將檢查的結果不停重新整理顯示在螢幕上,直到你用ctrl-c命令結束它(或者你也可以在執行的時候設定乙個限制)。這個持續輸出的結果有時候被用來匯入到檔案中用來分析效能趨勢,但是我們將找到更好的方式來做這件事情,在文章後面的部分會介紹。

第一列顯示的是處理器, r列是待命的處理器,而b列是休眠的處理器。如果你在這裡看到好多個待命的處理器,那說明你可能在某個地方遇到了效能瓶頸。第二列顯示的是記憶體:虛擬的,空閒的,緩衝和快取記憶體。第三列顯示的是交換儲存以及具體有多少內存在和磁碟做交換。第四列則是i/o資訊,顯示了塊服務接收和傳送的塊資料資訊。

us:執行使用者任務和**耗費的時間

sy:執行核心或者系統**耗費的時間

id:空閒時間

wa:等待io耗費的時間

st:虛擬機器占用的時間

vmstat命令擅長用來查詢cpu使用情況,雖然記住每個引數主要取決於持續的監控,因為對cpu進行短時間的觀察你可能無法獲知cpu真正的問題所在。你需要檢視長期的執行趨勢來獲得乙個確切的cpu效能資訊。

三、iostat

我們接下來要講的命令是iostat。iostat命令(在ubuntu、紅帽和fedora系統中都是由sysstat軟體包提供的)可以提供三個報告:cpu使用率、裝置使用率和網路檔案系統使用率。如果你不加任何引數地執行該命令,它會顯示所有這三個報告,你可以通過加引數-c、-d和-h來單獨顯示它們中的一種。

在上面的圖中你可以看到它們中的其中兩個報告,第乙個是cpu使用率,它將各程序占用的cpu用百分比分類列出來了。你能看到使用者程序、系統程序、iowait和空閒時間等資訊。

第二個報告是關於裝置使用率,顯示了安裝在該主機上的每個裝置和一些有用的資訊,諸如每秒傳輸量、資料塊讀寫,並且允許你對有效能問題的裝置做標記。你可以通過新增-k或者-m引數來按照千位元組或者兆位元組顯示統計資訊,而不是以資料塊為單位,這樣在某些情況下會更便於查閱和理解。

最後乙個報告,沒有截圖,顯示的資訊和上面介紹的裝置使用率有點相似,只是物件從附件的裝置換成了掛載的網路檔案系統。

四、free

下乙個命令free,可以顯示主記憶體和交換記憶體的統計量。

你可以通過新增-t引數來顯示總的記憶體,或者通過新增-b引數和-m引數來用位元組數顯示(預設情況是用千位元組為單位)。

free命令還可以通過使用-s引數來使其以某個間隔時間持續重新整理地執行:

$ free -s 5

這個命令是以每隔5秒鐘重新整理一次的方式執行free命令並輸出結果。

五、sar

象我們見過的許多其它工具一樣,我們可以用sar命令來收集、檢視和記錄伺服器的效能資料。它比我們見過的任何類似工具都更強大,並且可以收集和顯示長時間段的資料。在紅帽和ubuntu上,它通過sysstat包來安裝。讓我們從不新增任何引數執行sar命令開始吧:

$ sar

從這裡我們可以看到sar命令的基本輸出資訊,包括cpu統計(每隔10分鐘一次的資料和最後的平均資料)。該資訊是從乙個以24小時為單位不停收集資訊的日統計檔案中抓取出來的(這個檔案儲存在目錄/var/log/sa/中,並且被命令為saxx這樣的格式,xx代表該資料收集的日期)。另外它還收集關於記憶體、裝置、網路等的統計資訊(例如,通過加-b引數可以檢視塊裝置統計資訊,-n採檢視網路資料,-r引數看記憶體使用)。你還可以用-a引數來檢視所有收集的資料。

你還可以長時間執行sar命令然後將輸出資料匯入乙個檔案中來收集資料。要達到這個效果,需要使用引數-o和乙個檔名稱,要執行該命令的時間間隔(記得收集資料會導致效能變差,所以最好確保這個間隔不要太短)和迴圈的次數-你要記錄的間隔次數。如果你不輸入迴圈次數,則sar命令會一直執行下去,例如:

$ sar -a -o /var/log/sar/sar.log 600 >/dev/null 2>&1 &

這裡我們將收集所有資料(-a),記錄到檔案/var/log/sar/sar.log中,每隔600秒(或者5分鐘)收集一次,持續在後台執行。如果接下來我們想要顯示這個資料我們可以用sar命令加上-f引數,例如:

$ sar -a -f /var/log/sar/sar.log

這是乙個非常基本的sar命令介紹。用sar命令還可以得到許多很有用的資料,這能使得檢視主機效能變得更加方便和有效。我建議你去檢視一下sar命令的說明文件從而獲得更詳細的方法來獲得你需要的資料。

這這篇文章中,我們看到了5個基本的用在linux主機上管理和檢視效能狀態的命令工具。除此之外,去看一下其它一些工具如munin和collected等也是非常值得的,它們不僅收集關於效能的資料,還能檢視應用程式和服務等,包括使用你自己的外掛程式等。這些工具都支援增加圖形化的輸入,這樣可以讓你用圖形更直觀的檢視你的資料。

Linux 五大初始化系統

在 linux 和其他類 uniux 系統中,init 初始化 程序是系統啟動時由核心執行的第乙個程序,其程序 id pid 為 1,並靜默執行在後台,直到系統關閉。init 程序負責啟動其他所有的程序,比如守護程序 服務和其他後台程序,因此,它是系統中其它所有程序之母 偏偏叫做 父程序 某個程序可...

linux五大搜尋命令學習

分別解釋locate,find,which,whereis,grep 五大linux搜尋命令 解釋 由man手冊可以看出,locate查詢就是根據檔名進行查詢,只是依賴於updatedb命令。該命令更新linux中的查詢資料庫 var lib locatedb 這個資料庫中含有本地所有檔案資訊。li...

管理員必備 五大Linux效能命令

techtarget中國原創 管理linux主機的效能看起來經常象是在變魔術一樣。許多管理 員在遇到效能問題的時候常常簡單化處理,依靠硬體的更新換代,更大的記憶體和更強的cpu來解決問題。事實上,利用一些簡單的命令,可以發現許多管理主機的 細節問題並且能迅速而簡單地解決效能問題。一 top 對許多管...