1. 程式人生 > >25.Linux系統管理技巧-w,vmstat,top,sar,nload命令

25.Linux系統管理技巧-w,vmstat,top,sar,nload命令

var ptime 排隊 大學 相關 swp 進行 用戶 kill

Linux運維管理

一 w 命令,查看當前系統的負載

用法如下

[root@localhost ~]# w
 15:15:19 up 2 min,  1 user,  load average: 0.05, 0.08, 0.04
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.72.1     15:14    7.00s  0.08s  0.00s w

第一行從左面開始顯示的信息依次為:時間,系統運行時間,登錄用戶數,平均負載。
第二行開始以及下面所有的行,告訴我們:當前登錄的都有哪些用戶,以及他們是從哪裏登錄的等等。其實,在這些信息當中,我們最應該關註的應該是第一行中的 ‘load average:’ 後面的三個數值。

第一個數值表示1分鐘內系統的平均負載值;

第二個數值表示5分鐘內系統的平均負載值;

第三個數值表示15分鐘系統的平均負載值。

我們著重看中第一個值,它表示單位時間段內CPU活動進程數。當然這個值越大就說明你的服務器壓力越大。一般情況下這個值只要不超過服務器的cpu數量就沒有關系,如果服務器cpu數量為8,那麽這個值若小於8,就說明當前服務器沒有壓力,否則就要關註一下了。

  • 查看cpu核心數量, cat /proc/cpuinfo
[root@localhost ~]# cat /proc/cpuinfo

技術分享圖片

這裏的processor計數從0開始,也就是說一個顯示為0,二個顯示為1。

技術分享圖片

  • uptime 實時查看
[root@localhost ~]# uptime
 15:44:37 up 32 min,  1 user,  load average: 0.00, 0.01, 0.05
  • 查看當前系統有幾個cpu,我們可以使用這個命令:

    grep -c ‘processor‘ /proc/cpuinfo

[root@localhost ~]# grep -c ‘processor‘ /proc/cpuinfo
2

二 用vmstat 命令監控系統的狀態

用法如下:
技術分享圖片

vmstat命令打印的結果共分為6部分:procs, memory, swap, io, system, cpu.。請重點關註一下r、b、si、 so、bi、bo、wa幾列。

#vmstat           //顯示當前系統狀態
#vmstat 1       //每隔1秒輸出一次運行狀態,可以是其他任意數值,ctrl+c終止
#vmstat 1 5     //每隔1秒輸出一次運行狀態,輸出5次後終止

技術分享圖片

procs顯示進程的相關信息:

  • [ ] r (run):表示運行或等待CPU時間片的進程數。說明:不要誤以為等待CPU時間片意味著這個進程沒有進行,實際上某一時刻一個CPU只能有一個進程,其他進程只能排著隊等著,此時這些排隊等待CPU資源的進程依然是運行狀態。該數值如果長期大於服務器CPU的個數,則說明CPU資源不夠用了。
  • [ ] b (block):表示等待資源的進程數,這個資源指的是I/O、內存等。舉個例子:當磁盤讀寫非常頻繁時,寫數據就會非常慢,此時CPU運算很快就結束了,但進程需要把計算的結果寫入磁盤,這樣進程的任務才算完成,那此時這個進程只能慢慢地等待,這樣這個進程就是這個b狀態。該數值如果長時間大於1,則需要關註一下。

  • memory顯示內存的相關信息:

  • [ ] swpd:表示切換到交換分區中的內存數量,單位為KB。
  • [ ] free:表示當前空閑的內存數量,單位為KB。
  • [ ] buff:表示(即將寫入磁盤的)緩沖大小,單位為KB。
  • [ ] cache:表示(從磁盤中讀取的)緩存大小,單位為KB。

  • swap顯示內存的交換情況:

  • [ ] si:表示由交換區寫入內存的數據量,單位為KB。
  • [ ] so:表示由內存寫入交換區的數據量,單位為KB。
  • io顯示磁盤的使用情況:

  • [ ] bi:表示從塊設備讀取數據的量(讀磁盤),單位為KB。
  • [ ] bo:表示從塊設備寫入數據的量(寫磁盤),單位為KB。

  • system顯示采集間隔內發生的中斷次數:

  • [ ] in:表示在某一時間間隔內觀測到的每秒設備的中斷次數。
  • [ ] cs:表示每秒產生的上下文切換次數。

  • cpu顯示CPU的使用狀態:

  • [ ] us:顯示用戶下花費CPU的時間百分比。
  • [ ] sy:顯示系統花費CPU的時間百分比。
  • [ ] id:表示CPU處於空閑狀態的時間百分比。
  • us+sy+id =100%

  • [ ] wa:表示I/O等待所占用CPU的時間百分比。
  • [ ] st:表示被偷走的CPU所占百分比(一般都為0,不用關註)

以上所介紹的各個參數中,經常會關註r列,b列,和wa列,三列代表的含義在上邊說得已經很清楚。IO部分的bi以及bo也是要經常參考的對象。如果磁盤io壓力很大時,這兩列的數值會比較高。另外,當si, so兩列的數值比較高,並且在不斷變化時,說明內存不夠了,內存中的數據頻繁交換到交換分區中,這往往對系統性能影響極大。

三、top命令顯示進程所占系統資源

用法如下:
技術分享圖片

Top命令用於動態監控進程所占系統資源,每隔3秒變一次。這個命令的特點是把占用系統資源(CPU,內存,磁盤IO等)最高的進程放到最前面。top命令打印出了很多信息,包括系統負載(loadaverage)、進程數(Tasks)、cpu使用情況、內存使用情況以及交換分區使用情況。

  • [ ] %CPU cpu的使用情況
  • [ ] %MEM 使用內存的百分比
  • [ ] RES 進展所占的內存大小,單位為Kbyte

  • 輸入top指令後,按大寫的M查看%MEN,並以大到小排序;
    按大學P,%CPU的使用情況,按照大小順序排列。
    按下數字1,產看每個CPU的占用情況
    技術分享圖片
    按數字1切換
    技術分享圖片
  • top -c 查看詳細的進程信息

技術分享圖片

  • top -bn1 靜態顯示所有進程,表示了非動態打印系統資源的使用情況,在shell腳本中常用。

技術分享圖片

  • 同時需要關註的是PID,可以用kill命令殺死該進程.

四 sar命令監控系統狀態

sar 命令很強大,它可以監控系統所有資源狀態,比如平均負載、網卡流量、磁盤狀態、內存使用等等。它不同於其他系統狀態監控工具的地方在於,它可以打印歷史信息,可以顯示當天從零點開始到當前時刻的系統狀態信息。如果你系統沒有安裝這個命令,請使用 yum install -y sysstat命令安裝。初次使用sar命令會報錯,那是因為sar工具還沒有生成相應的數據庫文件(時時監控就不會了,因為不用去查詢那個庫文件)。它的數據庫文件在 “/var/log/sa/” 目錄下,每10分鐘抓一次,生成文件保存在該目錄下。

技術分享圖片

1. 查看網卡流量 sar -n DEV

用法如下:
技術分享圖片

這個命令把黨聽記錄的網卡信息打印出來,每隔10分鐘記錄一次。以下參數是重點關註的。

IFACE:表示設備名稱.
rxpck/s:表示每秒進入收取的包的數量有多少。
txpck/s:表示每秒發送出雲的包的數量有多少。
rxkB/s:表示每秒收取的數據量(單位為KB)。
txkB/S:表示每秒發送的數據量

剩下後面幾列不需要關註。如果有一天你所管理的服務器丟包非常嚴重,那麽你就應該看一看這個網卡流量是否異常了,如果rxpck/s 那一列的數值大於4000,或者rxbyt/s那列大於5000000則很有可能是被攻擊了,正常的服務器網卡流量不會高於這麽多,除非是你自己在拷貝數據。這是你需要實時查看網卡流量

  • sar -n DEV 1 5 //每隔1秒輸出一次網卡流量狀態,5次後終止

技術分享圖片

  • 使用-f選項查看某一天的網卡流量歷史,後面跟文件名.

但是/var/log/sa/saXX 只能保存一個月

#sar -n DEV -f /var/log/sa/sa27

技術分享圖片

2. 查看歷史負載 sar -q

這個命令有助於我們查看服務器在過去某個時間的負載狀況.
技術分享圖片

  • sar -b 查看磁盤負載,讀寫情況。

技術分享圖片

  • sar -b 1 5 //每隔1秒輸出一次磁盤負載狀態,5次後終止
    技術分享圖片

五、 用nload命令查看網卡流量

sar雖然可以查看網卡流量,但是不夠直觀,還有一個更好用的工具,那就是nload。
安裝nload:

[root@localhost ~]# yum install -y nload

技術分享圖片

技術分享圖片

ncoming為進入網卡的流量。

Outgoing為網卡出去的流量。

主要關註Curr那行的數據,其單位也可以動態自動調整,很人性化。

按q退出該界面。

  • 補充saXX和sarXX,XX為日期,saXX是二進制文件,只能用sar -f命令查看,而sar文件是需要一天才能生成的,可以用cat命令查看

技術分享圖片

25.Linux系統管理技巧-w,vmstat,top,sar,nload命令