五大Linux簡單命令 幫你解決效能問題

來源:互聯網
上載者:User

管理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效能資訊。

三、iostat  

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

 

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

 

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

 

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

 

  四、free

 

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

 

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

 

  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等也是非常值得的,它們不僅收集關於效能的資料,還能查看應用程式和服務等,包括使用你自己的外掛程式等。這些工具都支援增加圖形化的輸入,這樣可以讓你用圖形更直觀的查看你的資料。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.