Linux伺服器效能追蹤以及伺服器監控常用命令

來源:互聯網
上載者:User

本文章來給大家總結一下一些常用的Linux伺服器效能追蹤以及伺服器監控常用命令,有需要瞭解學習的同學可進入參考。

在網站效能最佳化中,我們經常要檢查伺服器的各種指標,以便快速找到害群之馬。大多情況下,我們會使用cacti、nagois或者zabbix之類的監視軟體,但是這類軟體安裝起來比較麻煩,在一個小型伺服器,我們想儘快找到問題所在,還是要使用Linux提供的一些命令。

1. 記憶體檢查:free -m

注意,重點看的是第二行,-/+ buffers/cache行,第一個數字是實際消耗的記憶體,第二個是實際閒置記憶體。

2. 系統進程監控 top
Top命令注意看輸出的第二、第三行。第二行(Tasks)表示系統啟動並執行進程數,這個數值一般不能太大,比如超過300、甚至400-500,這個比較容易理解,我們一般開啟的服務、進程外加系統進程都不會太多,太多肯定有問題。第三行表示CPU的使用方式。
Top可以按 M按記憶體使用量排序,P按CPU使用方式排序。

3. 進程監控加強版 htop
htop提供了比top更強大的功能,推薦安裝。能排序、尋找、顯示進程樹等功能。
htop還有一個強大的功能的,就是strace,按s可以直接對選中進程進行strace。

strace如下:

4. 找出害群之馬 (ps命令)
如果通過top、htop、free以及iostat、vmstat(後面會講)對系統分析後,我們接下來就要找系統的問題進程了。在top、htop中 我們一般可以直觀的看出到底是那個進程出問題了,不過有時這兩個命令不能完全確定,我們還要使用ps確認系統中的最差進程。

自訂輸出格式 -o 可以定義我們想要顯示的列,列名基本和輸出的表頭一樣,只是要小寫,如下:
ps -A -o %mem, %cpu

找到執行個體運行過多的進程(伺服器監測特別有用)

可以看到httpd進程比較多,(uniq可能是只要各行的,不再計重複行,重新數),因此我們可以再加個sort (k表示按那一列排序),如下:

這樣httpd進程可以看到18個,有助於我們找到異常的伺服器行為。如果要區分使用者,可以加一個output,如:

ps -A -o user,comm |sort -k2| uniq -c |sort -k1 -rn

找到記憶體使用量最多的進程

ps -eo rss,pmem,pcpu,vsize,args |  sort -k 1 -r -n

同理,找到CPU消耗最多的進程

ps -eo rss,pmem,pcpu,vsize,args |  sort -k 2 -r -n

(其實主要的是理解sort -k和ps -o就可以)

4. IO監控iostat
iostat也是系統監控常用的命令,可以看到各個磁碟的IO情況,其他參數不再贅述,主要說明一個參數。iostat -x會輸出 %util列。
定義:
%util: 一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因為use的單位為毫秒)
如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。
一般情況下,%util應該越小越好,10%以下正常,30%IO比較繁忙。50%以上一般是有問題的。可以配合%idle,該值過小系統肯定是有問題的。

5. vmstat 系統監控
vmstat和IO差不過,不過重點是監控cpu、記憶體等系統資源。
對記憶體監控,我們比較關心swpd、free、si、so。一般系統不繁忙的狀態下,我們看到swpd,so的值不會持續很高,經常為0。如果swpd過高,那麼就是系統記憶體經常不夠用。
對CPU監控,我們可以查看r(運行進程數)、us、sy、id(空閑CPU),如果r的數字大於系統CPU個數,則面臨CPU不夠用的危險,通過id(CPU空閑比例)分析,如果過小,則可以判斷是CPU不足。
其他參數不再贅述。

6. 網路流量監控 iftop
最後我們談一下網路流量的監控,網路流量對於系統來說也是很重要的。請安裝iftop來監控網路瀏覽資源。由於介面縮放比較困難,從網上找了一張圖參考:

中間的這兩個左右箭頭,表示的是流量的方向。
TX:發送流量
RX:接收流量
TOTAL:總流量
Cumm:運行iftop到目前時間的總流量
peak:流量峰值
rates:分別表示過去 2s 10s 40s 的平均流量

其中有幾個命令比較有用,按t切換顯示格式為2行/1行/只顯示發送流量/只顯示接收流量;按T切換是否顯示每個串連的總流量;按p切換是否顯示連接埠資訊。其他的命令可以按h進入協助查看。

追加一個命令,nethogs, iftop是連接埠和主機查詢流量,但是當需要查詢具體進程的網路流量的時候,iftop就有些力不從心了。nethogs官方說nethogs = nettop,也就是找出按流量的佔用列出所有進程,可以協助我們找到使用頻寬最多的進程

Nethogs 是一個終端下的網路流量監控工具,它的特別之處在於可以顯示每個進程的頻寬佔用情況,這樣可以更直觀擷取網路使用方式。它支援 IPv4 和 IPv6 協議、支援本地網卡及 PPP 連結。

項目首頁:http://nethogs.sourceforge.net/

# 安裝:Ubuntu 官方源中就有這個程式

 代碼如下 複製代碼

sudo apt-get install nethogs

# 使用:

 代碼如下 複製代碼

sudo nethogs eth0

該程式需要 root 許可權,預設是監控 eth0 網卡 ,所以直接輸入 sudo nethogs 也可以,如果有多網卡的話就必須進行指定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.