易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 3949|回复: 1
收起左侧

sar使用方法

[复制链接]
发表于 2017-12-8 16:32:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
一、sar命令简介
/ b9 y/ ~7 s4 X8 F0 U* rsar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。6 j  N3 q" L+ ?6 m7 E
& X4 Y# r: j5 |  j& f
二、安装(Centos)( Q: n5 n. L: q& v* k
#yum -y install sysstat     #或者 yum install sysstat (自己按y)5 q$ u7 a6 j6 f- ]7 H) X: p$ `# E( u
#whereis sar
5 i+ j1 X; {7 ?#whereis iostat
4 F8 o5 h( c& y安装完成。& s8 j% z6 e1 N

1 ^5 F' U+ A$ z: h) y0 p1 {" b三、常见使用方法
$ V- W" Y( T( Y7 p6 Z  ]3 W1 it为采样间隔,n为采样次数,默认值是1;
: Q7 q& ^/ c  J/ \. J; p-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。8 e6 X& v7 W( k0 o* h
options 为命令行选项,sar命令常用选项如下:
: I! V7 `; I: e: C-A:所有报告的总和% c2 q# m4 t- U8 W
-u:输出CPU使用情况的统计信息$ G. H, A) Y; `4 l# j! V, b3 w
-v:输出inode、文件和其他内核表的统计信息
8 f) e8 d5 z4 U8 {" U+ K* Q-d:输出每一个块设备的活动信息
& U. a( {! w2 b( W$ X& Y! F: E-r:输出内存和交换空间的统计信息% C4 S, o' B+ I" C+ _& o$ ]
-b:显示I/O和传送速率的统计信息
+ A5 G3 ^5 c# x' O-a:文件读写情况
: }5 \/ R/ i+ h, z( Z-c:输出进程统计信息,每秒创建的进程数
  n3 Z' ~" |9 _. K2 h; d-R:输出内存页面的统计信息
( j$ I5 }8 i. ]! v-y:终端设备活动情况
4 [! i7 y3 |1 ~-w:输出系统交换活动信息1 L% ~9 S2 a0 E: }
1、每隔一秒往屏幕输出一次cpu使用信息,共输出5次:
* ?+ y! a- x! V6 T7 o9 G4 m#sar 1 5      
# t  [8 }& ?& U/ o# a#或者 sar -u 1 5
# `: {: @7 p9 q: @[root@VM_20_68_centos ~]# sar -u 1 5
/ C0 |" G. U& a  LLinux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_        (2 CPU)
8 Z7 j5 P" @; t- A& o/ Y1 Q5 v22时38分00秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
9 |8 J& s; v4 V! x22时38分01秒     all      0.00      0.00      0.50      0.00      0.00     99.50" I2 Z- v5 l( E- O2 `
22时38分02秒     all      2.00      0.00      4.50      0.00      0.00     93.50, r$ z7 x- \3 ?8 E: J# k
22时38分03秒     all      0.00      0.00      0.00      0.00      0.00    100.00, h1 |" `% X# k
22时38分04秒     all      0.51      0.00      1.01     15.15      0.00     83.33
3 f& B2 R! h! \5 S4 i- ~; V+ Q22时38分05秒     all      1.51      0.00      1.01      0.00      0.00     97.49
& H5 F) a; r0 G) [: l2 o+ B  n. C平均时间:     all      0.80      0.00      1.41      3.02      0.00     94.77  A8 T3 Z" r. K

+ N" Y0 Q- z: J: N3 ]2、每2秒采样1次,共10次,把CPU使用数据保存到/opt/cpu.log文件中。7 X$ B* ^' |& [; j0 @, f9 ]( t
#sar 2 10 > /opt/cpu.log
& x& J) d& b( {) `( g( Q# k[root@VM_20_68_centos ~]# cat /opt/cpu.log9 G3 f8 g9 Q0 y# T) @- F
0 N  c# Q5 E8 Q# ]9 y! S8 c  G
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_  (2 CPU)( z  W& c: O0 t5 U$ d7 N
22时38分23秒     CPU     %user     %nice   %system   %iowait    %steal     %idle1 D# [: O& g6 P# g; B
22时38分25秒     all      0.25      0.00      0.50      0.50      0.00     98.759 T9 W3 y' c+ d$ D. i
22时38分27秒     all      0.25      0.00      0.25      0.00      0.00     99.50* \1 L# G9 H6 o& n3 @$ p$ j
22时38分29秒     all      0.25      0.00      0.25      0.00      0.00     99.50
5 j/ d& V, D7 M$ n22时38分31秒     all      0.00      0.00      0.50      0.50      0.00     98.99
3 `$ ?/ J% U" I6 g. J22时38分33秒     all      0.25      0.00      0.25      0.00      0.00     99.50
5 T; D$ W* O6 i22时38分35秒     all      0.25      0.00      0.50      0.00      0.00     99.25
+ W" w7 g8 b% \8 r22时38分37秒     all      0.25      0.00      0.25      0.50      0.00     98.99
/ h: g0 _1 o6 R22时38分39秒     all      0.00      0.00      0.25      0.00      0.00     99.75
: ~9 F4 x% @3 Y6 i22时38分41秒     all      0.50      0.00      1.00      0.00      0.00     98.50# P/ [- b" w8 b( H3 c
22时38分43秒     all      0.00      0.00      0.25      0.50      0.00     99.24* j7 A3 b7 w6 ]  o! h% b9 P9 M
平均时间:     all      0.20      0.00      0.40      0.20      0.00     99.20
# k) ?( h; n( D* Y' Z+ h. [3、当前所有核心的数据显示。
3 w$ X. G2 D5 Z: u6 k6 D#sar -P ALL 1 17 u( D) b5 X) i: T! C
[root@VM_20_68_centos ~]# sar -P ALL 1 15 g* U. E& `/ [
* O' |. z8 y/ f/ W: g
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_  (2 CPU)
/ g( N3 B' i, j9 X22时38分23秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
+ u; _. R9 m7 Y9 o+ k, n- _. y, [22时38分25秒     all      0.25      0.00      0.50      0.50      0.00     98.757 B1 W4 {& t  U! X
22时38分27秒     all      0.25      0.00      0.25      0.00      0.00     99.508 n" p0 L- \* K6 B
22时38分29秒     all      0.25      0.00      0.25      0.00      0.00     99.50: a- z; E7 L0 M  j7 i$ _0 `
22时38分31秒     all      0.00      0.00      0.50      0.50      0.00     98.99
+ x3 q0 X, I/ ^- O- @, V22时38分33秒     all      0.25      0.00      0.25      0.00      0.00     99.504 s& a3 n9 v' d2 O- R
22时38分35秒     all      0.25      0.00      0.50      0.00      0.00     99.256 ^2 j! _: |6 \" n$ {
22时38分37秒     all      0.25      0.00      0.25      0.50      0.00     98.99  t1 k  e* J$ Z. l' `) U
22时38分39秒     all      0.00      0.00      0.25      0.00      0.00     99.750 y& @3 d- w, ~- X; {0 K
22时38分41秒     all      0.50      0.00      1.00      0.00      0.00     98.50
; r# {  o2 _4 [' `0 o, s" ^22时38分43秒     all      0.00      0.00      0.25      0.50      0.00     99.24
+ ~" d- t( w! D- r平均时间:     all      0.20      0.00      0.40      0.20      0.00     99.20
4 {7 k/ V$ B0 d" f0 a- W4、inode、文件和其他内核表监控
, G( ?, I, a4 ^( `2 X7 h例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:
; t7 U0 r) Y( s, _( {9 p. Hsar -v 10 3
$ [# ]9 x5 `# _+ v3 Q) e屏幕显示如下:
" n! `; H: C2 U; D5 F, T# x3 k# W. Z3 A1 f
17:10:49 dentunusd file-nr inode-nr pty-nr; g0 t5 z8 {" ?' G
17:10:59 6301 5664 12037 48 M+ x4 y: e# p' d
17:11:09 6301 5664 12037 4
% M) X- L3 w$ o- v3 r17:11:19 6301 5664 12037 4
; @( D: ?/ e/ cAverage: 6301 5664 12037 4. J' N; s' _0 l0 A7 C) k
输出项说明:% [- n3 O/ u- n
dentunusd:目录高速缓存中未被使用的条目数量; h- n7 r9 S! [4 s8 O4 @
file-nr:文件句柄(file handle)的使用数量
! V6 q6 Y3 {0 \/ L8 T7 jinode-nr:索引节点句柄(inode handle)的使用数量
6 p# l6 H' j( @! D* X5 cpty-nr:使用的pty数量0 ?& S! y9 |9 Z7 ]/ X0 A

" p" X9 w3 \9 ~8 F( R5、内存和交换空间监控% d, }8 y, u% O$ N5 [! g8 l
例如,每1秒采样一次,连续采样3次,监控内存分页:& z9 m9 K# f4 F) Y! I
sar -r 1 3
6 W+ f6 j1 K* {1 y7 j[root@VM_20_68_centos ~]# sar -r 1 3. i* X3 E! G+ @$ f
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_  (2 CPU)6 K- p! h9 d0 |/ T" l( S8 E
22时49分46秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
% i2 r$ m6 j; a1 K( m# n22时49分47秒    436764   3485988     88.87    184276   2486992    598852     15.277 W! b7 x+ `$ z5 C
22时49分48秒    436896   3485856     88.86    184276   2486984    598852     15.27" M* k- O% h6 {+ t$ G* B
22时49分49秒    436896   3485856     88.86    184276   2486984    598852     15.27
' q8 ~, E5 m1 J3 Y平均时间:    436852   3485900     88.86    184276   2486987    598852     15.27
5 U# J$ C/ p7 h8 c, P0 A0 U/ n输出项说明:
! r7 D1 n7 o; C) H3 S9 wkbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.) j$ l" j. J3 z' S4 p
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.5 a- w% N! Z1 d1 B7 w% t
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.- L( C+ C" m: Y; _- Q  {
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.% i7 `: w9 i' L( a1 D
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)./ E' C# S$ C) E$ v# x! Z! m" I
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.6 _% J1 T5 }1 i% `
+ i# a: k9 L( |- V. ^" L
6、I/O和传送速率监控. v; R# P- O* z
例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:1 N  b  i9 K1 `$ N
sar -b 10 3. T' K  v* H) a" o. b
屏幕显示如下:
, a7 G' _9 X; H2 C6 ^- j4 e# L( m8 z9 Z; G
18:51:05 tps rtps wtps bread/s bwrtn/s
# {8 w2 `& X# I* Y& t9 X9 `18:51:15 0.00 0.00 0.00 0.00 0.00% D$ ]/ m' p- b) E% i+ G
18:51:25 1.92 0.00 1.92 0.00 22.653 W0 Q( i0 u3 F" G! A: k2 n. I
18:51:35 0.00 0.00 0.00 0.00 0.00+ Y+ H; B8 r; `; U6 o
Average: 0.64 0.00 0.64 0.00 7.59
% c" |: w9 h' Y4 E+ h: A输出项说明:
# {2 V! E' h; M+ r( r$ wtps:每秒钟物理设备的 I/O 传输总量( E: ?7 l4 U- o1 [2 Z. z  S. F
rtps:每秒钟从物理设备读入的数据总量3 \  A: H8 p" I7 N- d. N; s! p% l
wtps:每秒钟向物理设备写入的数据总量
; Y- c6 N$ Y2 X9 [4 T, ^bread/s:每秒钟从物理设备读入的数据量,单位为 块/s. [* M4 V" D* j6 {
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
. ~, t  P* N% R) n6 u* |# Y3 _, ]: f! S/ }2 Y2 b( T: z& _8 ~# n
7、进程队列长度和平均负载状态监控' q. c4 a) i- I0 y
例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:3 M; k- w. p# m+ r6 z
sar -q 10 3
. v) Y( g) G! {; T* q. t# M2 X屏幕显示如下:
0 ~; U% w- o3 H' R  k
- m0 z" `: p5 F* X# m  U# ^" O& b2 [19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
  B9 O- J- Q: J19:26:00 0 259 0.00 0.00 0.00
# R7 F9 Y, d' ^6 b19:26:10 0 259 0.00 0.00 0.00
) E  B! J/ g' `, s( W* r19:26:20 0 259 0.00 0.00 0.00
7 M* u* a# \! Z' U: c. t9 LAverage: 0 259 0.00 0.00 0.00
* O/ U- u1 D& b$ P8 M输出项说明:9 J& N1 A; X8 \1 ]7 U! s: m1 e, R
runq-sz:运行队列的长度(等待运行的进程数)
' }/ m. N8 N4 p, M4 Q5 Zplist-sz:进程列表中进程(processes)和线程(threads)的数量
8 J$ |2 G1 B, z4 a0 Jldavg-1:最后1分钟的系统平均负载(System load average)/ E' O& u3 P2 e/ G' k$ r
ldavg-5:过去5分钟的系统平均负载
- }0 |' Q# R: ^4 _' s8 Q! lldavg-15:过去15分钟的系统平均负载
/ v9 S# v* N" t& H
% B8 b1 U+ D/ G" N6 u8、系统交换活动信息监控  k, c9 J) I4 V4 N# i
例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:
5 Y) d) e0 {- _; i9 i$ f: n$ H7 Osar –    W 10 3
/ ~. G- D' ?% i/ w! ^/ a" v" k- f屏幕显示如下:
5 _( C- V: {3 q- ~5 D
/ G  c4 ~/ f1 |4 l5 u0 H4 |0 M19:39:50 pswpin/s pswpout/s
6 g+ E, j+ r" u; V$ P* y  `% X$ j19:40:00 0.00 0.00. y1 a3 O' G; X: v
19:40:10 0.00 0.00% _0 Q7 Z6 ~' S, t4 Q( ?9 i: N1 |
19:40:20 0.00 0.00
1 N1 _) x4 ~6 V/ KAverage: 0.00 0.00
  @- o6 [/ N1 ?0 K. x输出项说明:
5 [& ~6 L3 k- @pswpin/s:每秒系统换入的交换页面(swap page)数量6 q7 X  j0 t1 d- ]- X" y  m
pswpout/s:每秒系统换出的交换页面(swap page)数量8 H% _+ s% _4 [( k( g$ u
+ u' t- B% E( s1 Z' g
9、设备使用情况监控, z- V5 a* [: h  t
例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:
: U! H" M: X9 Y/ m% @# sar -d 10 3 –p
( ~7 U% x, [) h( Z& y0 _屏幕显示如下:
0 l; i; }! @  l( J
3 c( v, V' o+ l- B4 C  G17:45:54    DEV    tps    rd_sec/s    wr_sec/s    avgrq-sz    avgqu-sz    await    svctm    %util. f- Q! F, U" Y3 `
17:46:04    scd0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
6 z; B, d4 m% K# Q% X17:46:04    sda    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  h7 ?3 m2 C7 @! P, y+ D, ~
17:46:04    vg_livedvd-lv_root    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.009 g  L6 V( [2 Y7 k# D( F
17:46:04    vg_livedvd-lv_swap    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00$ R0 U5 V. v3 z7 [$ s
其中:  |  M( C" C' H
参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
+ h  ^& ?+ E1 e9 stps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.6 s  W$ O4 Z2 X1 \6 U; i
rd_sec/s:每秒读扇区的次数.1 H. K0 \1 w. E# C& Z/ v0 l
wr_sec/s:每秒写扇区的次数.; O+ j  ?* b0 i% a" O
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
1 }6 q  X4 c) c9 Z! i! Yavgqu-sz:磁盘请求队列的平均长度.
& n- X1 T* ]# C' {: Rawait:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).+ L; L3 S: |5 z/ [2 }. s0 g7 c, T
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.; f) v: n2 {9 P( a% r; Y; K+ W
%util:I/O请求占CPU的百分比,比率越大,说明越饱和.+ t$ }. u" m4 a
1. avgqu-sz 的值较低时,设备的利用率较高。( Q# D8 w; H9 Q' D/ V; U& ~7 d
2. 当%util的值接近 1% 时,表示设备带宽已经占满。
& q, Q- v4 P% ~0 ^6 M) G$ \2 I" k0 {3 R" ]+ o4 F- c/ E
10、要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来: t& ?4 c0 F) q$ Q" M2 R2 |% q
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
- u, p: X& J  x2 W! [7 G怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看& Q3 ^/ `$ V0 H6 y
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看9 _/ }# X  ]2 W, o% m/ c+ r
 楼主| 发表于 2017-12-8 16:42:08 | 显示全部楼层
while :; do ps -eo pid,ni,pri,pcpu,psr,comm | grep 'db_server_login'; sleep 1; done
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:57 , Processed in 0.050560 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表