10.1-10.5 w, vmstat,top,sar,nload命令

監控系統狀態

• w/uptime 查看系統負載
• cat /proc/cpuinfo 查看cpu核數數據庫

• vmstat 監控系統狀態
• 用法 vmstat 1
• 關鍵的幾列:r,b,swpd,si,so,bi,bo,us,wabash

• top查看進程使用資源狀況
• top -c 顯示詳細的進程信息
• top -bn1 靜態顯示全部進程
• q退出,數字1顯示全部核cpu,大寫字母M按內存使用排序
• 大寫字母P按cpu使用排序服務器


load average 平均負載

  • 三個查詢平均負載的命令:w uptime top

w:查看當前系統的負載

[root@localhost sbin]# w
 15:23:46 up  3:34,  2 users,  load average: 0.03, 0.05, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                12:26    2:55m  0.11s  0.11s -bash
root     pts/0    10.72.137.53     12:28    1:17m  1:32   1:32  -bash

15:23:46 當前系統時間 ; up 3:34 啓動多長時間;2 users, 兩個用戶。一個是tty1-6,pts/0是經過遠程登陸的。網絡

  • 查看的內容是 load average
  1. 第一個值:1分鐘內系統的平均負載;1分鐘內有多少個進程在使用咱們的cpu計算或者在等待排隊。負載均衡

  2. 第二個值:5分鐘內系統的平均負載;5分鐘內有多少個進程在使用咱們的cpu計算或者在等待排隊。工具

  3. 第三個值:15分鐘內系統的平均負載;15分鐘內有多少個進程在使用咱們的cpu計算或者在等待排隊。優化

  4. 負載越高,cpu的壓力越大;ui

  • cpu概念:cpu並非來多少進程,它均可以所有爲你提供服務,由於cpu在摸個時刻內只能給一個進程或任務提供服務,其餘進程先排隊,按照優先級的順序一個一個的輪流使用cpu進行運算。

load average這個值何時合適,何時偏大,偏小都是有依據的,這是根據cpu的核數來規定的。邏輯CPUcode


查看cpu核數的命令:cat /proc/cpuinfo

  • 看processor : 0 有幾段,cpu就是幾核對象

  • user:用戶

  • TTY:在哪裏登錄

  • FROM:從哪裏登錄

  • LOGIN@:登錄時間

  • IDLE:空閒時間

  • JCPU:當前終端上全部進程及子進程佔用cpu的時間

  • PCPU:當前進程佔用cpu的時間

  • WHAT:當前具體哪一個命令


何時負載均衡高呢?
當有進程排隊的時候就說明cpu核數不夠了。

vmstat工具 :查看系統瓶頸

前面講到系統的平均負載,若是負載太高,咱們要查看是什麼緣由形成負載太高呢?

  1. vmstat 不加任何數值,值顯示一行
  2. vmstat 1 平均1秒顯示一次
  3. vmstat 1 5 平均1秒顯示一次,顯示5次

輸入圖片說明

proce

  • r : 表示有多少個任務處於run狀態:跑的狀態,好比只有一個cpu,有10個進程,這10個進程有1個進程在使用cpu,9個在排隊,可是9個不是一直在排隊,而是有一個值好比1個進程使用cpu1分鐘,到了1分鐘,第二進程使用cpu1分鐘,以此類推,直到進程完成。
  • b :進程被cpu之外的資源阻塞了,好比硬盤或者是帶寬阻塞了。 block被阻塞的,何時被阻塞呢?好比磁盤很忙的時候,你去寫一個數據,計算結果出來你要把結果寫入磁盤裏面去,可是磁盤很慢,它畢竟比不了cpu的速度,只能等待一會,這兒就是磁盤被阻塞了,這個任務被磁盤的IO阻塞了。再好比咱們的帶寬跑滿了,數據想經過TCP/IP通訊的方式傳輸出到遠程去送給另一個服務器上,這個時候若是帶寬跑滿了,網速很忙,它也會被阻塞,總之:blocal就是那些被咱們IO阻塞的任務有多少個,不論是磁盤仍是網絡。

memory

  • swap : 有多少個數據量在被交換(單位KB):表示有多少數據量被拿到交換分區裏面。這個數值不變化,說明你的內存沒有問題,若是這個數值比較大而且頻繁的變更,這個時候就要注意你的內存可能不夠,或者是內存溢出(程序寫的有問題)。
  • free : 內存還剩餘多少,單位爲KB。
  • buff:表示即將寫入磁盤的緩衝大小,單位爲KB。
  • cache:表示從磁盤中讀取的緩衝大小,單位爲KB。

swap 顯示內容的交換狀況

  • si : swap in 進入內存。對象是內存
  • so :swap out 從內存裏面出來,對象是內存

這兩個值一直爲0或者很小,沒有什麼變化很穩定,說明內存夠,沒有瓶頸,若是這個值來回的變化很頻繁,長期大於0.,說明你的內存不夠

io顯示磁盤的使用狀況

  • bi :進入到內存中去,這意味從磁盤裏面讀出來: 讀磁盤
  • bo :從內存讀出來,這意味着寫入磁盤裏面去: 寫磁盤

這兩個值怎麼叫大呢,通常的服務器超過1000,就有必定壓力(一直是1000以上)就會產生瓶頸。 若是隻是偶爾1000,其餘時候都是0或者很小,就說明問題不大

system顯示採集間隔內發生的沖斷次數

  • in 終端
  • cs 上下文切換

這個兩個值在一秒鐘的次數

cpu 顯示cpu的使用狀態

  • us : 用戶進程佔用cpu的時間百分比
  • sy : 內核進程佔用cpu的時間百分比
  • id : CPU空閒狀態的時間百分比
  • wa : I/O等待所佔用cpu的時間百分比
  • st : 被偷走的的CPU所佔百分比(通常都爲0,不用關注)
  1. r,b 值很高說明系統負載很高,查看cpu是否有瓶頸。
  2. us 也很關鍵,若是us一直高於50或者接近100%說明某一個進程佔用cpu很大的資源,肯那個就是一些計算量很大的任務須要優化一下。
  3. 日常咱們去衡量一個系統的負載不只要看一份中內的負載load average值,還要查看cpu的us這個值得百分比。

top 命令:查看具體進程

  • top 默認3秒一次
  • q 退出
  • top -d 1 1秒顯示一次
  • top -c 顯示具體進程的命令,更全路徑
  • top -bn1 一次性靜態顯示出來;通常用在寫在腳本里面。
  • top 通常查看load average ;us,sy ,物理內存剩餘空間

輸入圖片說明

  • total :全部進程
  • sleepling :休眠的進程
  • stopped:已經中止進程
  • zombie :殭屍進程,主進程意外中斷,只剩下一些子進程,自生自滅

默認狀況下,按cpu使用百分比排序。

  • PID:進程id ;進程ID在/proc 下
  • USER: 用戶名
  • PR:範圍0~39;NI:範圍-20~19; 進程優先級,PR數值越小,優先級越高
  • VIRI:虛擬內存大小
  • RES:物理內存大小,使用了多少物理內存,單位kib
  • SHR:共享內存
  • S:進場狀態
  • cpu:cpu使用多少百分比
  • mem:內存使用多少百分比
  1. top 狀態下按M 能夠按內存使用大小排序
  2. 按P 按cpu排序
  3. 按數字1能夠列出各顆cpu的狀態

輸入圖片說明


監控系統狀態

• yum install -y sysstat
•sar -n DEV 網卡流量
• sar -q 系統負載
• sar -b 磁盤讀寫
• sar -f /var/log/sa/saxx 歷史文件
• nload命令
• yum install -y epel-release
• yum install -y nload


網卡何時有瓶頸 千M網卡
帶寬指的是比特bit
1byt(字節)=8bit
家庭用的10M帶寬,理論上下載的速度是10M/8=1.25M/s
比特是網卡上的計量單位,就是所謂的數據流,而字節是計算機上文件的大小
1M=1024KB
1KB=1024byt
爲了計算方便用1000來換算 。
1M=1000KB
1KB=1000byt

  • sar -n DEV 查看網卡流量
  • sar -n DEV -f /var/log/sa/sa13 查看歷史流量
  • sar -q 查看歷史負載
  • sar -b 查看歷史磁盤
  • sar -p 查看歷史cpu

sar 命令很強大,它能夠監控系統全部資源狀態,好比平均負載、網卡流量、磁盤狀態、內存使用等等。它不一樣於其餘系統狀態監控工具的地方在於,它能夠打印歷史信息,能夠顯示當天從零點開始到當前時刻的系統狀態信息。若是你係統沒有安裝這個命令,請使用 yum install -y sysstat 命令安裝。初次使用sar命令會報錯,那是由於sar工具尚未生成相應的數據庫文件(時時監控就不會了,由於不用去查詢那個庫文件)。它的數據庫文件在 「/var/log/sa/」 目錄下,默認保存一個月。由於這個命令太過複雜。

yum install -y sysstat 安裝後運行命令的時候會報錯;這是由於sar的特性,每10分鐘纔會統計一次 。
輸入圖片說明

  1. 查看網卡流量 sar -n DEV #sar -n DEV 1 10 1秒顯示一次,顯示10次
    輸入圖片說明

IFACE這列表示設備名稱,rxpck/s 表示每秒進入收取的包的數量,txpck/s 表示每秒發送出去的包的數量,rxbyt/s 表示每秒收取的數據量(單位Byte),txbyt/s表示每秒發送的數據量。後面幾列不須要關注。若是有一天你所管理的服務器丟包很是嚴重,那麼你就應該看一看這個網卡流量是否異常了,若是rxpck/s 那一列的數值2000左右是正常的,若是上W就不正常了,被攻擊了,這個是咱們就要去抓包去查看下一下,正常的服務器網卡流量不會高於這麼多,除非是你本身在拷貝數據。上面的命令是查看網卡流量歷史的,如什麼時候時查看網卡流量呢?

另外也能夠查看某一天的網卡流量歷史,使用-f選項,後面跟文件名,若是你的系統格式Redhat或者CentOS那麼sar的庫文件必定是在/var/log/sa/目錄下的。: 裏面友兩種文件一種是sa後面跟的是日期,要用sar -f 打開;還有一種是sar,能夠用cat查看;文件裏面存的是一個月30天的歷史記錄。

  1. 過了10分鐘後,用sar命令就正常了 輸入圖片說明

sar -n DEV -f /var/log/sa/sa10 查看歷史流量

sa10這個目錄是有規律的,是按日期來的,這個目錄最多保存一個月
輸入圖片說明

查看歷史負載 sar -q

輸入圖片說明

查看歷史磁盤 sar -b

輸入圖片說明

查看歷史cpu sar -p

輸入圖片說明

注意:/var/log/sa下面有兩個文件

  1. sa10 是當天生成,sar10次日生成

  2. sa10和sar10的區別:sa10要用sa的命令來查看:sar -n DEV -f /var/log/sa/sa10

  3. sar10 能夠直接用cat來查看:cat /var/log/sa/sar10
    輸入圖片說明

  4. sar -n DEV -f /var/log/sa/sa10 輸入圖片說明

  5. cat /var/log/sa/sar10
    輸入圖片說明


nload命令

  • 在安裝nload前先裝一個擴展包
    yum install -y epel-release
    yum install -y nload
[root@localhost ~]# nload

會出現一個動態的一個實時的網卡頁面
網卡名;IP;幾個網卡(按方向鍵選擇網卡 )

輸入圖片說明

  1. Inconming:進來的帶寬(受到攻擊的時候流量會很大)
  2. outgoing: 出去的帶寬(買的帶寬)
相關文章
相關標籤/搜索