Linux sar性能分析
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
?
- Linux使用sar進(jìn)行性能分析
- sar簡介
- sar命令常用格式
- sar常用性能數(shù)據(jù)分析
- 整體CPU使用統(tǒng)計-u
- 各個CPU使用統(tǒng)計-P
- 內(nèi)存使用情況統(tǒng)計-r
- 整體IO情況-b
- 各個IO設(shè)備情況-d
- 網(wǎng)絡(luò)統(tǒng)計-n
- sar日志保存-o
- References
?
sar簡介
sar(System Activity Reporter, 系統(tǒng)活動情況報告): 是用于監(jiān)控Linux系統(tǒng)各個性能的優(yōu)秀工具,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況、磁盤I/O、CPU效率、內(nèi)存使用狀況、進(jìn)程活動及IPC有關(guān)的活動等。
sar命令常用格式
sar [ options ] [ <interval> [ <count> ] ]?
其中:?
interval: 采樣周期,單位是秒;?
count:采樣次數(shù),默認(rèn)值是連續(xù)采樣;?
options:命令行選項。
sar命令的選項很多,下面只列出常用選項:?
-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)交換活動信息
sar常用性能數(shù)據(jù)分析
下文將說明如何使用sar獲取以下性能分析數(shù)據(jù):?
- 整體CPU使用統(tǒng)計?
- 各個CPU使用統(tǒng)計?
- 內(nèi)存使用情況統(tǒng)計?
- 整體I/O情況?
- 各個I/O設(shè)備情況?
- 網(wǎng)絡(luò)統(tǒng)計
整體CPU使用統(tǒng)計(-u)
使用-u選項,sar輸出整體CPU的使用情況,不加選項時,默認(rèn)使用的就是-u選項。以下命令顯示采樣時間為3s,采樣次數(shù)為2次,整體CPU的使用情況:?
sar 3 2 (或者 sar -u 3 2)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
輸出項說明:?
CPU:all表示統(tǒng)計信息為所有CPU的平均值。?
%usr:CPU在用戶態(tài)執(zhí)行進(jìn)程的時間百分比。?
%nice:CPU在用戶態(tài)模式下,用于nice操作,所占用CPU總時間的百分比。?
%system:CPU處在內(nèi)核態(tài)執(zhí)行進(jìn)程的時間百分比。?
%iowait:CPU用于等待I/O操作占用CPU總時間的百分比。?
%steal:管理程序(hypervisor)為另一個虛擬進(jìn)程提供服務(wù)而等待虛擬CPU的百分比。?
%idle:CPU空閑時間百分比。?
1. 若 %iowait 的值過高,表示硬盤存在I/O瓶頸?
2. 若 %idle 的值高但系統(tǒng)響應(yīng)慢時,有可能是 CPU 等待分配內(nèi)存,此時應(yīng)加大內(nèi)存容量?
3. 若 %idle 的值持續(xù)低于1,則系統(tǒng)的 CPU 處理能力相對較低,表明系統(tǒng)中最需要解決的資源是 CPU
各個CPU使用統(tǒng)計(-P)
“-P ALL”選項指示對每個內(nèi)核輸出統(tǒng)計信息:?
其中”CPU”列輸出0,1,2,3,4,5指示對應(yīng)的cpu核。也可針對單獨一個內(nèi)核顯示,“-P 1”指示顯示第二個內(nèi)核的統(tǒng)計信息。
內(nèi)存使用情況統(tǒng)計(-r)
使用-r選項可顯示內(nèi)存統(tǒng)計信息,以下命令顯示以1秒為采樣時間,顯示2次內(nèi)存信息:?
sar -r 1 2?
| kbmemfree | Amount of free memory available in kilobytes. |
| kbmemused | Amount of used memory in kilobytes. This does not take into account memory used by the kernel itself. |
| %memused | Percentage of used memory |
| kbbuffers | Amount of memory used as buffers by the kernel in kilobytes. |
| kbcached | Amount of memory used to cache data by the kernel in kilobytes. |
| kbcommit | Amount of memory in kilobytes needed for current workload. This is an estimate of how much RAM/swap is needed to guarantee that there never is out of memory. |
| %commit | Percentage of memory needed for current workload in relation to the total amount of memory (RAM+swap). This number may be greater than 100% because the kernel usually overcommits memory. |
整體I/O情況(-b)
使用-b選項,可以顯示磁盤I/O的使用情況:Report I/O and transfer rate statistics.?
sar -b 3 2?
輸出項說明:?
tps: 每秒向磁盤設(shè)備請求數(shù)據(jù)的次數(shù),包括讀、寫請求,為rtps與wtps的和。出于效率考慮,每一次IO下發(fā)后并不是立即處理請求,而是將請求合并(merge),這里tps指請求合并后的請求計數(shù)。?
rtps: 每秒向磁盤設(shè)備的讀請求次數(shù)?
wtps: 每秒向磁盤設(shè)備的寫請求次數(shù)?
bread/s:每秒鐘從物理設(shè)備讀入的數(shù)據(jù)量,單位為 塊/s?
bwrtn/s:每秒鐘向物理設(shè)備寫入的數(shù)據(jù)量,單位為 塊/s
各個I/O設(shè)備情況(-d)
使用-d選項可以顯示各個磁盤的統(tǒng)計信息,再增加-p選項可以以sdX的形式顯示設(shè)備名稱:?
sar -d -p 3 2?
輸出項說明:?
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比較大,也表示有當(dāng)量io在等待。
網(wǎng)絡(luò)統(tǒng)計(-n)
使用-n選項可以對網(wǎng)絡(luò)使用情況進(jìn)行顯示,-n后接關(guān)鍵詞”DEV”可顯示eth0、eth1等網(wǎng)卡的信息:?
sar -n DEV 1 1?
以上主要輸出含義如下:?
IFACE: Name of the network interface for which statistics are reported.?
rxpck/s: Total number of packets received per second.?
txpck/s: Total number of packets transmitted per second.?
rxkB/s: Total number of kilobytes(kB) received per second.?
txkB/s: Total number of kilobytes(kB) transmitted per second.?
rxcmp/s: Number of compressed packets received per second (for cslip etc.).?
txcmp/s: Number of compressed packets transmitted per second.?
rxmcst/s: Number of multicast packets received per second.
sar日志保存(-o)
最后講一下如何保存sar日志,使用-o選項,我們可以把sar統(tǒng)計信息保存到一個指定的文件,對于保存的日志,我們可以使用-f選項讀取:
linux:~ # sar -n DEV 1 10 -o sar.out?
linux:~ # sar -d 1 10 -f sar.out?
相比將結(jié)果重定向到一個文件,使用-o選項,可以保存更多的系統(tǒng)資源信息。
References:
1?http://www.thegeekstuff.com/2011/03/sar-examples/?
2?http://www.cnblogs.com/bangerlee/articles/2545747.html?
3?http://www.cnblogs.com/xianghang123/archive/2011/08/25/2153591.html?
4?http://www.chinaz.com/server/2013/0401/297942.shtml
轉(zhuǎn)載于:https://my.oschina.net/zhiyonghe/blog/1860688
總結(jié)
以上是生活随笔為你收集整理的Linux sar性能分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: https安全传输揭秘
- 下一篇: 关于Python的人工智能这么火,一大波