Linux sar性能分析
2019獨角獸企業重金招聘Python工程師標準>>>
?
- Linux使用sar進行性能分析
- sar簡介
- sar命令常用格式
- sar常用性能數據分析
- 整體CPU使用統計-u
- 各個CPU使用統計-P
- 內存使用情況統計-r
- 整體IO情況-b
- 各個IO設備情況-d
- 網絡統計-n
- sar日志保存-o
- References
?
sar簡介
sar(System Activity Reporter, 系統活動情況報告): 是用于監控Linux系統各個性能的優秀工具,包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。
sar命令常用格式
sar [ options ] [ <interval> [ <count> ] ]?
其中:?
interval: 采樣周期,單位是秒;?
count:采樣次數,默認值是連續采樣;?
options:命令行選項。
sar命令的選項很多,下面只列出常用選項:?
-A:所有報告的總和?
-u:輸出整體CPU使用情況的統計信息?
-v:輸出inode、文件和其他內核表的統計信息?
-d:輸出每一個塊設備的活動信息?
-r:輸出內存和交換空間的統計信息?
-b:顯示I/O和傳送速率的統計信息?
-a:文件讀寫情況?
-c:輸出進程統計信息,每秒創建的進程數?
-R:輸出內存頁面的統計信息?
-y:終端設備活動情況?
-w:輸出系統交換活動信息
sar常用性能數據分析
下文將說明如何使用sar獲取以下性能分析數據:?
- 整體CPU使用統計?
- 各個CPU使用統計?
- 內存使用情況統計?
- 整體I/O情況?
- 各個I/O設備情況?
- 網絡統計
整體CPU使用統計(-u)
使用-u選項,sar輸出整體CPU的使用情況,不加選項時,默認使用的就是-u選項。以下命令顯示采樣時間為3s,采樣次數為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表示統計信息為所有CPU的平均值。?
%usr:CPU在用戶態執行進程的時間百分比。?
%nice:CPU在用戶態模式下,用于nice操作,所占用CPU總時間的百分比。?
%system:CPU處在內核態執行進程的時間百分比。?
%iowait:CPU用于等待I/O操作占用CPU總時間的百分比。?
%steal:管理程序(hypervisor)為另一個虛擬進程提供服務而等待虛擬CPU的百分比。?
%idle:CPU空閑時間百分比。?
1. 若 %iowait 的值過高,表示硬盤存在I/O瓶頸?
2. 若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量?
3. 若 %idle 的值持續低于1,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU
各個CPU使用統計(-P)
“-P ALL”選項指示對每個內核輸出統計信息:?
其中”CPU”列輸出0,1,2,3,4,5指示對應的cpu核。也可針對單獨一個內核顯示,“-P 1”指示顯示第二個內核的統計信息。
內存使用情況統計(-r)
使用-r選項可顯示內存統計信息,以下命令顯示以1秒為采樣時間,顯示2次內存信息:?
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: 每秒向磁盤設備請求數據的次數,包括讀、寫請求,為rtps與wtps的和。出于效率考慮,每一次IO下發后并不是立即處理請求,而是將請求合并(merge),這里tps指請求合并后的請求計數。?
rtps: 每秒向磁盤設備的讀請求次數?
wtps: 每秒向磁盤設備的寫請求次數?
bread/s:每秒鐘從物理設備讀入的數據量,單位為 塊/s?
bwrtn/s:每秒鐘向物理設備寫入的數據量,單位為 塊/s
各個I/O設備情況(-d)
使用-d選項可以顯示各個磁盤的統計信息,再增加-p選項可以以sdX的形式顯示設備名稱:?
sar -d -p 3 2?
輸出項說明:?
rd_sec/s: 每秒從設備讀取的扇區數?
wr_sec/s: 每秒往設備寫入的扇區數?
avgrq-sz: 發送給設備的請求的平均大小(以扇區為單位)?
avgqu-sz: 發送給設備的請求隊列的平均長度?
await :服務等待I/O請求的平均時間,包括請求隊列等待時間 (單位毫秒)?
svctm :設備處理I/O請求的平均時間,不包括請求隊列等待時間 (單位毫秒)?
%util :一秒中有百分之多少的時間用于 I/O 操作,即被io消耗的cpu百分比。
備注:?
- 如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。?
- 如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大于 svctm,說明I/O 隊列太長,io響應太慢,則需要進行必要優化。?
- 如果avgqu-sz比較大,也表示有當量io在等待。
網絡統計(-n)
使用-n選項可以對網絡使用情況進行顯示,-n后接關鍵詞”DEV”可顯示eth0、eth1等網卡的信息:?
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統計信息保存到一個指定的文件,對于保存的日志,我們可以使用-f選項讀取:
linux:~ # sar -n DEV 1 10 -o sar.out?
linux:~ # sar -d 1 10 -f sar.out?
相比將結果重定向到一個文件,使用-o選項,可以保存更多的系統資源信息。
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
轉載于:https://my.oschina.net/zhiyonghe/blog/1860688
總結
以上是生活随笔為你收集整理的Linux sar性能分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: https安全传输揭秘
- 下一篇: 关于Python的人工智能这么火,一大波