欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

linux服務器監控的幾個方法和命令

阮建安2年前15瀏覽0評論

linux服務器監控的幾個方法和命令?

概述

今天主要對mpstat、IOstat、sar、vmstat命令做一下總結,這幾個命令都是屬于運維人員必須掌握的,所以,能不偷懶就不偷懶了。

1、mpstat

mpstat是Multiprocessor Statistics的縮寫,是實時監控工具,報告與cpu的一些統計信息這些信息都存在/proc/stat文件中,在多CPU系統里,其不但能查看所有的CPU的平均狀況的信息,而且能夠有查看特定的cpu信息,mpstat最大的特點是:可以查看多核心的cpu中每個計算核心的統計數據;而且類似工具vmstat只能查看系統的整體cpu情況。

實例:查看多核cpu當前運行的狀況,每兩秒更新一次,一共更新5次

# mpstat 2 5

說明:

%user 在internal時間段里,用戶態的CPU時間(%),不包含nice值為負進程 (usr/total)*100

%nice 在internal時間段里,nice值為負進程的CPU時間(%) (nice/total)*100

%sys 在internal時間段里,內核時間(%) (system/total)*100

%iowait 在internal時間段里,硬盤IO等待時間(%) (iowait/total)*100

%irq 在internal時間段里,硬中斷時間(%) (irq/total)*100

%soft 在internal時間段里,軟中斷時間(%) (softirq/total)*100

%idle 在internal時間段里,CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%) (idle/total)*100

2、iostat

iostat用于輸出CPU和磁盤I/O相關的統計信息.

語法:

iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]

實例1:

--參數-d表示顯示設備磁盤的使用狀態;-k表示某些使用block為單位的列強制使用kilobytes為單位,2表示數據每隔2秒刷新一次 6表示一共刷新6次

# iostat -d -k 2 6

說明:

tps:該設備每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device.)。

"一次傳輸"意思是"一次I/O請求"。多個邏輯請求可能會被合并為"一次I/O請求"。"一次傳輸"請求的大小是未知的。

kB_read/s:每秒從設備(drive expressed)讀取的數據量;

kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量;

kB_read:讀取的總數據量;

kB_wrtn:寫入的總數量數據量;這些單位都為Kilobytes。

實例2:

--可以把K單位換成M

# iostat -d -m 2 6

實例3:

--使用iostat查看cpu統計信息使用-C參數

# iostat -c 2 6

實例4:-X參數

--iostat還有一個比較常用的-X參數,該選項將用于顯示和io相關的擴展數據。

# iostat -d -x -k 1 6

3、sar

sar(System ActivityReporter系統活動情況報告)是目前Linux上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等,sar命令有sysstat安裝包安裝。

語法:

sar [ options ] [ <interval> [ <count> ] ]

--Options are:

-A:所有報告的總和

-b:顯示I/O和傳遞速率的統計信息

-B:顯示換頁狀態

-d:輸出每一塊磁盤的使用信息

-e:設置顯示報告的結束時間

-f:從制定的文件讀取報告

-i:設置狀態信息刷新的間隔時間

-P:報告每個CPU的狀態

-R:顯示內存狀態

–u:輸出cpu使用情況和統計信息

–v:顯示索引節點、文件和其他內核表的狀態

-w:顯示交換分區的狀態

-x:顯示給定進程的裝

-r:報告內存利用率的統計信息

實例1:

--每2秒采樣一次,連續4次,觀察cpu的使用情況,并將采樣的結果以二進制形式存入當前目錄下的文件sar中,如下:

# sar -u -o sar 2 4

實例2:

--從二進制中調取

# sar -u -f /root/sar

實例3:

--報告每個cpu的狀態,1秒一次,一共4次

# sar -p 1 4

實例4:

--查看平均負載

#sar -q

實例5:

--查看內存使用情況

#sar -r

實例6:

--查看系統swap分區的統計信息

# sar -w

實例7:

--磁盤使用統計信息

# sar -d

默認監控:

sar 5 5 // CPU和IOWAIT統計狀態

(1) sar -b 5 5 // IO傳送速率

(2) sar -B 5 5 // 頁交換速率

(3) sar -c 5 5 // 進程創建的速率

(4) sar -d 5 5 // 塊設備的活躍信息

(5) sar -n DEV 5 5 // 網路設備的狀態信息

(6) sar -n SOCK 5 5 // SOCK的使用情況

(7) sar -n ALL 5 5 // 所有的網絡狀態信息

(8) sar -P ALL 5 5 // 每顆CPU的使用狀態信息和IOWAIT統計狀態

(9) sar -q 5 5 // 隊列的長度(等待運行的進程數)和負載的狀態

(10) sar -r 5 5 // 內存和swap空間使用情況

(11) sar -R 5 5 // 內存的統計信息(內存頁的分配和釋放、系統每秒作為BUFFER使用內存頁、每秒被cache到的內存頁)

(12) sar -u 5 5 // CPU的使用情況和IOWAIT信息(同默認監控)

(13) sar -v 5 5 // inode, file and other kernel tablesd的狀態信息

(14) sar -w 5 5 // 每秒上下文交換的數目

(15) sar -W 5 5 // SWAP交換的統計信息(監控狀態同iostat 的si so)

(16) sar -x 2906 5 5 // 顯示指定進程(2906)的統計信息,信息包括:進程造成的錯誤、用戶級和系統級用戶CPU的占用情況、運行在哪顆CPU上

(17) sar -y 5 5 // TTY設備的活動狀態

(18) 將輸出到文件(-o)和讀取記錄信息(-f)

4、vmstat

vmstat命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換情況,IO讀寫情況。這個命令是我查看Linux/Unix最喜愛的命令,一個是Linux/Unix都支持,二是相比top,我可以看到整個機器的CPU,內存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內存使用率(使用場景不一樣)。

實例1:

--第一個參數是采樣的時間間隔數,單位是秒,第二個參數是采樣的次數

--如果想在一段時間內一直監控可執行# vmstat 2

# vmstat 2 6

說明:

r 表示運行隊列(就是說多少個進程真的分配到CPU),當這個值超過了CPU數目,就會出現CPU瓶頸了。這個也和top的負載有關系,一般負載超過了3就比較高,超過了5就高

,超過了10就不正常了,服務器的狀態很危險。top的負載類似每秒的運行隊列。如果運行隊列過大,表示你的CPU很繁忙,一般會造成CPU使用率很高。

b 表示阻塞的進程

swpd 虛擬內存已使用的大小,如果大于0,表示你的機器物理內存不足了,如果不是程序內存泄露的原因,那么你該升級內存了或者把耗內存的任務遷移到其他機器。

free 空閑的物理內存的大小

buff Linux/Unix系統是用來存儲,目錄里面有什么內容,權限等的緩存

cache cache直接用來記憶我們打開的文件,給文件做緩沖

si 每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。

so 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上

bi 塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte

bo 塊設備每秒發送的塊數量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調整。

in 每秒CPU的中斷次數,包括時間中斷

cs 每秒上下文切換次數

us 用戶CPU時間

sy 系統CPU時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。

id 空閑 CPU時間

wt 等待IO CPU時間。

這種基礎命令一定要會,建議大家熟記,后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~