vmstat
vmstat命令是最常見的Linux/Unix監(jiān)控工具,可以展現(xiàn)給定時(shí)間間隔的服務(wù)器的狀態(tài)值,包括服務(wù)器的CPU使用率,內(nèi)存使用,虛擬內(nèi)存交換情況,IO讀寫情況。相比top,我可以看到整個(gè)機(jī)器的CPU,內(nèi)存,IO的使用情況,而不是單單看到各個(gè)進(jìn)程的CPU使用率和內(nèi)存使用率(使用場(chǎng)景不一樣)。
一般vmstat工具的使用是通過兩個(gè)數(shù)字參數(shù)來完成的,第一個(gè)參數(shù)是采樣的時(shí)間間隔數(shù),單位是秒,第二個(gè)參數(shù)是采樣的次數(shù),如:
[root@nubia ~]# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 27852344 263200 22400860 0 0 0 61 0 0 1 0 99 0 0
2表示每?jī)擅氩杉淮畏?wù)器狀態(tài),1表示只采集一次。
實(shí)際上,在應(yīng)用過程中,我們會(huì)在一段時(shí)間內(nèi)一直監(jiān)控,不想監(jiān)控直接結(jié)束vmstat就行了,例如:
[root@nubia ~]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 27861840 263024 22397432 0 0 0 61 0 0 1 0 99 0 0
0 0 0 27862404 263024 22397456 0 0 0 7 1552 1916 0 0 100 0 0
0 0 0 27861416 263024 22397472 0 0 0 44 1371 1544 0 0 100 0 0
令介紹完畢,現(xiàn)在開始實(shí)戰(zhàn)講解每個(gè)參數(shù)的意思。
r : 表示運(yùn)行隊(duì)列(就是說多少個(gè)進(jìn)程真的分配到CPU),我測(cè)試的服務(wù)器目前CPU比較空閑,沒什么程序在跑,當(dāng)這個(gè)值超過了CPU數(shù)目,就會(huì)出現(xiàn)CPU瓶頸了。這個(gè)也和top的負(fù)載有關(guān)系,一般負(fù)載超過了3就比較高,超過了5就高,超過了10就不正常了,服務(wù)器的狀態(tài)很危險(xiǎn)。top的負(fù)載類似每秒的運(yùn)行隊(duì)列。如果運(yùn)行隊(duì)列過大,表示你的CPU很繁忙,一般會(huì)造成CPU使用率很高。
b: 表示阻塞的進(jìn)程,這個(gè)不多說,進(jìn)程阻塞,大家懂的。
swpd: 虛擬內(nèi)存已使用的大小,如果大于0,表示你的機(jī)器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級(jí)內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器。
free: 空閑的物理內(nèi)存的大小。
buff: Linux/Unix系統(tǒng)是用來存儲(chǔ),目錄里面有什么內(nèi)容,權(quán)限等的緩存。
cache: 直接用來記憶我們打開的文件,給文件做緩沖,我本機(jī)大概占用300多M(這里是Linux/Unix的聰明之處,把空閑的物理內(nèi)存的一部分拿來做文件和目錄的緩存,是為了提高 程序執(zhí)行的性能,當(dāng)程序使用內(nèi)存時(shí),buffer/cached會(huì)很快地被使用。)
si: 每秒從磁盤讀入虛擬內(nèi)存的大小,如果這個(gè)值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進(jìn)程解決掉。我的機(jī)器內(nèi)存充裕,一切正常。
so: 每秒虛擬內(nèi)存寫入磁盤的大小,如果這個(gè)值大于0,同上。
bi: 塊設(shè)備每秒接收的塊數(shù)量,這里的塊設(shè)備是指系統(tǒng)上所有的磁盤和其他塊設(shè)備,默認(rèn)塊大小是1024byte,我本機(jī)上沒什么IO操作,所以一直是0,但是我曾在處理拷貝大量數(shù)據(jù)(2-3T)的機(jī)器上看過可以達(dá)到140000/s,磁盤寫入速度差不多140M每秒
bo: 塊設(shè)備每秒發(fā)送的塊數(shù)量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調(diào)整。
in: 每秒CPU的中斷次數(shù),包括時(shí)間中斷
cs: 每秒上下文切換次數(shù),例如我們調(diào)用系統(tǒng)函數(shù),就要進(jìn)行上下文切換,線程的切換,也要進(jìn)程上下文切換,這個(gè)值要越小越好,太大了,要考慮調(diào)低線程或者進(jìn)程的數(shù)目,例如在apache和nginx這種web服務(wù)器中,我們一般做性能測(cè)試時(shí)會(huì)進(jìn)行幾千并發(fā)甚至幾萬(wàn)并發(fā)的測(cè)試,選擇web服務(wù)器的進(jìn)程可以由進(jìn)程或者線程的峰值一直下調(diào),壓測(cè),直到cs到一個(gè)比較小的值,這個(gè)進(jìn)程和線程數(shù)就是比較合適的值了。系統(tǒng)調(diào)用也是,每次調(diào)用系統(tǒng)函數(shù),我們的代碼就會(huì)進(jìn)入內(nèi)核空間,導(dǎo)致上下文切換,這個(gè)是很耗資源,也要盡量避免頻繁調(diào)用系統(tǒng)函數(shù)。上下文切換次數(shù)過多表示你的CPU大部分浪費(fèi)在上下文切換,導(dǎo)致CPU干正經(jīng)事的時(shí)間少了,CPU沒有充分利用,是不可取的。
us: 用戶CPU時(shí)間,我曾經(jīng)在一個(gè)做加密解密很頻繁的服務(wù)器上,可以看到us接近100,r運(yùn)行隊(duì)列達(dá)到80(機(jī)器在做壓力測(cè)試,性能表現(xiàn)不佳)。
sy: 系統(tǒng)CPU時(shí)間,如果太高,表示系統(tǒng)調(diào)用時(shí)間長(zhǎng),例如是IO操作頻繁。
id: 空閑 CPU時(shí)間,一般來說,id + us + sy = 100,一般我認(rèn)為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統(tǒng)CPU使用率。
wt: 等待IO CPU時(shí)間。
mpstat
mpstat是 Multiprocessor Statistics的縮寫,是實(shí)時(shí)系統(tǒng)監(jiān)控工具。其報(bào)告與CPU的一些統(tǒng)計(jì)信息,這些信息存放在/proc/stat文件中。在多CPU系統(tǒng)里,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。檢查CPU使用率是否均衡。
mpstat的語(yǔ)法如下:
mpstat [-P {cpu|ALL}] [internal [count]]
# mpstat -P ALL 1 5
pidstat
pidstat主要用于監(jiān)控全部或指定進(jìn)程占用系統(tǒng)資源的情況,如CPU,內(nèi)存、設(shè)備IO、任務(wù)切換、線程等。pidstat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行pidstat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶可以通過指定統(tǒng)計(jì)的次數(shù)和時(shí)間來獲得所需的統(tǒng)計(jì)信息。
命令形式為”pidstat [option] interval [count]”
cpu使用情況統(tǒng)計(jì)(-u)
使用-u選項(xiàng),pidstat將顯示各活動(dòng)進(jìn)程的cpu使用統(tǒng)計(jì),執(zhí)行”pidstat -u”與單獨(dú)執(zhí)行”pidstat”的效果一樣。
內(nèi)存使用情況統(tǒng)計(jì)(-r)
使用-r選項(xiàng),pidstat將顯示各活動(dòng)進(jìn)程的內(nèi)存使用統(tǒng)計(jì):
[root@nubia ~]# pidstat -r -p 53689 2
Linux 2.6.32-431.el6.x86_64 (test) 2018年06月14日 _x86_64_ (32 CPU)
15時(shí)00分33秒 PID minflt/s majflt/s VSZ RSS %MEM Command
15時(shí)00分35秒 53689 0.00 0.00 21372504 2930436 4.45 java
15時(shí)00分37秒 53689 0.00 0.00 21372504 2930436 4.45 java
15時(shí)00分39秒 53689 0.00 0.00 21372504 2930436 4.45 java
15時(shí)00分41秒 53689 0.00 0.00 21372504 2930436 4.45 java
15時(shí)00分43秒 53689 0.00 0.00 21372504 2930436 4.45 java
以上各列輸出的含義如下:
minflt/s: 每秒次缺頁(yè)錯(cuò)誤次數(shù)(minor page faults),次缺頁(yè)錯(cuò)誤次數(shù)意即虛擬內(nèi)存地址映射成物理內(nèi)存地址產(chǎn)生的page fault次數(shù)
majflt/s: 每秒主缺頁(yè)錯(cuò)誤次數(shù)(major page faults),當(dāng)虛擬內(nèi)存地址映射成物理內(nèi)存地址時(shí),相應(yīng)的page在swap中,這樣的page fault為major page fault,一般在內(nèi)存使用緊張時(shí)產(chǎn)生
VSZ: 該進(jìn)程使用的虛擬內(nèi)存(以kB為單位)
RSS: 該進(jìn)程使用的物理內(nèi)存(以kB為單位)
%MEM: 該進(jìn)程使用內(nèi)存的百分比
Command: 拉起進(jìn)程對(duì)應(yīng)的命令
- IO情況統(tǒng)計(jì)(-d)
[root@nubia ~]# pidstat -d -p 53689 2
Linux 2.6.32-431.el6.x86_64 (test) 2018年06月14日 _x86_64_ (32 CPU)
15時(shí)04分29秒 PID kB_rd/s kB_wr/s kB_ccwr/s Command
15時(shí)04分31秒 53689 0.00 0.00 0.00 java
15時(shí)04分33秒 53689 0.00 0.00 0.00 java
15時(shí)04分35秒 53689 0.00 0.00 0.00 java
15時(shí)04分37秒 53689 0.00 0.00 0.00 java
輸出信息的含義:
kB_rd/s: 每秒進(jìn)程從磁盤讀取的數(shù)據(jù)量(以kB為單位)
kB_wr/s: 每秒進(jìn)程向磁盤寫的數(shù)據(jù)量(以kB為單位)
Command: 拉起進(jìn)程對(duì)應(yīng)的命令
針對(duì)特定進(jìn)程統(tǒng)計(jì)(-p)
常用參數(shù)如下:
-u:默認(rèn)的參數(shù),顯示各個(gè)進(jìn)程的cpu使用統(tǒng)計(jì)
-r:顯示各個(gè)進(jìn)程的內(nèi)存使用統(tǒng)計(jì)
-d:顯示各個(gè)進(jìn)程的IO使用情況
-p:指定進(jìn)程號(hào)
-w:顯示每個(gè)進(jìn)程的上下文切換情況
-t:顯示選擇任務(wù)的線程的統(tǒng)計(jì)信息外的額外信息
-T { TASK | CHILD | ALL }
這個(gè)選項(xiàng)指定了pidstat監(jiān)控的。TASK表示報(bào)告獨(dú)立的task,CHILD關(guān)鍵字表示報(bào)告進(jìn)程下所有線程統(tǒng)計(jì)信息。ALL表示報(bào)告獨(dú)立的task和task下面的所有線程。
注意:task和子線程的全局的統(tǒng)計(jì)信息和pidstat選項(xiàng)無關(guān)。這些統(tǒng)計(jì)信息不會(huì)對(duì)應(yīng)到當(dāng)前的統(tǒng)計(jì)間隔,這些統(tǒng)計(jì)信息只有在子線程kill或者完成的時(shí)候才會(huì)被收集。
-V:版本號(hào)
-h:在一行上顯示了所有活動(dòng),這樣其他程序可以容易解析。
-I:在SMP環(huán)境,表示任務(wù)的CPU使用率/內(nèi)核數(shù)量
-l:顯示命令名和所有參數(shù)
iostat
Linux系統(tǒng)中通過iostat我們能查看到系統(tǒng)IO狀態(tài)信息,從而確定IO性能是否存在瓶頸。
常用參數(shù):
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看設(shè)備使 用率(%util)、響應(yīng)時(shí)間(await)
iostat -c 1 10 #查看cpu狀態(tài)
[root@nubia ~]# iostat -xz 1
Linux 2.6.32-431.el6.x86_64 (localhost) 2018年06月14日 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.54 0.00 0.08 0.01 0.00 99.38
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 8.83 0.00 1.08 1.08 0.00
sda 0.02 384.88 0.12 103.97 13.22 3910.76 37.70 0.39 3.79 0.05 0.52
dm-0 0.00 0.00 0.14 488.74 13.18 3909.89 8.02 0.01 2.30 0.01 0.52
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 0.78 0.76 0.00
dm-2 0.00 0.00 0.00 0.11 0.03 0.87 8.00 0.00 1.05 0.74 0.01
列輸出含義:
rrqm/s : 每秒合并讀操作的次數(shù)
wrqm/s: 每秒合并寫操作的次數(shù)
r/s :每秒讀操作的次數(shù)
w/s : 每秒寫操作的次數(shù)
rMB/s :每秒讀取的MB字節(jié)數(shù)
wMB/s: 每秒寫入的MB字節(jié)數(shù)
avgrq-sz:每個(gè)IO的平均扇區(qū)數(shù),即所有請(qǐng)求的平均大小,以扇區(qū)(512字節(jié))為單位
avgqu-sz:平均為完成的IO請(qǐng)求數(shù)量,即平均意義山的請(qǐng)求隊(duì)列長(zhǎng)度
await:平均每個(gè)IO所需要的時(shí)間,包括在隊(duì)列等待的時(shí)間,也包括磁盤控制器處理本次請(qǐng)求的有效時(shí)間。
r_wait:每個(gè)讀操作平均所需要的時(shí)間,不僅包括硬盤設(shè)備讀操作的時(shí)間,也包括在內(nèi)核隊(duì)列中的時(shí)間。
w_wait: 每個(gè)寫操平均所需要的時(shí)間,不僅包括硬盤設(shè)備寫操作的時(shí)間,也包括在隊(duì)列中等待的時(shí)間。
svctm: 表面看是每個(gè)IO請(qǐng)求的服務(wù)時(shí)間,不包括等待時(shí)間,但是實(shí)際上,這個(gè)指標(biāo)已經(jīng)廢棄。實(shí)際上,iostat工具沒有任何一輸出項(xiàng)表示的是硬盤設(shè)備平均每次IO的時(shí)間。
%util: 工作時(shí)間或者繁忙時(shí)間占總時(shí)間的百分比
- avgqu-sz 和繁忙程度
首先我們用超市購(gòu)物來比對(duì)iostat的輸出。我們?cè)诔薪Y(jié)賬的時(shí)候,一般會(huì)有很多隊(duì)可以排,隊(duì)列的長(zhǎng)度,在一定程度上反應(yīng)了該收銀柜臺(tái)的繁忙程度。那么這個(gè)變量是avgqu-sz這個(gè)輸出反應(yīng)的,該值越大,表示排隊(duì)等待處理的io越多。
我們搞4K的隨機(jī)IO,但是iodepth=1 ,查看下fio的指令和iostat的輸出:
fio --name=randwrite --rw=randwrite --bs=4k --size=20G --runtime=1200 --ioengine=libaio --iodepth=1 --numjobs=1 --filename=/dev/sdc --direct=1 --group_reporting
同樣是4K的隨機(jī)IO,我們?cè)O(shè)置iodepth=16, 查看fio的指令和iostat的輸出:
fio --name=randwrite --rw=randwrite --bs=4k --size=20G --runtime=1200 --ioengine=libaio --iodepth=16 --numjobs=1 --filename=/dev/sdc --direct=1 --group_reporting
注意,內(nèi)核中有I/O Scheduler隊(duì)列。我們看到因?yàn)閍vgqu-sz大小不一樣,所以一個(gè)IO時(shí)間(await)就不一樣。就好像你在超時(shí)排隊(duì),有一隊(duì)沒有人,而另一隊(duì)隊(duì)伍長(zhǎng)度達(dá)到16 ,那么很明顯,隊(duì)伍長(zhǎng)隊(duì)為16的更繁忙一些。
參考自:https://blog.csdn.net/shaochenshuo/article/details/76212566
free
[root@nubia ~]# free -mg
total used free shared buffers cached
Mem: 62 35 27 0 0 20
-/+ buffers/cache: 14 48
Swap: 31 0 31
Mem:表示物理內(nèi)存統(tǒng)計(jì)
-/+ buffers/cached:表示物理內(nèi)存的緩存統(tǒng)計(jì)
Swap:表示硬盤上交換分區(qū)的使用情況
系統(tǒng)的總物理內(nèi)存:62G,但系統(tǒng)當(dāng)前真正可用的內(nèi)存并不是第一行free 標(biāo)記的 27G,它僅代表未被分配的內(nèi)存。
我們使用total1、used1、free1、used2、free2 等名稱來代表上面統(tǒng)計(jì)數(shù)據(jù)的各值,1、2 分別代表第一行和第二行的數(shù)據(jù)。
total1: 表示物理內(nèi)存總量。
used1: 表示總計(jì)分配給緩存(包含buffers 與cache )使用的數(shù)量,但其中可能部分緩存并未實(shí)際使用。
free1: 未被分配的內(nèi)存。
shared1: 共享內(nèi)存,一般系統(tǒng)不會(huì)用到,這里也不討論。
buffers1: 系統(tǒng)分配但未被使用的buffers 數(shù)量。
cached1: 系統(tǒng)分配但未被使用的cache 數(shù)量。buffer 與cache 的區(qū)別見后面。
used2: 實(shí)際使用的buffers 與cache 總量,也是實(shí)際使用的內(nèi)存總量。
free2: 未被使用的buffers 與cache 和未被分配的內(nèi)存之和,這就是系統(tǒng)當(dāng)前實(shí)際可用內(nèi)存。
可以整理出如下等式:
total1 = used1 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1
buffer 與cache 的區(qū)別
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
cache 和 buffer的區(qū)別:
Cache: 高速緩存,是位于CPU與主內(nèi)存間的一種容量較小但速度很高的存儲(chǔ)器。由于CPU的速度遠(yuǎn)高于主內(nèi)存,CPU直接從內(nèi)存中存取數(shù)據(jù)要等待一定時(shí)間周 期,Cache中保存著CPU剛用過或循環(huán)使用的一部分?jǐn)?shù)據(jù),當(dāng)CPU再次使用該部分?jǐn)?shù)據(jù)時(shí)可從Cache中直接調(diào)用,這樣就減少了CPU的等待時(shí)間,提 高了系統(tǒng)的效率。Cache又分為一級(jí)Cache(L1 Cache)和二級(jí)Cache(L2 Cache),L1 Cache集成在CPU內(nèi)部,L2 Cache早期一般是焊在主板上,現(xiàn)在也都集成在CPU內(nèi)部,常見的容量有256KB或512KB L2 Cache。
Buffer:緩沖區(qū),一個(gè)用于存儲(chǔ)速度不同步的設(shè)備或優(yōu)先級(jí)不同的設(shè)備之間傳輸數(shù)據(jù)的區(qū)域。通過緩沖區(qū),可以使進(jìn)程之間的相互等待變少,從而使從速度慢的設(shè)備讀入數(shù)據(jù)時(shí),速度快的設(shè)備的操作進(jìn)程不發(fā)生間斷。
Free中的buffer和cache:(它們都是占用內(nèi)存):
buffer: 作為buffer cache的內(nèi)存,是塊設(shè)備的讀寫緩沖區(qū)
cache: 作為page cache的內(nèi)存, 文件系統(tǒng)的cache
如果 cache 的值很大,說明cache住的文件數(shù)很多。如果頻繁訪問到的文件都能被cache住,那么磁盤的讀IO bi會(huì)非常小。
Buffer和Cache的區(qū)別
緩存(cached)是把讀取過的數(shù)據(jù)保存起來,重新讀取時(shí)若命中(找到需要的數(shù)據(jù))就不要去讀硬盤了,若沒有命中就讀硬盤。其中的數(shù)據(jù)會(huì)根據(jù)讀取頻率進(jìn)行組織,把最頻繁讀取的內(nèi)容放在最容易找到的位置,把不再讀的內(nèi)容不斷往后排,直至從中刪除。
緩沖(buffers)是根據(jù)磁盤的讀寫設(shè)計(jì)的,把分散的寫操作集中進(jìn)行,減少磁盤碎片和硬盤的反復(fù)尋道,從而提高系統(tǒng)性能。linux有一個(gè)守護(hù)進(jìn)程定 期清空緩沖內(nèi)容(即寫如磁盤),也可以通過sync命令手動(dòng)清空緩沖。舉個(gè)例子吧:我這里有一個(gè)ext2的U盤,我往里面cp一個(gè)3M的MP3,但U盤的 燈沒有跳動(dòng),過了一會(huì)兒(或者手動(dòng)輸入sync)U盤的燈就跳動(dòng)起來了。卸載設(shè)備時(shí)會(huì)清空緩沖,所以有些時(shí)候卸載一個(gè)設(shè)備時(shí)要等上幾秒鐘。
兩者都是RAM中的數(shù)據(jù)。簡(jiǎn)單來說,buffer是即將要被寫入磁盤的,而cache是被從磁盤中讀出來的。
buffer是由各種進(jìn)程分配的,被用在如輸入隊(duì)列等方面,一個(gè)簡(jiǎn)單的例子如某個(gè)進(jìn)程要求有多個(gè)字段讀入,在所有字段被讀入完整之前,進(jìn)程把先前讀入的字段放在buffer中保存。
cache經(jīng)常被用在磁盤的I/O請(qǐng)求上,如果有多個(gè)進(jìn)程都要訪問某個(gè)文件,于是該文件便被做成cache以方便下次被訪問,這樣可提供系統(tǒng)性能。
sar
檢查網(wǎng)絡(luò)吞吐量
網(wǎng)絡(luò)統(tǒng)計(jì)(-n)
使用-n選項(xiàng)可以對(duì)網(wǎng)絡(luò)使用情況進(jìn)行顯示,-n后接關(guān)鍵詞”DEV”可顯示eth0、eth1等網(wǎng)卡的信息:
[root@nubia ~]# sar -n DEV 1
Linux 2.6.32-431.el6.x86_64 (localhost) 2018年06月14日 _x86_64_ (32 CPU)
15時(shí)59分10秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
15時(shí)59分11秒 lo 211.00 211.00 113.83 113.83 0.00 0.00 0.00
15時(shí)59分11秒 em1 47.00 3.00 3.80 0.42 0.00 0.00 4.00
15時(shí)59分11秒 em2 46.00 27.00 12.59 4.01 0.00 0.00 1.00
15時(shí)59分11秒 em3 0.00 0.00 0.00 0.00 0.00 0.00 0.00
15時(shí)59分11秒 em4 0.00 0.00 0.00 0.00 0.00 0.00 0.00
[root@nubia ~]# sar -n TCP,ETCP 1
Linux 2.6.32-431.el6.x86_64 (localhost) 2018年06月14日 _x86_64_ (32 CPU)
16時(shí)00分29秒 active/s passive/s iseg/s oseg/s
16時(shí)00分30秒 15.31 15.31 694.90 677.55
16時(shí)00分29秒 atmptf/s estres/s retrans/s isegerr/s orsts/s
16時(shí)00分30秒 0.00 0.00 35.71 0.00 0.00
16時(shí)00分30秒 active/s passive/s iseg/s oseg/s
16時(shí)00分31秒 11.00 11.00 371.00 363.00
16時(shí)00分30秒 atmptf/s estres/s retrans/s isegerr/s orsts/s
16時(shí)00分31秒 0.00 0.00 35.00 0.00 0.00
sar -n SOCK 1 1 #統(tǒng)計(jì)socket連接信息
sar -n TCP 1 3 #TCP連接的統(tǒng)計(jì)
sar -n 使用總結(jié)
-n DEV : 網(wǎng)絡(luò)接口統(tǒng)計(jì)信息。
-n EDEV : 網(wǎng)絡(luò)接口錯(cuò)誤。
-n IP : IP數(shù)據(jù)報(bào)統(tǒng)計(jì)信息。
-n EIP : IP錯(cuò)誤統(tǒng)計(jì)信息。
-n TCP : TCP統(tǒng)計(jì)信息。
-n ETCP : TCP錯(cuò)誤統(tǒng)計(jì)信息。
-n SOCK : 套接字使用。
要判斷系統(tǒng)瓶頸問題,有時(shí)需幾個(gè) sar 命令選項(xiàng)結(jié)合起來
懷疑CPU存在瓶頸,可用 sar -u和 sar -q 等來查看
懷疑內(nèi)存存在瓶頸,可用 sar -B、sar -r和 sar -W 等來查看
懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d等來查看