目錄
??包含的工具??
??安裝??
??sar??
??iostat??
??mpstat??
Linux Sysstat是linux系統(tǒng)免費(fèi)提供用于收集主機(jī)性能的一個(gè)軟件包,不是默認(rèn)安裝的,需要自己安裝。
sysstat 是?
Linux 系統(tǒng)中的常用工具包。它的主要用途是觀察服務(wù)負(fù)載,比如CPU和內(nèi)存的占用率、網(wǎng)絡(luò)的使用率以及磁盤寫入和讀取速度等。
sysstat 工具包中包含兩類工具:
即時(shí)查看工具:iostat、mpstat、sar
累計(jì)統(tǒng)計(jì)工具:sar
也就是說,sar 具有這兩種功能。因此,sar 是 sysstat 中的核心工具。
包含的工具
- iostat
輸出CPU的統(tǒng)計(jì)信息和所有I/O設(shè)備的輸入輸出(I/O)統(tǒng)計(jì)信息
- mpstat
關(guān)于CPU的詳細(xì)信息(單獨(dú)輸出或者分組輸出)
- pidstat
關(guān)于運(yùn)行中的進(jìn)程/任務(wù)、CPU、內(nèi)存等的統(tǒng)計(jì)信息
- sar
保存并輸出不同系統(tǒng)資源(CPU、內(nèi)存、IO、網(wǎng)絡(luò)、內(nèi)核等)的詳細(xì)信息
- sadc
系統(tǒng)活動(dòng)數(shù)據(jù)收集器,用于收集sar工具的后端數(shù)據(jù)
- sa1
系統(tǒng)收集并存儲(chǔ)sadc數(shù)據(jù)文件的二進(jìn)制數(shù)據(jù),與sadc工具配合使用
- sa2
配合sar工具使用,產(chǎn)生每日的摘要報(bào)告
- sadf
用于以不同的數(shù)據(jù)格式(CVS或者XML)來格式化sar工具的輸出
- sysstat
sysstat 工具包的 man 幫助頁面。
- nfsiostat
NFS(Network File System)的I/O統(tǒng)計(jì)信息
- cifsiostat
CIFS(Co
安裝
- CentOS
通過yum
安裝:yum install sysstat
或者通過rpm
包安裝:wget -c http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm sudo rpm -Uvh sysstat-11.7.3-1.x86_64.rpm
推薦rpm
包方式安裝,因?yàn)槟茈S時(shí)安裝最新版本。 - Ubuntu
apt-get install sysstat
查看是否成功安裝:
mpstat -V
sysstat version 9.0.4
(C) Sebastien Godard (sysstat <at> orange.fr)
sar 的累計(jì)統(tǒng)計(jì)
為了實(shí)現(xiàn) sar 的累計(jì)統(tǒng)計(jì),系統(tǒng)必須周期地記錄當(dāng)時(shí)的信息,這是通過調(diào)用 /usr/lib/
sa/ 中的三個(gè)工具實(shí)現(xiàn)的:
- sa1 :收集并存儲(chǔ)每天系統(tǒng)動(dòng)態(tài)信息到一個(gè)二進(jìn)制的文件中,用作 sadc 的前端程序
- sa2 :收集每天的系統(tǒng)活躍信息寫入總結(jié)性的報(bào)告,用作 sar 的前端程序
- sadc :系統(tǒng)動(dòng)態(tài)數(shù)據(jù)收集工具,收集的數(shù)據(jù)被寫入一個(gè)二進(jìn)制的文件中,它被用作 sar 工具的后端
定時(shí)統(tǒng)計(jì)任務(wù)
如果是用??yum?
?或??apt-get?
?方式安裝,默認(rèn)已經(jīng)在??/etc/cron.d/sysstat?
?中配置好了計(jì)劃日志;如果是編譯安裝或沒有,可以手動(dòng)配置,內(nèi)容大致如下:
# 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
(紅色部分改為sa1和sa2實(shí)際所在地址,用yum和apt-get安裝sysstat后可以用命令 man sa1和man sa2 或find / -name sa1可以查看其所在的實(shí)際地址)
統(tǒng)計(jì)的日志文件會(huì)存放在??/var/log/sa?
?這個(gè)目錄下。每10分鐘就進(jìn)行一次日志的記錄,在23:53對(duì)一天的日志進(jìn)行匯總。
改為1分鐘一次:*/1? * * * * root /usr/lib64/sa/sa1 1 1
-
?
?/usr/lib64/sa/sa1?
?是一個(gè)可以使用 cron 進(jìn)行調(diào)度生成二進(jìn)制日志文件的 shell 腳本 -
?
?/usr/lib64/sa/sa2?
?是一個(gè)可以將二進(jìn)制日志文件轉(zhuǎn)換為用戶可讀的編碼方式的 shell 腳本
可能會(huì)碰到的問題:
安裝后首次執(zhí)行??sar?
?會(huì)報(bào)如下錯(cuò)誤:
(看到在這:/var/log/sysstat/--------------------------------------------------sar log存放目錄)
無法打開 /var/log/sa/sa25: 沒有那個(gè)文件或目錄
原因是安裝完??sysstat?
?后,定時(shí)任務(wù)還沒生成那個(gè)文件。此處的 25 指的是日期??梢允謩?dòng)生成文件:
(在守護(hù)進(jìn)程 /etc/rc.d/init.d/sysstat 中使用???/usr/lib/sa/sadc -F -L -?
??命令創(chuàng)建當(dāng)日記錄文件,文件為???/
?,其中 DD 為當(dāng)天的日期。)
var/
log/sa/saDD?
sudo sar -o 5 #每5秒記錄一條信息,生成當(dāng)日文件saDD
sar
在使用 Linux 系統(tǒng)時(shí),常常會(huì)遇到各種各樣的問題,比如系統(tǒng)容易死機(jī)或者運(yùn)行速度突然變慢,這時(shí)我們常常猜測(cè):是否硬盤空間不足,是否內(nèi)存不足,是否 I/O 出現(xiàn)瓶頸,還是系統(tǒng)的核心參數(shù)出了問題?這時(shí),我們應(yīng)該考慮使用 sar 工具對(duì)系統(tǒng)做一個(gè)全面了解,分析系統(tǒng)的負(fù)載狀況。
sar(System Activity Reporter)是系統(tǒng)活動(dòng)情況報(bào)告的縮寫。sar 工具將對(duì)系統(tǒng)當(dāng)前的狀態(tài)進(jìn)行取樣,然后通過計(jì)算數(shù)據(jù)和比例來表達(dá)系統(tǒng)的當(dāng)前運(yùn)行狀態(tài)。它的特點(diǎn)是可以連續(xù)對(duì)系統(tǒng)取樣,獲得大量的取樣數(shù)據(jù);取樣數(shù)據(jù)和分析的結(jié)果都可以存入文件,所需的負(fù)載很小。 sar 是目前 Linux 上最為全面的系統(tǒng)性能分析工具之一,可以從多方面對(duì)系統(tǒng)的活動(dòng)進(jìn)行報(bào)告,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況、磁盤I/O、CPU效率、內(nèi)存使用狀況、進(jìn)程活動(dòng)及IPC有關(guān)的活動(dòng)等。為了提供不同的信息,sar 提供了豐富的選項(xiàng)、因此使用較為復(fù)雜。
sar 的命令格式
sar 的命令格式為:
sar [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i interval ] [ -p ] [ -q ]
[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]
[ -x { pid | SELF | ALL } ] [ -X { pid | SELF | ALL } ]
[ -I { irq | SUM | ALL | XALL } ] [ -P { cpu | ALL } ]
[ -o [ filename ] | -f [ filename ] ]
[ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ]
[ interval [ count ] ]
其中:
- interval : 為取樣時(shí)間間隔
- count : 為輸出次數(shù),若省略此項(xiàng),默認(rèn)值為 1
常用選項(xiàng):
選項(xiàng) | 說明 |
-A | 等價(jià)于 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL |
-b | 顯示I/O和傳送速率的統(tǒng)計(jì)信息 |
-B | 輸出內(nèi)存頁面的統(tǒng)計(jì)信息 |
-c | 輸出進(jìn)程統(tǒng)計(jì)信息,每秒創(chuàng)建的進(jìn)程數(shù) |
-d | 輸出每一個(gè)塊設(shè)備的活動(dòng)信息 |
-i interval | 指定間隔時(shí)長,單位為秒 |
-p | 顯示友好設(shè)備名字,以方便查看,也可以和-d 和-n 參數(shù)結(jié)合使用,比如 -dp 或-np |
-q | 輸出進(jìn)程隊(duì)列長度和平均負(fù)載狀態(tài)統(tǒng)計(jì)信息 |
-r | 輸出內(nèi)存和交換空間的統(tǒng)計(jì)信息 |
-R | 輸出內(nèi)存頁面的統(tǒng)計(jì)信息 |
-t | 讀取 /var/log/sa/saDD 的數(shù)據(jù)時(shí)顯示其中記錄的原始時(shí)間,如果沒有這個(gè)參數(shù)使用用戶的本地時(shí)間 |
-u | 輸出CPU使用情況的統(tǒng)計(jì)信息 |
-v | 輸出inode、文件和其他內(nèi)核表的統(tǒng)計(jì)信息 |
-V | 輸出版本號(hào)信息 |
-w | 輸出系統(tǒng)交換活動(dòng)信息 |
-W | 輸出系統(tǒng)交換的統(tǒng)計(jì)信息 |
-y | 輸出TTY設(shè)備的活動(dòng)信息 |
-n {DEV|EDEV|NFS|NFSD|SOCK|ALL} | 分析輸出網(wǎng)絡(luò)設(shè)備狀態(tài)統(tǒng)計(jì)信息。 |
DEV | 報(bào)告網(wǎng)絡(luò)設(shè)備的統(tǒng)計(jì)信息 |
EDEV | 報(bào)告網(wǎng)絡(luò)設(shè)備的錯(cuò)誤統(tǒng)計(jì)信息 |
NFS | 報(bào)告 NFS 客戶端的活動(dòng)統(tǒng)計(jì)信息 |
NFSD | 報(bào)告 NFS 服務(wù)器的活動(dòng)統(tǒng)計(jì)信息 |
SOCK | 報(bào)告網(wǎng)絡(luò)套接字(sockets)的使用統(tǒng)計(jì)信息 |
ALL | 報(bào)告所有類型的網(wǎng)絡(luò)活動(dòng)統(tǒng)計(jì)信息 |
-x {pid|SELF|ALL} | 輸出指定進(jìn)程的統(tǒng)計(jì)信息。 |
pid | 用 pid 指定特定的進(jìn)程 |
SELF | 表示 sar 自身 |
ALL | 表示所有進(jìn)程 |
-X {pid|SELF|ALL} | 輸出指定進(jìn)程的子進(jìn)程的統(tǒng)計(jì)信息 |
-I {irq|SUM|ALL|XALL} | 輸出指定中斷的統(tǒng)計(jì)信息。 |
irq | 指定中斷號(hào) |
SUM | 指定輸出每秒接收到的中斷總數(shù) |
ALL | 指定輸出前16個(gè)中斷 |
XALL | 指定輸出全部的中斷信息 |
-P {cpu|ALL} | 輸出指定 CPU 的統(tǒng)計(jì)信息 |
-o filename | 將輸出信息保存到文件 filename |
-f filename | 從文件 filename 讀取數(shù)據(jù)信息。filename 是使用-o 選項(xiàng)時(shí)生成的文件。 |
-s hh:mm:ss | 指定輸出統(tǒng)計(jì)數(shù)據(jù)的起始時(shí)間 |
-e hh:mm:ss | 指定輸出統(tǒng)計(jì)數(shù)據(jù)的截至?xí)r間,默認(rèn)為18:00:00 |
sar 使用舉例
從 /var/log/sa/saDD 中讀取累計(jì)統(tǒng)計(jì)信息
1、輸出CPU使用情況的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar
[root@cnetos5 ~]# sar -u
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.02 0.00 0.14 0.01 0.00 99.84
12:20:01 AM all 0.02 0.00 0.12 0.01 0.00 99.86
12:30:01 AM all 0.01 0.00 0.12 0.01 0.00 99.86
Average: all 0.03 0.00 0.13 0.01 0.00 99.84
輸出項(xiàng)說明:
CPU | all 表示統(tǒng)計(jì)信息為所有 CPU 的平均值。 |
%user | 顯示在用戶級(jí)別(application)運(yùn)行使用 CPU 總時(shí)間的百分比。 |
%nice | 顯示在用戶級(jí)別,用于nice操作,所占用 CPU 總時(shí)間的百分比。 |
%system | 在核心級(jí)別(kernel)運(yùn)行所使用 CPU 總時(shí)間的百分比。 |
%iowait | 顯示用于等待I/O操作占用 CPU 總時(shí)間的百分比。 |
%steal | 管理程序(hypervisor)為另一個(gè)虛擬進(jìn)程提供服務(wù)而等待虛擬 CPU 的百分比。 |
%idle | 顯示 CPU 空閑時(shí)間占用 CPU 總時(shí)間的百分比。 |
- 若 %iowait 的值過高,表示硬盤存在I/O瓶頸
- 若 %idle 的值高但系統(tǒng)響應(yīng)慢時(shí),有可能是 CPU 等待分配內(nèi)存,此時(shí)應(yīng)加大內(nèi)存容量
- 若 %idle 的值持續(xù)低于 10,則系統(tǒng)的 CPU 處理能力相對(duì)較低,表明系統(tǒng)中最需要解決的資源是 CPU。
2、顯示I/O和傳送速率的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -b
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM tps rtps wtps bread/s bwrtn/s
12:10:01 AM 1.58 0.00 1.58 0.00 16.71
12:20:01 AM 1.09 0.00 1.09 0.00 10.85
12:30:01 AM 1.08 0.00 1.08 0.00 10.74
Average: 1.24 0.00 1.24 0.00 12.70
輸出項(xiàng)說明:
tps | 每秒鐘物理設(shè)備的 I/O 傳輸總量 |
rtps | 每秒鐘從物理設(shè)備讀入的數(shù)據(jù)總量 |
wtps | 每秒鐘向物理設(shè)備寫入的數(shù)據(jù)總量 |
bread/s | 每秒鐘從物理設(shè)備讀入的數(shù)據(jù)量,單位為 塊/s |
bwrtn/s | 每秒鐘向物理設(shè)備寫入的數(shù)據(jù)量,單位為 塊/s |
3、輸出內(nèi)存頁面的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -B
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s
12:10:01 AM 0.00 4.17 9.74 0.00
12:20:01 AM 0.00 2.71 2.24 0.00
12:30:01 AM 0.00 2.69 2.25 0.00
Average: 0.00 3.17 4.07 0.00
輸出項(xiàng)說明:
pgpgin/s | 每秒鐘從磁盤讀入的系統(tǒng)頁面的 KB 總數(shù) |
pgpgout/s | 每秒鐘向磁盤寫出的系統(tǒng)頁面的 KB 總數(shù) |
fault/s | 系統(tǒng)每秒產(chǎn)生的頁面失效(major + minor)數(shù)量 |
majflt/s | 系統(tǒng)每秒產(chǎn)生的頁面失效(major)數(shù)量 |
4、輸出每秒創(chuàng)建的進(jìn)程數(shù)的進(jìn)程統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -c
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM proc/s
12:10:01 AM 0.05
12:20:01 AM 0.03
12:30:01 AM 0.03
Average: 0.03
輸出項(xiàng)說明:
proc/s | 每秒鐘創(chuàng)建的進(jìn)程數(shù) |
5、輸出網(wǎng)絡(luò)設(shè)備狀態(tài)的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -n DEV |grep eth0
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
12:10:01 AM eth0 0.59 0.92 41.57 893.98 0.00 0.00 0.00
12:20:01 AM eth0 0.55 0.88 37.50 859.56 0.00 0.00 0.00
12:30:01 AM eth0 0.55 0.86 38.17 871.98 0.00 0.00 0.00
Average: eth0 0.29 0.42 21.05 379.29 0.00 0.00 0.00
輸出項(xiàng)說明:
IFACE | 網(wǎng)絡(luò)設(shè)備名 |
rxpck/s | 每秒接收的包總數(shù) |
txpck/s | 每秒傳輸?shù)陌倲?shù) |
rxbyt/s | 每秒接收的字節(jié)(byte)總數(shù) |
txbyt/s | 每秒傳輸?shù)淖止?jié)(byte)總數(shù) |
rxcmp/s | 每秒接收壓縮包的總數(shù) |
txcmp/s | 每秒傳輸壓縮包的總數(shù) |
rxmcst/s | 每秒接收的多播(multicast)包的總數(shù) |
6、輸出網(wǎng)絡(luò)設(shè)備狀態(tài)的統(tǒng)計(jì)信息(查看網(wǎng)絡(luò)設(shè)備故障)
[root@cnetos5 ~]# sar -n EDEV |egrep 'eth0|IFACE'
12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
12:10:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
輸出項(xiàng)說明:
IFACE | 網(wǎng)絡(luò)設(shè)備名 |
rxerr/s | 每秒接收的壞包總數(shù) |
txerr/s | 傳輸包時(shí)每秒發(fā)生錯(cuò)誤的總數(shù) |
coll/s | 傳輸包時(shí)每秒發(fā)生沖突(collision)的總數(shù) |
rxdrop/s | 接收包時(shí),由于缺乏緩存,每秒丟棄(drop)包的數(shù)量 |
txdrop/s | 傳輸包時(shí),由于缺乏緩存,每秒丟棄(drop)包的數(shù)量 |
txcarr/s | 傳輸包時(shí),每秒發(fā)生的傳輸錯(cuò)誤(carrier-error)的數(shù)量 |
rxfram/s | 接收包時(shí),每秒發(fā)生幀校驗(yàn)錯(cuò)誤(frame alignment error)的數(shù)量 |
rxfifo/s | 接收包時(shí),每秒發(fā)生隊(duì)列(FIFO)一出錯(cuò)誤的數(shù)量 |
txfifo/s | 傳輸包時(shí),每秒發(fā)生隊(duì)列(FIFO)一出錯(cuò)誤的數(shù)量 |
7、輸出進(jìn)程隊(duì)列長度和平均負(fù)載狀態(tài)統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -q
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
12:10:01 AM 0 85 0.02 0.01 0.00
12:20:01 AM 0 85 0.01 0.00 0.00
12:30:01 AM 0 85 0.03 0.01 0.00
Average: 0 85 0.01 0.00 0.00
輸出項(xiàng)說明:
runq-sz | 運(yùn)行隊(duì)列的長度(等待運(yùn)行的進(jìn)程數(shù)) |
plist-sz | 進(jìn)程列表中進(jìn)程(processes)和線程(threads)的數(shù)量 |
ldavg-1 | 最后1分鐘的系統(tǒng)平均負(fù)載(System load average) |
ldavg-5 | 過去5分鐘的系統(tǒng)平均負(fù)載 |
ldavg-15 | 過去15分鐘的系統(tǒng)平均負(fù)載 |
8、輸出內(nèi)存和交換空間的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -r
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad
12:10:01 AM 262068 253408 49.16 43884 156456 1048568 0 0.00 0
12:20:01 AM 261572 253904 49.26 44580 156448 1048568 0 0.00 0
12:30:01 AM 260704 254772 49.42 45124 156472 1048568 0 0.00 0
Average: 259551 255925 49.65 46453 156470 1048568 0 0.00 0
輸出項(xiàng)說明:
kbmemfree | 可用的空閑內(nèi)存數(shù)量,單位為 KB |
kbmemused | 已使用的內(nèi)存數(shù)量(不包含內(nèi)核使用的內(nèi)存),單位為 KB |
%memused | 已使用內(nèi)存的百分?jǐn)?shù) |
kbbuffers | 內(nèi)核緩沖區(qū)(buffer)使用的內(nèi)存數(shù)量,單位為 KB |
kbcached | 內(nèi)核高速緩存(cache)數(shù)據(jù)使用的內(nèi)存數(shù)量,單位為 KB |
kbswpfree | 可用的空閑交換空間數(shù)量,單位為 KB |
kbswpused | 已使用的交換空間數(shù)量,單位為 KB |
%swpused | 已使用交換空間的百分?jǐn)?shù) |
kbswpcad | 交換空間的高速緩存使用的內(nèi)存數(shù)量 |
9、輸出內(nèi)存頁面的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -R
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM frmpg/s bufpg/s campg/s
12:10:01 AM -0.10 0.23 0.01
12:20:01 AM -0.21 0.29 -0.00
12:30:01 AM -0.36 0.23 0.01
Average: -0.21 0.22 0.00
輸出項(xiàng)說明:
frmpg/s | 每秒系統(tǒng)中空閑的內(nèi)存頁面(memory page freed)數(shù)量 |
bufpg/s | 每秒系統(tǒng)中用作緩沖區(qū)(buffer)的附加內(nèi)存頁面(additional memory page)數(shù)量 |
campg/s | 每秒系統(tǒng)中高速緩存的附加內(nèi)存頁面(additional memory pages cached)數(shù)量 |
10、輸出inode、文件和其他內(nèi)核表的信息
[root@cnetos5 ~]# sar -v
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM dentunusd file-sz inode-sz super-sz %super-sz dquot-sz %dquot-sz rtsig-sz %rtsig-sz
12:10:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00
12:20:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00
12:30:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00
Average: 7253 589 5125 0 0.00 0 0.00 0 0.00
輸出項(xiàng)說明:
dentunusd | 目錄高速緩存中未被使用的條目數(shù)量 |
file-sz | 文件句柄(file handle)的使用數(shù)量 |
inode-sz | i節(jié)點(diǎn)句柄(inode handle)的使用數(shù)量 |
super-sz | 由內(nèi)核分配的超級(jí)塊句柄(super block handle)數(shù)量 |
%super-sz | 已分配的超級(jí)塊句柄占總超級(jí)塊句柄的百分比 |
dquot-sz | 已經(jīng)分配的磁盤限額條目數(shù)量 |
%dquot-sz | 分配的磁盤限額條目數(shù)量占總磁盤限額條目的百分比 |
rtsig-sz | 已排隊(duì)的 RT 信號(hào)的數(shù)量 |
%rtsig-sz | 已排隊(duì)的 RT 信號(hào)占總 RT 信號(hào)的百分比 |
11、輸出系統(tǒng)交換活動(dòng)信息
[root@cnetos5 ~]# sar -w
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM cswch/s
12:10:01 AM 44.74
12:20:01 AM 44.41
12:30:01 AM 44.41
Average: 44.50
輸出項(xiàng)說明:
cswch/s | 每秒的系統(tǒng)上下文切換數(shù)量 |
12、 輸出系統(tǒng)交換的統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -W
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM pswpin/s pswpout/s
12:10:01 AM 0.00 0.00
12:20:01 AM 0.00 0.00
12:30:01 AM 0.00 0.00
Average: 0.00 0.00
輸出項(xiàng)說明:
pswpin/s | 每秒系統(tǒng)換入的交換頁面(swap page)數(shù)量 |
pswpout/s | 每秒系統(tǒng)換出的交換頁面(swap page)數(shù)量 |
13、輸出TTY設(shè)備的活動(dòng)信息
[root@cnetos5 ~]# sar -y
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
12:00:01 AM TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s
12:10:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00
12:20:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00
12:30:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00
………………
Average: 0 0.00 0.00 0.00 0.00 0.00 0.00
Average: 1 0.00 0.00 0.00 0.00 0.00 0.00
輸出項(xiàng)說明:
TTY | TTY 串行設(shè)備號(hào) |
rcvin/s | 每秒接收的中斷數(shù)量 |
xmtin/s | 每秒傳送的中斷數(shù)量 |
framerr/s | 每秒發(fā)生的幀錯(cuò)誤數(shù)(frame error)量 |
prtyerr/s | 每秒發(fā)生的奇偶校驗(yàn)錯(cuò)誤(parity error)數(shù)量 |
brk/s | 每秒發(fā)生的暫停(break)數(shù)量 |
ovrun/s | 每秒發(fā)生的溢出錯(cuò)誤(overrun error)數(shù)量 |
14、顯示全面的累計(jì)統(tǒng)計(jì)信息
# sar -A
15、默認(rèn)配置不提供的累計(jì)統(tǒng)計(jì)信息
[root@cnetos5 ~]# sar -d
Requested activities not available in file
[root@cnetos5 ~]# sar -x ALL
Requested activities not available in file
[root@cnetos5 ~]# sar -X ALL
Requested activities not available in file
- 默認(rèn)情況下,為了防止統(tǒng)計(jì)數(shù)據(jù)文件 /var/log/sa/saDD 迅速增大,/usr/lib/sa/sadc 沒有記錄每個(gè)塊設(shè)備的統(tǒng)計(jì)信息。
- 可以在 -d -x -X 參數(shù)后添加取樣參數(shù)獲得即時(shí)統(tǒng)計(jì)信息。
- 帶有 -x -X 選項(xiàng)的 sar 命令從來不能記錄到二進(jìn)制統(tǒng)計(jì)數(shù)據(jù)文件 。
查看即時(shí)統(tǒng)計(jì)信息
1、使用取樣選項(xiàng)查看即時(shí)統(tǒng)計(jì)信息
例如:每30秒取樣一次,連續(xù)取樣5次
# sar -n DEV 30 5
# sar -u 30 5
2、輸出和讀取統(tǒng)計(jì)信息文件
例如:
# sar -u 30 5 -o sar-dump-001
# sar -u -f sar-dump-001
3、輸出每一個(gè)塊設(shè)備的活動(dòng)信息
# sar -dp 5 2
Linux 2.6.18-53.el5 (cnetos5) 01/22/2008
07:12:11 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:12:16 AM sda 0.40 0.00 17.56 44.00 0.00 1.00 1.00 0.04
07:12:16 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:12:16 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:12:21 AM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:12:21 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sda 0.20 0.00 8.78 44.00 0.00 1.00 1.00 0.02
Average: sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
輸出項(xiàng)說明:
DEV | 正在監(jiān)視的塊設(shè)備 |
tps | 每秒鐘物理設(shè)備的 I/O 傳輸總量 |
rd_sec/s | 每秒從設(shè)備讀取的扇區(qū)(sector)數(shù)量 |
wr_sec/s | 每秒向設(shè)備寫入的扇區(qū)(sector)數(shù)量 |
avgrq-sz | 發(fā)給設(shè)備請(qǐng)求的平均扇區(qū)數(shù) |
avgqu-sz | 發(fā)給設(shè)備請(qǐng)求的平均隊(duì)列長度 |
await | 設(shè)備 I/O 請(qǐng)求的平均等待時(shí)間(單位為毫秒) |
svctm | 設(shè)備 I/O 請(qǐng)求的平均服務(wù)時(shí)間(單位為毫秒) |
%util | 在 I/O 請(qǐng)求發(fā)送到設(shè)備期間,占用 CPU 時(shí)間的百分比。用于體現(xiàn)設(shè)備的帶寬利用率。 |
- avgqu-sz 的值較低時(shí),設(shè)備的利用率較高。
- 當(dāng) %util 的值接近 100% 時(shí),表示設(shè)備帶寬已經(jīng)占滿。
要判斷一個(gè)系統(tǒng)瓶頸問題,有時(shí)需要幾個(gè) sar 命令選項(xiàng)結(jié)合起來使用,例如:
- 懷疑CPU存在瓶頸,可用?
sar -u
?和?sar -q
?deng 等來查看 - 懷疑內(nèi)存存在瓶頸,可用?
sar -B
、sar -r
?和?sar -W
?等來查看 - 懷疑I/O存在瓶頸,可用??
?sar -b?
?、??sar -u?
??和???sar -d?
??等來查看iostat iostat 的命令格式 iostat 用于輸出CPU和磁盤I/O相關(guān)的統(tǒng)計(jì)信息。命令格式為:iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
其中:
- interval : 為取樣時(shí)間間隔
- count : 為輸出次數(shù),若指定了取樣時(shí)間間隔且省略此項(xiàng),將不斷產(chǎn)生統(tǒng)計(jì)信息
- 常用選項(xiàng):
- iostat 使用舉例
- 下面給出幾個(gè)例子:
# 顯示一條包括所有的CPU和設(shè)備吞吐率的統(tǒng)計(jì)信息# iostat Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.04 0.37 0.07 0.00 99.42 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.44 16.79 10.58 800430 504340 sdb 0.01 0.07 0.00 3314 8 sdc 0.86 8.56 0.00 407892 24 # 每隔5秒顯示一次設(shè)備吞吐率的統(tǒng)計(jì)信息(單位為 塊/s) iostat -d 5 # 每隔5秒顯示一次設(shè)備吞吐率的統(tǒng)計(jì)信息(單位為 KB/s),共輸出3次 iostat -dk 5 3 # 每隔2秒顯示一次 sda 及上面所有分區(qū)的統(tǒng)計(jì)信息,共輸出5次 iostat -p sda 2 5 # 每隔2秒顯示一次 sda 和 sdb 兩個(gè)設(shè)備的擴(kuò)展統(tǒng)計(jì)信息,共輸出6次 iostat -x sda sdb 2 6 Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.04 0.37 0.07 0.00 99.42 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.17 0.84 0.96 0.47 16.67 10.56 19.01 0.01 7.11 1.25 0.18 sdb 0.00 0.00 0.01 0.00 0.07 0.00 5.16 0.00 0.22 0.19 0.00 ………… >iostat -t 5 -x > iostat.out -t是輸出時(shí)間和日期,5是代表5秒一次,-x是詳細(xì)情況都輸出 主要查看cpu的idle和磁盤的util
iostat 的輸出項(xiàng)說明
rrqm/s: 每秒對(duì)該設(shè)備的讀請(qǐng)求被合并次數(shù),文件系統(tǒng)會(huì)對(duì)讀取同塊(block)的請(qǐng)求進(jìn)行合并
wrqm/s: 每秒對(duì)該設(shè)備的寫請(qǐng)求被合并次數(shù)
r/s: 每秒完成的讀次數(shù)
w/s: 每秒完成的寫次數(shù)
rkB/s: 每秒讀數(shù)據(jù)量(kB為單位)
wkB/s: 每秒寫數(shù)據(jù)量(kB為單位)
avgrq-sz:平均每次IO操作的數(shù)據(jù)量(扇區(qū)數(shù)為單位)
avgqu-sz: 平均等待處理的IO請(qǐng)求隊(duì)列長度
await: 平均每次IO請(qǐng)求等待時(shí)間(包括等待時(shí)間和處理時(shí)間,毫秒為單位)
svctm: 平均每次IO請(qǐng)求的處理時(shí)間(毫秒為單位)
%util: 采用周期內(nèi)用于IO操作的時(shí)間比率,即IO隊(duì)列非空的時(shí)間比率
?
對(duì)于以上示例輸出,我們可以獲取到以下信息:
每秒向磁盤上寫30M左右數(shù)據(jù)(wkB/s值)
每秒有91次IO操作(r/s+w/s),其中以寫操作為主體
平均每次IO請(qǐng)求等待處理的時(shí)間為120.57毫秒,處理耗時(shí)為6.33毫秒
等待處理的IO請(qǐng)求隊(duì)列中,平均有11.79個(gè)請(qǐng)求駐留
?
以上各值之間也存在聯(lián)系,我們可以由一些值計(jì)算出其他數(shù)值,例如:
util = (r/s+w/s) * (svctm/1000)
對(duì)于上面的例子有:util = (1+90)*(6.33/1000) = 0.57603
rrqm/s:每秒這個(gè)設(shè)備相關(guān)的讀取請(qǐng)求有多少被Merge了(當(dāng)系統(tǒng)調(diào)用需要讀取數(shù)據(jù)的時(shí)候,VFS將請(qǐng)求發(fā)到各個(gè)FS,如果FS發(fā)現(xiàn)不同的讀取請(qǐng)求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會(huì)將這個(gè)請(qǐng)求合并Merge);
wrqm/s:每秒這個(gè)設(shè)備相關(guān)的寫入請(qǐng)求有多少被Merge了。
r/s: 該設(shè)備的每秒完成的讀請(qǐng)求數(shù)(merge合并之后的)
w/s: ?該設(shè)備的每秒完成的寫請(qǐng)求數(shù)(merge合并之后的)
rKB/s:每秒發(fā)送給該設(shè)備的總讀請(qǐng)求數(shù) #rMB/s
wKB/s:每秒發(fā)送給該設(shè)備的總寫請(qǐng)求數(shù)?#wMB/s
avgrq-sz 平均請(qǐng)求扇區(qū)的大小
avgqu-sz 是平均請(qǐng)求隊(duì)列的長度。毫無疑問,隊(duì)列長度越短越好。 ?
await:每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位是微秒毫秒)。這里可以理解為IO的響應(yīng)時(shí)間,一般地系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms,如果大于10ms就比較大了。
這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長,說明系統(tǒng)出了問題。
r_await:讀IO的響應(yīng)時(shí)間
w_await:寫IO的響應(yīng)時(shí)間
svctm: 表示平均每次設(shè)備I/O操作的服務(wù)時(shí)間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠(yuǎn)高于svctm的值,
則表示I/O隊(duì)列等待太長,系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟?/p>
%util: 在統(tǒng)計(jì)時(shí)間內(nèi)所有處理IO時(shí)間,除以總共統(tǒng)計(jì)時(shí)間。例如,如果統(tǒng)計(jì)間隔1秒,該設(shè)備有0.8秒在處理IO,而0.2秒閑置,那么該設(shè)備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設(shè)備的繁忙程度。
一般地,如果該參數(shù)是100%表示設(shè)備已經(jīng)接近滿負(fù)荷運(yùn)行了(當(dāng)然如果是多磁盤,即使%util是100%,因?yàn)榇疟P的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。
rsec/s:每秒讀取的扇區(qū)數(shù);
wsec/:每秒寫入的扇區(qū)數(shù)。
- avg-cpu 部分輸出項(xiàng)說明:
- Device 部分基本輸出項(xiàng)說明:
- Device 部分?jǐn)U展輸出項(xiàng)說明:
- mpstat
- mpstat 的命令格式
- mpstat 輸出每一個(gè) CPU 的運(yùn)行狀況,為多處理器系統(tǒng)中的 CPU 利用率提供統(tǒng)計(jì)信息。命令格式為:
mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]
其中:
- interval : 為取樣時(shí)間間隔。指定0則輸出自系統(tǒng)啟動(dòng)后的一個(gè)統(tǒng)計(jì)信息。
- count : 為輸出次數(shù)。若指定了取樣時(shí)間間隔且省略此項(xiàng),將不斷產(chǎn)生統(tǒng)計(jì)信息。
- 常用選項(xiàng):
- mpstat 使用舉例
- 下面給出幾個(gè)例子:
# 輸出所有 CPU 使用情況的統(tǒng)計(jì)信息。# mpstat Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 10:39:06 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:39:06 AM all 0.10 0.04 0.31 0.06 0.04 0.01 0.00 99.45 1012.99 # 輸出第一個(gè) CPU 使用情況的統(tǒng)計(jì)信息。 # mpstat -P 0 Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 10:41:03 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:41:03 AM 0 0.09 0.02 0.40 0.09 0.08 0.01 0.00 99.32 1012.79 # 每隔2秒輸出所有CPU的統(tǒng)計(jì)信息,共輸出5次。 # mpstat 2 5 # 每隔2秒輸出一次所有CPU的統(tǒng)計(jì)信息,共輸出5次。 # mpstat -P ALL 2 5 # 每隔2秒輸出一次第二個(gè)CPU的統(tǒng)計(jì)信息,共輸出5次。 # mpstat -P 1 2 5
mpstat 輸出項(xiàng)說明
?
11.33 kSar 命令
11.33.1 命令詳解
sar 命令的輸出能夠用于識(shí)別服務(wù)器瓶頸。但是,分析 sar 命令提供的信息可能比較困難,所以要使用 kSar 工具。kSar 工具可以將 sar 命令的輸出繪制成基于時(shí)間周期的、易于理解的圖表。
官網(wǎng)介紹:
https://github.com/vlsi/ksar
11.33.2 kSar使用
本文摘自 :https://blog.51cto.com/l