目錄
一:sar命令概述
1.1sar概述
1.2sar常用選項
1.3常用參數(shù)
二:CPU資源監(jiān)控
2.1整體CPU使用統(tǒng)計(-u)
2.2各個CPU使用統(tǒng)計(-P)
2.3將CPU使用情況保存到文件中?
三:內(nèi)存監(jiān)控
3.1內(nèi)存和交換空間監(jiān)控
3.2內(nèi)存分頁監(jiān)控
3.3系統(tǒng)交換活動信息監(jiān)控?
四:I/O和傳送速率監(jiān)控與磁盤使用情況
4.1整體I/O情況(-b)
4.2各個I/O設(shè)備情況(-d)?
五:進(jìn)程長度和CPU平均負(fù)載狀態(tài)監(jiān)控
六:網(wǎng)絡(luò)寬帶監(jiān)控
七:一些可能會用到的選項
八:壓力測試實驗
8.1測試cpu占用率
8.1.1測試前cpu數(shù)據(jù)
8.1.2安裝stress并進(jìn)行測試
8.1.3進(jìn)行測試后的數(shù)據(jù)
8.2測試內(nèi)存占用率
8.2.1測試前內(nèi)存數(shù)據(jù)?
8.2.2使用stress命令進(jìn)行測試
8.2.3進(jìn)行測試后的數(shù)據(jù)
8.3測試I/O與傳輸速率與磁盤使用情況?
8.3.1測試前數(shù)據(jù)
8.3.2使用stress命令進(jìn)行測試
8.3.3進(jìn)行測試后的數(shù)據(jù)
8.4檢測網(wǎng)絡(luò)流量?
8.4.1測試前的數(shù)據(jù)
8.4.2在另一臺機(jī)器安裝ab工具并進(jìn)行測試
8.4.3進(jìn)行測試后的數(shù)據(jù)
九:總結(jié)
前言:sar是一個Linux下的監(jiān)控工具,一直站在鄙視鏈的頂端。但是往往因繁多的參數(shù),讓人望而生畏,不知道怎么使用。然而這么強(qiáng)大命令并非是無章可循,只要我們找到合適的切入點來分析這個工具,就會發(fā)現(xiàn)實際上是非常簡單的
一:sar命令概述
#格式
sar -n DEV 1 5
-n:次數(shù)
DEV:類型參數(shù)
1:時間間隔
5:次數(shù)
1.1sar概述
sar命令很簡單,它的參數(shù)主要分為四部分。其中,第二部分和第三、四部分,是可選的,也就是說,最終要的參數(shù),就剩下一個,那就是選項。不帶選項默認(rèn)是-u。
1.選項,也就是我們要獲取的是哪個類型的指標(biāo)數(shù)據(jù),這里的-n,代表的是監(jiān)控一些網(wǎng)絡(luò)信息
2.類型參數(shù),有的類型帶有參數(shù),有的沒有。這里的DEV,代表的是監(jiān)控網(wǎng)卡信息
3.時間間隔,表示多少秒采樣一次數(shù)據(jù),這里的1就是1秒
4.次數(shù),表示采樣的次數(shù)。比如時間間隔是3,采樣次數(shù)是4,那么sar命令將會阻塞12秒鐘
1.2sar常用選項
選項 | 功能 |
-A | 所有報告的總和 |
-u | 輸出CPU使用情況的統(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)交換活動信息 |
1.3常用參數(shù)
默認(rèn)監(jiān)控: sar 1 1 // CPU和IOWAIT統(tǒng)計狀態(tài)
sar -b 1 1 // IO傳送速率
sar -B 1 1 // 頁交換速率
sar -C 1 1 // 進(jìn)程創(chuàng)建的速率
sar -d 1 1 // 塊設(shè)備的活躍信息
sar -n DEV 1 1 // 網(wǎng)路設(shè)備的狀態(tài)信息
sar -n SOCK 1 1 // SOCK的使用情況
sar -n ALL 1 1 // 所有的網(wǎng)絡(luò)狀態(tài)信息
sar -P ALL 1 1 // 每顆CPU的使用狀態(tài)信息和IOWAIT統(tǒng)計狀態(tài)
sar -q 1 1 // 隊列的長度(等待運行的進(jìn)程數(shù))和負(fù)載的狀態(tài)
sar -r 1 1 // 內(nèi)存和swap空間使用情況
sar -R 1 1 // 內(nèi)存的統(tǒng)計信息(內(nèi)存頁的分配和釋放、系統(tǒng)每秒作為BUFFER使用內(nèi)存頁、每秒被cache到的內(nèi)存頁)
sar -u 1 1 // CPU的使用情況和IOWAIT信息(同默認(rèn)監(jiān)控)
sar -v 1 1 // inode, file and other kernel tablesd的狀態(tài)信息
sar -w 1 1 // 每秒上下文交換的數(shù)目
sar -W 1 1 // SWAP交換的統(tǒng)計信息(監(jiān)控狀態(tài)同iostat 的si so)
sar -y 1 1 // TTY設(shè)備的活動狀態(tài)
sar -h // 查看幫助
二:CPU資源監(jiān)控
2.1整體CPU使用統(tǒng)計(-u)
使用-u選項,sar輸出整體CPU的使用情況,不加選項時,默認(rèn)使用的就是-u選項。以下命令顯示采樣時間為3s,采樣次數(shù)為2次,整體CPU的使用情況:
sar 3 2 (或者 sar -u 1 3)
sar -u 1 3?或 sar 1 3??(1:每隔一秒刷新一次,3:刷新3次)
也可以使用 -p?查看全天
輸出項 | 詳細(xì)說明 |
CPU | all表示統(tǒng)計信息為所有CPU的平均值 |
%user | 顯示在用戶級別(application)運行使用CPU總時間的百分比 |
%nice | 改變過優(yōu)先級的進(jìn)程的CPU使用率 |
%system | 內(nèi)核空間的CPU使用率,在核心級別(kernel)運行使用CPU總時間的百分比 |
%iowait | 顯示用于等待I/O操作占用CPU總時間的百分比 |
%steal | 管理程序(hypervisor)為另一個虛擬進(jìn)程提供服務(wù)而等待虛擬CPU的百分比 |
%idle | 顯示CPU空閑時間占用CPU總時間的百分比 |
?在以上的顯示當(dāng)中,主要看%iowait和%idle,%iowait過高表示存在I/O瓶頸,即磁盤IO無法滿足業(yè)務(wù)需求,如果%idle過低表示CPU使用率比較嚴(yán)重,需要結(jié)合內(nèi)存使用等情況判斷CPU是否瓶頸
2.2各個CPU使用統(tǒng)計(-P)
sar -P ALL 1 1 #對每個內(nèi)核輸出統(tǒng)計信息
sar -P 0 1 1 #顯示第一個內(nèi)核的統(tǒng)計信息
“-P ALL”選項指示對每個內(nèi)核輸出統(tǒng)計信息:
2.3將CPU使用情況保存到文件中?
sar -u -o test 4 3
#每4秒采樣1次,連續(xù)采樣3次,將采樣結(jié)果以二進(jìn)制形式存入當(dāng)前目錄下的文件test中
sar -u -f test
#查看二進(jìn)制文件的內(nèi)容
三:內(nèi)存監(jiān)控
3.1內(nèi)存和交換空間監(jiān)控
使用-r選項可顯示內(nèi)存統(tǒng)計信息,以下命令顯示以1秒為采樣時間,顯示3次內(nèi)存信息:
sar -r 1 3?(1:每隔一秒刷新一次,3:刷3次)
輸出項 | 詳細(xì)說明 |
kbmemfree | 這個值和free命令中的free值基本一致,所以不包括buffer和cache空間 |
kbmemused | 這個值和free命令中的used值基本一致,所以包括buffer和cache的空間 |
%memused | 這個值是kbmemused和內(nèi)存總量(不包括swap)的一個百分比 |
kbbuffers和kbcached | 這倆個值就是free命令中的buffer和cache |
kbcommit | 保證當(dāng)前系統(tǒng)所需要的內(nèi)存,即為了確保不溢出而需要的內(nèi)存(RAM+swap) |
%commit | 這個值是kbcommit與內(nèi)存總量(包括swap)的一個百分比(可以看做內(nèi)存使用量的百分比) |
3.2內(nèi)存分頁監(jiān)控
sar -B 5 3
#每5秒采樣一次,連續(xù)采樣3次,監(jiān)控內(nèi)存分頁
輸出項說明:
選項 |
說明 |
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系統(tǒng)交換活動信息監(jiān)控?
sar -w 1 3?(1:每秒上下文交換的數(shù)目,3:刷新三次)
pswpin/s |
每秒系統(tǒng)換入的交換頁面(swap page)數(shù)量 |
pswpout/s |
每秒系統(tǒng)換出的交換頁面(swap page)數(shù)量 |
四:I/O和傳送速率監(jiān)控與磁盤使用情況
sar的I/O和磁盤使用情況是有點重合的
4.1整體I/O情況(-b)
sar -b 1 3?(1:每隔一秒刷新一次,3:刷新3次)
輸出項 | 詳細(xì)說明 |
tps | 每秒物理設(shè)備的I/O傳輸總量 |
rtps | 每秒從物理設(shè)備讀入的數(shù)據(jù)總量 |
%util | 表示一秒中有百分之幾的時間用于I/O操作 |
wtps | 每秒向物理設(shè)備寫入的數(shù)據(jù)總量 |
bread/s | 每秒從物理設(shè)備讀入的數(shù)據(jù)量,單位為塊/s |
bwrtn/s |
每秒向物理設(shè)備寫入的數(shù)據(jù)量,單位為塊/s |
4.2各個I/O設(shè)備情況(-d)?
sar -d 1 3?(1:每隔一秒刷新一次,3:刷新3次)
sar -d -p 1 3 #-p可以以sdx的形式顯示
參數(shù)-p可以打印出sda,hdc等磁盤設(shè)備名稱,如果不用參數(shù)-p,設(shè)備節(jié)點則有可能是dev8-0,dev22-0?
選項 |
說明 |
rd_sec/s |
每秒從設(shè)備讀取的扇區(qū)數(shù) |
wr_sec/s |
每秒往設(shè)備寫入的扇區(qū)數(shù) |
avgrq-sz |
發(fā)送給設(shè)備的請求的平均大小(以扇區(qū)為單位) |
avgqu-sz |
發(fā)送給設(shè)備的請求隊列的平均長度 |
await |
服務(wù)等待I/O請求的平均時間,包括請求隊列等待時間 (單位毫秒) |
svctm |
設(shè)備處理I/O請求的平均時間,不包括請求隊列等待時間 (單位毫秒) |
%util |
一秒中有百分之多少的時間用于 I/O 操作,即被io消耗的cpu百分比 |
如果 %util 接近 100%,說明產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷,該磁盤可能存在瓶頸。
如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠(yuǎn)大于 svctm,說明I/O 隊列太長,io響應(yīng)太慢,則需要進(jìn)行必要優(yōu)化。
如果avgqu-sz比較大,也表示有大量io在等待
五:進(jìn)程長度和CPU平均負(fù)載狀態(tài)監(jiān)控
sar -q 1 3 //1:每隔一秒刷新一次,3:總共刷新三次
輸出項 | 詳細(xì)說明 |
runq-sz | 運行隊列的長度(等待運行的進(jìn)程數(shù)) |
plist-sz | 進(jìn)程列表中進(jìn)程(processes)和線程(threads)的數(shù)量 |
Idavg-1 | 最后1分鐘的CPU平均負(fù)載,即將多核CPU過去一分鐘的負(fù)載相加再除去核心數(shù)得出的平均值,5分鐘和15分鐘以此類推 |
Idavg-5 | 最后5分鐘的CPU平均負(fù)載 |
Idavg-15 | 最后15分鐘的CPU平均負(fù)載 |
blocked |
六:網(wǎng)絡(luò)寬帶監(jiān)控
sar -n DEV 1 3
sar命令使用-n選項可以匯報網(wǎng)絡(luò)相關(guān)信息,可用的參數(shù)包括:DEV、EDEV、SOCK和FULL
IFACE |
就是網(wǎng)絡(luò)設(shè)備的名稱 |
rxpck/s |
每秒鐘接收到的包數(shù)目 |
txpck/s |
每秒鐘發(fā)送出去的包數(shù)目 |
rxbyt/s |
每秒鐘接收到的字節(jié)數(shù) |
txbyt/s |
每秒鐘發(fā)送出去的字節(jié)數(shù) |
rxcmp/s |
每秒鐘接收到的壓縮包數(shù)目 |
txcmp/s |
每秒鐘發(fā)送出去的壓縮包數(shù)目 |
txmcst/s |
每秒鐘接收到的多播包的包數(shù)目 |
查看網(wǎng)絡(luò)信息的參數(shù)還有很多,就不一一舉例,畢竟大多數(shù)時候我們只和DEV打交道,這邊我就把它舉出來了。
DEV?網(wǎng)卡
EDEV?網(wǎng)卡 (錯誤)
NFS?NFS 客戶端
NFSD?NFS 服務(wù)器
SOCK?Sockets (套接字) (v4)
IP?IP 流 (v4)
EIP?IP 流 (v4) (錯誤)
ICMP?ICMP 流 (v4)
EICMP?ICMP 流 (v4) (錯誤)
TCP?TCP 流 (v4)
ETCP?TCP 流 (v4) (錯誤)
UDP?UDP 流 (v4)
SOCK6?Sockets (套接字) (v6)
IP6?IP 流 (v6)
EIP6?IP 流 (v6) (錯誤)
ICMP6?ICMP 流 (v6)
EICMP6?ICMP 流 (v6) (錯誤)
UDP6?UDP 流 (v6)
七:一些可能會用到的選項
將結(jié)果輸出到文件(-o)和讀取記錄信息(-f)
-f可以讀取二級制存儲的數(shù)據(jù)文件,所以我們也可以用它來讀取之前的日志文件中的系統(tǒng)數(shù)據(jù)
監(jiān)控indo、文件和其他內(nèi)核監(jiān)控
sar -v 1 3
dentunusd |
目錄高速緩存中未被使用的條目數(shù)量 |
file-nr |
文件句柄(file handle)的使用數(shù)量 |
inode-nr |
索引節(jié)點句柄(inode handle)的使用數(shù)量 |
pty-nr |
使用的pty數(shù)量 |
內(nèi)存分頁監(jiān)控:sar -B 1 3
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)的百分比 |
要判斷系統(tǒng)瓶頸問題,有時需幾個 sar 命令選項結(jié)合起來
懷疑CPU存在瓶頸,可用 sar -u 和 sar -q 等來查看
懷疑內(nèi)存存在瓶頸,可用 sar -B、sar -r 和 sar -W 等來查看
懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d 等來查看
八:壓力測試實驗
8.1測試cpu占用率
8.1.1測試前cpu數(shù)據(jù)
8.1.2安裝stress并進(jìn)行測試
yum install epel-release -y
yum install stress -y
8.1.3進(jìn)行測試后的數(shù)據(jù)
8.2測試內(nèi)存占用率
8.2.1測試前內(nèi)存數(shù)據(jù)?
8.2.2使用stress命令進(jìn)行測試
stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
開啟2個進(jìn)程分配內(nèi)存,每次分配1GB內(nèi)存,保持100秒后釋放,100秒后退出
8.2.3進(jìn)行測試后的數(shù)據(jù)
8.3測試I/O與傳輸速率與磁盤使用情況?
8.3.1測試前數(shù)據(jù)
8.3.2使用stress命令進(jìn)行測試
stress --io 15 --hdd 15 --timeout 600
8.3.3進(jìn)行測試后的數(shù)據(jù)
8.4檢測網(wǎng)絡(luò)流量?
8.4.1測試前的數(shù)據(jù)
8.4.2在另一臺機(jī)器安裝ab工具并進(jìn)行測試
yum install httpd-tools -y
ab -n 40000 -c 1000 http://192.168.137.10/
-n指定并發(fā)數(shù)
-c指定并發(fā)次數(shù)
注意:網(wǎng)址后面一定要加上 / 斜杠結(jié)尾
8.4.3進(jìn)行測試后的數(shù)據(jù)
九:總結(jié)
sar功能全面,可以統(tǒng)計很多系統(tǒng)數(shù)據(jù)文章來源:http://www.zghlxwxcb.cn/news/detail-779827.html
整體CPU使用統(tǒng)計;各個CPU使用統(tǒng)計;內(nèi)存使用情況統(tǒng)計;整體I/O情況;各個I/O設(shè)備情況;網(wǎng)絡(luò)統(tǒng)計文章來源地址http://www.zghlxwxcb.cn/news/detail-779827.html
到了這里,關(guān)于優(yōu)化命令之sar——最牛命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!