Linux服務器性能追蹤以及服務器監控經常使用命令

在網站性能優化中,咱們常常要檢查服務器的各類指標,以便快速找到害羣之馬。大多狀況下,咱們會使用cacti、nagois或者zabbix之類的監控軟件,可是這類軟件安裝起來比較麻煩,在一個小型服務器,咱們想盡快找到問題所在,仍是要使用Linux提供的一些命令。 linux

1. 內存檢查:free -m
ios

注意,重點看的是第二行,-/+ buffers/cache行,第一個數字是實際消耗的內存,第二個是實際空閒的內存。

2. 系統進程監控 top
Top命令注意看輸出的第2、第三行。第二行(Tasks)表示系統運行的進程數,這個數值通常不能太大,好比超過300、甚至400-500,這個比較容易理解,咱們通常開啓的服務、進程外加系統進程都不會太多,太多確定有問題。第三行表示CPU的使用狀況。
Top能夠按 M按內存使用排序,P按CPU使用狀況排序。 性能優化

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

strace效果圖以下: 服務器

 

4. 找出害羣之馬 (ps命令)
若是經過top、htop、free以及iostat、vmstat(後面會講)對系統分析後,咱們接下來就要找系統的問題進程了。在top、htop中咱們通常能夠直觀的看出究竟是那個進程出問題了,不過有時這兩個命令不能徹底肯定,咱們還要使用ps確認系統中的最差進程。 網絡

自定義輸出格式 -o 能夠定義咱們想要顯示的列,列名基本和輸出的表頭同樣,只是要小寫,以下:
ps -A -o %mem, %cpu 性能

找到實例運行過多的進程(服務器監測特別有用)
優化

能夠看到httpd進程比較多,(uniq多是隻要各行的,再也不計重複行,從新數),所以咱們能夠再加個sort (k表示按那一列排序),以下: 網站

這樣httpd進程能夠看到18個,有助於咱們找到異常的服務器行爲。若是要區分用戶,能夠加一個output,如: spa

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進入幫助查看。

相關文章
相關標籤/搜索