https://blog.csdn.net/u013332124/article/details/101075521
一、命令使用介紹
sar命令全稱 System Activity Report,它非常全能,可以分析linux系統(tǒng)各個維度的指標(biāo)。包括:
- 文件的讀寫情況
- 系統(tǒng)調(diào)用的使用情況
- 磁盤I/O
- CPU效率
- 內(nèi)存使用狀況(包括內(nèi)存頁面的置換)
- 進(jìn)程活動
- IPC有關(guān)的活動
- 網(wǎng)卡相關(guān)信息
他的命令常用格式如下:
sar [options] [-A] [-o file] t [n]
其中t為采樣間隔,n為采樣次數(shù),默認(rèn)值是1;-o file表示將命令結(jié)果以二進(jìn)制格式存放在文件中,file是文件名;options為命令行選項,sar常用的選項有以下(主要各個維度的對應(yīng)參數(shù)信息):
-
-A:所有報告的總和 -
-u:輸出CPU使用情況的統(tǒng)計信息 -
-q:輸出cpu等待隊列的長度相關(guān)統(tǒng)計信息 -
-v:輸出inode、文件和其他內(nèi)核表的統(tǒng)計信息 -
-d:輸出每一個塊設(shè)備的活動信息 -
-r:輸出內(nèi)存和交換空間的統(tǒng)計信息 -
-b:顯示I/O和傳送速率的統(tǒng)計信息 -
-a:文件讀寫情況 -
-c:輸出進(jìn)程統(tǒng)計信息,每秒創(chuàng)建的進(jìn)程數(shù) -
-R:輸出內(nèi)存頁面的統(tǒng)計信息 -
-y:終端設(shè)備活動情況 -
-w:輸出系統(tǒng)交換活動信息
二、系統(tǒng)各個維度的性能分析
1、CPU相關(guān)指標(biāo)
和CPU相關(guān)的指標(biāo)的參數(shù)主要有 -P、-u、-q。
1.1、 -P 或者 -u 輸出CPU使用情況的統(tǒng)計信息
其中-u是輸出cpu總的相關(guān)性能指標(biāo),-P可以指定輸出某一個cpu的指標(biāo)(會把cpu一個個列出來)
# 獲取cpu的一個總的信息(默認(rèn)就是-u)
sar 2 2
sar -u 2 2
# 輸出更詳細(xì)一些的報表
sar -u ALL 2 2
# 獲取某一個cpu的信息
sar -P 1 2 2
# 獲取所有cpu的信息
sar -P ALL 22
輸出:
03:47:05 PM CPU %user %nice %system %iowait %steal %idle
03:47:07 PM all 3.88 0.00 0.19 0.06 0.00 95.87
03:47:09 PM all 4.06 0.00 0.22 0.11 0.00 95.61
Average: all 3.97 0.00 0.20 0.09 0.00 95.74
相關(guān)指標(biāo)含義:
-
%user:CPU處在用戶模式下的時間百分比 -
%nice:CPU處在帶NICE值的用戶模式下的時間百分比 -
%system:CPU處在系統(tǒng)模式下的時間百分比 -
%iowait:CPU等待輸入輸出完成時間的百分比 -
%steal:管理程序維護(hù)另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比 -
%idle:CPU空閑時間百分比
1.2、 -q 輸出CPU隊列的相關(guān)統(tǒng)計信息
sar -q 2 2
輸出:
03:54:30 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
03:54:32 PM 2 2798 1.79 1.43 1.46
03:54:34 PM 2 2797 1.79 1.43 1.46
Average: 2 2798 1.79 1.43 1.46
相關(guān)指標(biāo)含義:
-
runq-sz:運行隊列的長度(等待運行的進(jìn)程數(shù)); -
plist-sz:進(jìn)程列表中進(jìn)程(processes)和線程(threads)的數(shù)量,很多線程可能在休眠中 -
ldavg-1:最后1分鐘的系統(tǒng)平均負(fù)載; -
ldavg-5:過去5分鐘的系統(tǒng)平均負(fù)載; -
ldavg-15:過去15分鐘的系統(tǒng)平均負(fù)載;
2、磁盤相關(guān)指標(biāo)(建議用iostat)
我們可以通過-b、-d來輸出磁盤的相關(guān)指標(biāo)。通過
2.1、 -b 輸出磁盤基本信息
sar -b 2 2
輸出:
04:10:11 PM tps rtps wtps bread/s bwrtn/s
04:10:13 PM 101.52 0.00 101.52 0.00 921.83
04:10:15 PM 117.01 0.00 117.01 0.00 1150.52
Average: 109.21 0.00 109.21 0.00 1035.29
相關(guān)指標(biāo)含義:
-
tps:采樣期間I/O的請求數(shù),多個邏輯請求會被合并為一個I/O磁盤請求,一次傳輸?shù)拇笮∈遣淮_定的 -
rtps:采樣期間內(nèi)的io讀請求數(shù) -
wtps:采樣期間內(nèi)的io寫請求數(shù) -
bread/s:采樣期間內(nèi)的io讀的塊數(shù) -
bwrtn/s:采樣期間內(nèi)的io寫的塊數(shù)
2.2、-d 輸出磁盤更詳細(xì)的信息
sar -d 2 2
輸出:
04:13:39 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
04:13:41 PM dev8-144 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-112 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-128 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-96 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-64 1.00 0.00 16.00 16.00 0.01 13.00 13.00 1.30
04:13:41 PM dev8-160 1.50 0.00 28.00 18.67 0.02 14.67 8.67 1.30
04:13:41 PM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
04:13:41 PM dev8-48 1.00 0.00 12.00 12.00 0.01 12.50 12.50 1.25
04:13:41 PM dev8-0 2.50 0.00 92.00 36.80 0.02 9.20 9.20 2.30
相關(guān)指標(biāo)含義:
-
DEV:磁盤設(shè)備; -
tps:采樣期間從物理磁盤I/O的次數(shù),多個邏輯請求會被合并為一個I/O磁盤請求,一次傳輸?shù)拇笮∈遣淮_定的; -
rd_sec/s:采樣期間讀扇區(qū)的次數(shù); -
wr_sec/s:采樣期間寫扇區(qū)的次數(shù); -
avgrq-sz:平均每次設(shè)備I/O操作的數(shù)據(jù)大小(扇區(qū)); -
avgqu-sz:磁盤請求隊列的平均長度; -
await:從請求磁盤操作到系統(tǒng)完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1秒=1000毫秒); -
svctm:系統(tǒng)處理每次請求的平均時間,不包括在請求隊列中消耗的時間; -
%util:I/O請求占CPU的百分比,比率越大,說明越飽;
2.3、 小結(jié)
sar的磁盤指標(biāo)和iostat輸出的其實基本是一樣的。但是iostat可以輸出磁盤的名稱,我們可以通過df -h找到對應(yīng)的磁盤是哪個目錄。而sar的-b不是以單個磁盤為粒度,-d雖然有輸出DEV,但和df -h輸出的磁盤名稱好像對應(yīng)不上。因此,個人建議還是iostat比較好用:
https://blog.csdn.net/u013332124/article/details/98352716
3、內(nèi)存相關(guān)指標(biāo)(-n 參數(shù))
通過 -B、-r、-W 來查看內(nèi)存的相關(guān)指標(biāo)
3.1、-r 查看內(nèi)存的使用情況
sar -r 2 2
輸出:
05:37:07 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
05:37:09 PM 2717548 46656484 94.50 297688 3473964 70040892 105.88
05:37:11 PM 2717416 46656616 94.50 297692 3473972 70038520 105.88
Average: 2717482 46656550 94.50 297690 3473968 70039706 105.88
相關(guān)指標(biāo)含義:
-
kbmemfree:這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間; -
kbmemused:這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間; -
%memused:這個值是kbmemused和內(nèi)存總量(不包括swap)的一個百分比; -
kbbuffers:這兩個值就是free命令中的buffer; -
kbcached:這兩個值就是free命令中的cache; -
kbcommit:保證當(dāng)前系統(tǒng)所需要的內(nèi)存,即為了確保不溢出而需要的內(nèi)存(RAM + swap); -
%commit:這個值是kbcommit與內(nèi)存總量(包括swap)的一個百分比;
3.2、-B 查看內(nèi)存分頁的情況
sar -B 2 2
輸出:
05:39:43 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
05:39:45 PM 0.00 56.57 4540.91 0.00 1527.27 0.00 0.00 0.00 0.00
05:39:47 PM 0.00 50.25 4522.11 0.00 1455.78 0.00 0.00 0.00 0.00
Average: 0.00 53.40 4531.49 0.00 1491.44 0.00 0.00 0.00 0.00
相關(guān)指標(biāo)含義:
-
pgpgin/s:表示每秒從磁盤或SWAP置換到內(nèi)存的字節(jié)數(shù)(KB); -
pgpgout/s:表示每秒從內(nèi)存置換到磁盤或SWAP的字節(jié)數(shù)(KB); -
fault/s:每秒鐘系統(tǒng)產(chǎn)生的缺頁數(shù),即主缺頁與次缺頁之和(major + minor); -
majflt/s:每秒鐘產(chǎn)生的主缺頁數(shù); -
pgfree/s:每秒被放入空閑隊列中的頁個數(shù); -
pgscank/s:每秒被kswapd掃描的頁個數(shù); -
pgscand/s:每秒直接被掃描的頁個數(shù); -
pgsteal/s:每秒鐘從cache中被清除來滿足內(nèi)存需要的頁個數(shù); -
%vmeff:每秒清除的頁(pgsteal)占總掃描頁(pgscank+pgscand)的百分比;
3.3、-W 查看SWAP交換的統(tǒng)計信息
sar -W 2 2
輸出:
05:41:40 PM pswpin/s pswpout/s
05:41:42 PM 0.00 0.00
05:41:44 PM 0.00 0.00
Average: 0.00 0.00
相關(guān)指標(biāo)含義:
-
pswpin/s:每秒從交換分區(qū)到系統(tǒng)的交換頁面(swap page)數(shù)量 -
pswpout/s:每秒從系統(tǒng)交換到swap的交換頁面(swap page)的數(shù)量
4、網(wǎng)絡(luò)相關(guān)指標(biāo)
使用姿勢:
# keyword 表示不同的幾個開關(guān)。包括: DEV | EDEV | NFS | NFSD | SOCK
# 每個開關(guān)輸出的信息都不一樣
sar -n {keyword} or {ALL}
-
DEV: 顯示網(wǎng)絡(luò)接口信息 -
EDEV: 顯示關(guān)于網(wǎng)絡(luò)錯誤的統(tǒng)計數(shù)據(jù) - NFS : 顯示NFS客戶端信息
- NFSD : 顯示NFS服務(wù)器信息
-
SOCK: 顯示套接字信息
4.1、網(wǎng)絡(luò)接口相關(guān)信息
sar -n DEV 2 2
輸出:
05:48:11 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
05:48:13 PM lo 7.50 7.50 0.69 0.69 0.00 0.00 0.00
05:48:13 PM em1 5.00 8.00 0.60 0.94 0.00 0.00 0.00
05:48:13 PM em2 19.00 8.00 2.50 1.44 0.00 0.00 2.00
05:48:13 PM em3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:13 PM em4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:48:13 PM bond0 24.00 16.00 3.09 2.37 0.00 0.00 2.00
相關(guān)指標(biāo)含義:
-
IFACE:LAN接口網(wǎng)絡(luò)設(shè)備的名稱; -
rxpck/s:每秒鐘接收的數(shù)據(jù)包; -
txpck/s:每秒鐘發(fā)送的數(shù)據(jù)包; -
rxkB/s:每秒鐘接收的字節(jié)數(shù); -
txkB/s:每秒鐘發(fā)送的字節(jié)數(shù); -
rxcmp/s:每秒鐘接收的壓縮數(shù)據(jù)包; -
txcmp/s:每秒鐘發(fā)送的壓縮數(shù)據(jù)包; -
rxmcst/s:每秒鐘接收的多播數(shù)據(jù)包;
4.2、網(wǎng)絡(luò)錯誤的統(tǒng)計數(shù)據(jù)
sar -n EDEV 2 2
輸出:
05:49:25 PM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
05:49:27 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:49:27 PM em1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:49:27 PM em2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:49:27 PM em3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:49:27 PM em4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:49:27 PM bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
相關(guān)指標(biāo)含義:
-
IFACE:LAN接口網(wǎng)絡(luò)設(shè)備的名稱; -
rxerr/s:每秒鐘接收的壞數(shù)據(jù)包; -
txerr/s:每秒鐘發(fā)送的壞數(shù)據(jù)包; -
coll/s:每秒沖突數(shù); -
rxdrop/s:因為緩沖充滿,每秒鐘丟棄的已接收數(shù)據(jù)包數(shù); -
txdrop/s:因為緩沖充滿,每秒鐘丟棄的已發(fā)送數(shù)據(jù)包數(shù); -
txcarr/s:發(fā)送數(shù)據(jù)包時,每秒載波錯誤數(shù); -
rxfram/s:每秒接收數(shù)據(jù)包的幀對齊錯誤數(shù); -
rxfifo/s:接收的數(shù)據(jù)包每秒FIFO過速的錯誤數(shù); -
txfifo/s:發(fā)送的數(shù)據(jù)包每秒FIFO過速的錯誤數(shù)
4.3、 查看套接字相關(guān)信息
sar -n SOCK 2 2
輸出:
05:51:14 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw
05:51:16 PM 436 277 5 0 0 0
05:51:18 PM 435 276 5 0 0 0
Average: 436 276 5 0 0 0
相關(guān)指標(biāo)含義:
-
totsck:使用的套接字總數(shù)量; -
tcpsck:使用的TCP套接字?jǐn)?shù)量; -
udpsck:使用的UDP套接字?jǐn)?shù)量; -
rawsck:使用的RAW套接字?jǐn)?shù)量; -
ip-frag:當(dāng)前的IP分片的數(shù)目; -
tcp-tw:TCP套接字中處于TIME-WAIT狀態(tài)的連接數(shù)量
三、其他
1、關(guān)于輸出二進(jìn)制文件和讀取sa二進(jìn)制文件
通過-o參數(shù),可以將性能報告輸出到指定的文件中。不過這個文件是二進(jìn)制的,需要查看具體的信息還是需要通過sar命令來打開解析。
# 輸出到指定的文件
sar -o /tmp/sa.test 2 2
# 解析某個sar二進(jìn)制文件
sar -f /tmp/sa.test
2、關(guān)于sysstat包
sar、sa1和sa2命令都是sysstat包的一部分。它是Linux包含的性能監(jiān)視工具集合。
-
sar:顯示數(shù)據(jù) -
sa1和sa2:收集和保存數(shù)據(jù)用于以后分析。sa2shell腳本在/var/log/sa目錄中每日寫入一個報告。sa1shell腳本將每日的系統(tǒng)活動信息以二進(jìn)制數(shù)據(jù)的形式寫入到文件中。
我們可以在/etc/cron.d/下sysstat文件中找到sar默認(rèn)的cron作業(yè),如下:
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
這樣我們就可以按照我們的需求,進(jìn)行輸出定制化了。
sar不止上面說的幾個程序:
-
sar:收集、報告或存儲信息(CPU、內(nèi)存、磁盤、中斷、網(wǎng)卡、TTY、內(nèi)核表等等); -
sadc:系統(tǒng)數(shù)據(jù)收集器,給sar做后臺服務(wù); -
sa1:收記并存儲二進(jìn)制數(shù)據(jù)到每天的文件;這是設(shè)計來給cron執(zhí)行一個sadc的前臺程序; -
sa2:生成總結(jié)報表; -
sadf:以多種格式顯示數(shù)據(jù)(CSV, XML, JSON, etc.),還可以用來生成SVG(Scalable Vector Graphics)圖表。