- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
一、sar命令简介( e. s Q/ r/ }! j, r0 e
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。$ x% ~( T; P/ y0 X$ \
. y9 h9 f! N q
二、安装(Centos)4 M- T2 @) L) z# h3 X. Q
#yum -y install sysstat #或者 yum install sysstat (自己按y), S. Q" ^8 K {; }
#whereis sar
& W' [$ h: W6 Y7 u9 Q4 d |#whereis iostat$ V6 m) d" r4 N8 U* f# ~0 e7 \
安装完成。
8 s( [& N' P" _. N% ]8 f
' T0 Z5 Q1 x& W: \三、常见使用方法# z" {/ O3 }0 ]0 u0 r
t为采样间隔,n为采样次数,默认值是1;3 O0 R4 Z: N3 L7 E
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。0 g# u# v$ y, }, l/ L, N
options 为命令行选项,sar命令常用选项如下:# |! s' Z6 F& M u' R0 G8 [% {
-A:所有报告的总和+ \ f) w4 ] C
-u:输出CPU使用情况的统计信息6 @% A/ r8 h# S* b8 z
-v:输出inode、文件和其他内核表的统计信息' `- U) j- o ]6 w7 z4 s. {
-d:输出每一个块设备的活动信息9 t. k8 c. j& s2 R' t& P! U
-r:输出内存和交换空间的统计信息4 n0 F( o" h; |1 ^- z
-b:显示I/O和传送速率的统计信息# H3 u2 _* f! l. Y
-a:文件读写情况
8 h' m& y. k' E4 _4 v; E-c:输出进程统计信息,每秒创建的进程数* U+ Q7 y. h% c
-R:输出内存页面的统计信息
j6 U2 H y( X2 s; F-y:终端设备活动情况5 d6 Q' R; M% C+ U- F
-w:输出系统交换活动信息1 h) Q0 x# L/ o% E
1、每隔一秒往屏幕输出一次cpu使用信息,共输出5次:3 m6 ]2 i) J' j" V4 M
#sar 1 5 6 U4 z6 h5 Z& I/ ] y( `
#或者 sar -u 1 50 ? N& H. l/ s/ M
[root@VM_20_68_centos ~]# sar -u 1 5
& e7 m8 {& j% i* }: E, ^, eLinux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_ (2 CPU)& b4 ^" t7 c7 m {# q' X1 C
22时38分00秒 CPU %user %nice %system %iowait %steal %idle; _1 X, d( K! |3 @1 b b
22时38分01秒 all 0.00 0.00 0.50 0.00 0.00 99.509 j* X5 F7 [* ]7 e$ C
22时38分02秒 all 2.00 0.00 4.50 0.00 0.00 93.50
, l% F* {) n9 }2 h22时38分03秒 all 0.00 0.00 0.00 0.00 0.00 100.00
: q# c% w C9 `/ {22时38分04秒 all 0.51 0.00 1.01 15.15 0.00 83.33
: h- w7 }& C$ B7 r# ^6 C- Y$ m22时38分05秒 all 1.51 0.00 1.01 0.00 0.00 97.49" G3 k. V* i% ~# K% @
平均时间: all 0.80 0.00 1.41 3.02 0.00 94.77
2 q4 O8 q$ d; f; c" G' u9 m! b* r4 L* q9 @* V2 m
2、每2秒采样1次,共10次,把CPU使用数据保存到/opt/cpu.log文件中。
: L+ ?# j/ q# a! Y$ ^8 B#sar 2 10 > /opt/cpu.log: q2 r. E! @: V, x# J$ \
[root@VM_20_68_centos ~]# cat /opt/cpu.log, y* V+ |) f% q7 |- N- [. k
- y# Z+ f R5 f7 ^( g
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_ (2 CPU)5 Q# x2 Z5 P- \( r8 {: y
22时38分23秒 CPU %user %nice %system %iowait %steal %idle
! m2 \; n7 G9 z/ a7 ?# r22时38分25秒 all 0.25 0.00 0.50 0.50 0.00 98.75
5 y9 ^" d* l& K# ]22时38分27秒 all 0.25 0.00 0.25 0.00 0.00 99.50
p o+ l+ _7 g7 d; M5 n) A22时38分29秒 all 0.25 0.00 0.25 0.00 0.00 99.50
# x; x! r- D6 J22时38分31秒 all 0.00 0.00 0.50 0.50 0.00 98.99
8 o; w+ M- z8 n" ]22时38分33秒 all 0.25 0.00 0.25 0.00 0.00 99.50
2 n. I' q2 C Y/ ~3 G22时38分35秒 all 0.25 0.00 0.50 0.00 0.00 99.25
0 o& Q+ z$ f4 y O& `% a/ A, c22时38分37秒 all 0.25 0.00 0.25 0.50 0.00 98.99
! w& n2 c- V O% I7 ?22时38分39秒 all 0.00 0.00 0.25 0.00 0.00 99.757 `7 |! `/ ]; A+ ?
22时38分41秒 all 0.50 0.00 1.00 0.00 0.00 98.50
+ p. ~2 y" B' o& w; K+ K( O22时38分43秒 all 0.00 0.00 0.25 0.50 0.00 99.24
7 G$ H9 M% L6 S( y) u* G' V9 \2 }平均时间: all 0.20 0.00 0.40 0.20 0.00 99.20
/ x% {/ b. `. T/ ^3、当前所有核心的数据显示。
% `. \& g& L2 l0 [ O( J# i! s9 L+ H#sar -P ALL 1 1) _& p5 R! B& E* F1 |8 @
[root@VM_20_68_centos ~]# sar -P ALL 1 1; r: L1 N* t8 Z. y
/ U; F! m: _% Z- f2 o4 b8 V4 h2 c
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_ (2 CPU)
2 y z- `0 c m0 A- m0 b C: ?22时38分23秒 CPU %user %nice %system %iowait %steal %idle" E. ?, [! d7 a$ Y2 o1 G
22时38分25秒 all 0.25 0.00 0.50 0.50 0.00 98.754 u( |1 K+ j. R) V) f
22时38分27秒 all 0.25 0.00 0.25 0.00 0.00 99.50
% I/ T; _$ m- j22时38分29秒 all 0.25 0.00 0.25 0.00 0.00 99.50
& @2 b1 G' `* c4 ]22时38分31秒 all 0.00 0.00 0.50 0.50 0.00 98.991 L9 a2 H6 R: B# ?0 @+ T+ h
22时38分33秒 all 0.25 0.00 0.25 0.00 0.00 99.50
9 d$ q4 T' z2 n22时38分35秒 all 0.25 0.00 0.50 0.00 0.00 99.25 \- s& O! i* L# P8 A; Z, C6 c
22时38分37秒 all 0.25 0.00 0.25 0.50 0.00 98.99& V, g/ k2 { I" U% {+ F6 v+ }
22时38分39秒 all 0.00 0.00 0.25 0.00 0.00 99.759 [1 s% f" ^: r5 Q( \7 z! b/ x* T- x
22时38分41秒 all 0.50 0.00 1.00 0.00 0.00 98.50* z8 [$ `+ a! @7 a9 Z$ t( T D
22时38分43秒 all 0.00 0.00 0.25 0.50 0.00 99.24
6 _/ I \0 l# c: `+ u( F平均时间: all 0.20 0.00 0.40 0.20 0.00 99.20$ ]% Y% P* ^ ?) u, n
4、inode、文件和其他内核表监控
, t/ S; K. ~6 P8 U( P$ N例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:3 n$ v" g2 H( D6 A# i; o9 Q0 A
sar -v 10 3
* Z9 o r: I' } D7 Q7 y- `屏幕显示如下:: a2 T/ x5 f5 o( t$ G$ v5 u5 X
% x g- h" B8 G/ c) q17:10:49 dentunusd file-nr inode-nr pty-nr
% N. B) W6 z) K17:10:59 6301 5664 12037 4! k$ i8 v; j' m: D
17:11:09 6301 5664 12037 4
- l: r* U; \: I1 S17:11:19 6301 5664 12037 4" L- _ J- X& H# T/ g: H" e
Average: 6301 5664 12037 4! n, B) p: I2 ^7 [) w3 W1 |
输出项说明:
% q$ e! c8 n6 A8 N) N2 ^( ddentunusd:目录高速缓存中未被使用的条目数量. w( Z. N) ~) `2 ~ u) w0 A: |
file-nr:文件句柄(file handle)的使用数量
0 f/ u1 m- U3 e7 H8 f# C0 ?inode-nr:索引节点句柄(inode handle)的使用数量' I% ? [3 F8 z, b# s
pty-nr:使用的pty数量
3 z& ~, S2 ~2 P0 q4 U! H8 W
; F, L, `) E- ^/ a/ V& m$ x5、内存和交换空间监控
. H3 p. E5 e8 q! N' i例如,每1秒采样一次,连续采样3次,监控内存分页:& O9 [/ `! f, Q* \
sar -r 1 3
, N, {! e, L- X( T" ^) Z[root@VM_20_68_centos ~]# sar -r 1 3! G; y5 f1 a. x0 [+ F" J
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_ (2 CPU)/ j/ V. N" y3 O& F: x
22时49分46秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
. Z9 ^ A3 C5 B/ x22时49分47秒 436764 3485988 88.87 184276 2486992 598852 15.27: K/ M8 U7 Y' k$ S
22时49分48秒 436896 3485856 88.86 184276 2486984 598852 15.27
" q1 Y: {& b: A1 A% u22时49分49秒 436896 3485856 88.86 184276 2486984 598852 15.27) J: `& g+ ~, |( H+ t: \0 U7 K2 |
平均时间: 436852 3485900 88.86 184276 2486987 598852 15.278 x# g* w* O' ~2 N
输出项说明:
, N0 k7 j! e7 u4 v# j F" y/ okbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
! j8 G6 J% [+ F5 J4 l5 ^: s) b3 wkbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
: M6 v; i9 V3 Z7 R% W%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
, G3 @, F9 t- a C) v- P9 nkbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
) ?6 g8 K$ H7 ~/ J. h$ V, l6 i5 I! ikbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
: @- Y) M% u' d% ?%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比." o! l1 X1 O& W
' \9 K: k e# a; u6、I/O和传送速率监控+ P$ g, t6 M- t6 T
例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:
- P; T {" C0 J( i6 K: y4 fsar -b 10 3
# M& V: \, a2 L9 O屏幕显示如下:' V' A0 ]8 D5 T& N& J N4 Y
# l9 j% F/ L/ B4 J0 ?5 U$ ]# \ C
18:51:05 tps rtps wtps bread/s bwrtn/s
. L0 Q+ e) ^$ s18:51:15 0.00 0.00 0.00 0.00 0.00
1 E$ E4 `8 A: g9 V7 F6 C18:51:25 1.92 0.00 1.92 0.00 22.65
$ O- X6 l G* x( F0 U4 ~( j18:51:35 0.00 0.00 0.00 0.00 0.00' l4 P2 N! h6 d4 `6 A
Average: 0.64 0.00 0.64 0.00 7.59
' E3 n# }! k. u2 y( Q) i+ l5 y* y输出项说明:
4 f! ~: I+ i/ U4 P: f* Etps:每秒钟物理设备的 I/O 传输总量( j* ?' d4 y, R. s+ `: s5 X
rtps:每秒钟从物理设备读入的数据总量
% S' W r, c/ {& ?; @( }4 fwtps:每秒钟向物理设备写入的数据总量4 H0 t" x8 r/ [6 T
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
6 C r1 {& k. T9 X. p4 T& I# i3 \bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s" ~2 d, r" E7 d9 `. j+ [: U
% `0 H0 [' n' p8 [! K3 r7、进程队列长度和平均负载状态监控
% W9 H0 h* o" a$ B u例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:
8 P: ^9 B% k: W) x- v$ I8 dsar -q 10 3- l+ i; p& [* D5 X, \$ z1 `
屏幕显示如下:
3 U/ ?8 _* S$ k- O6 c W
& x0 _6 Z/ H$ S19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15' V0 b) H1 b8 T% I& O f- q% Z
19:26:00 0 259 0.00 0.00 0.00
4 H! N ~8 \4 O2 C) d19:26:10 0 259 0.00 0.00 0.00
' ?" F8 J/ V& j$ s, U( d19:26:20 0 259 0.00 0.00 0.00
1 T/ U9 M7 i) x$ }4 d" [Average: 0 259 0.00 0.00 0.00
7 ^: \4 f0 h. E7 ?输出项说明:* c3 {4 L$ \. e5 l( S; ~
runq-sz:运行队列的长度(等待运行的进程数)
/ {& N2 i7 O1 `6 A5 N- xplist-sz:进程列表中进程(processes)和线程(threads)的数量! G% P0 H7 r" ? @
ldavg-1:最后1分钟的系统平均负载(System load average)6 F1 ?/ q* W) X9 e4 n- e7 y
ldavg-5:过去5分钟的系统平均负载. l3 ^# O: v* L X
ldavg-15:过去15分钟的系统平均负载: Y" T: @$ R! _, C( H
1 B8 k2 e2 h7 k' y* Y' |8 B8、系统交换活动信息监控
( k0 _$ A% |, z例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:
' ]" w' q/ n8 R6 q+ t Tsar – W 10 36 D8 `' e! ?7 S. Q
屏幕显示如下:* ]3 E. y% |8 R) R8 |1 ~
3 |4 Q4 X5 U" C7 b) J' @$ }% U. O19:39:50 pswpin/s pswpout/s$ T0 D, f4 Q2 q) f: n0 o
19:40:00 0.00 0.005 J/ ~2 Z2 l7 `. h- x/ ^5 c
19:40:10 0.00 0.00
. i+ X) T4 R) Y' r/ t2 F19:40:20 0.00 0.00
, _+ Y; y5 J% L. @* I7 x5 pAverage: 0.00 0.00
9 m+ P R& {7 ] Q输出项说明:
( V$ r; N; d, n* l% S2 R2 C0 Zpswpin/s:每秒系统换入的交换页面(swap page)数量
3 R/ l1 H3 m9 w+ m% H7 Kpswpout/s:每秒系统换出的交换页面(swap page)数量
% U* F8 s# j! p& ~# j* }; T: w. K: Q! j0 S; L! R# S) B
9、设备使用情况监控
# S4 J6 G# Z9 l例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:7 K/ G$ s5 Z9 \9 T, _# n8 U; ~
# sar -d 10 3 –p& M. \' q6 {) Z6 I& s: E7 }& a0 D
屏幕显示如下:
- T+ V8 M" L# l; g7 }0 g7 ?" n
7 N2 J( j8 D/ D d: Y17:45:54 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
( b/ D! F! H3 J3 p17:46:04 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00" p6 O6 f- w+ H& ]& x
17:46:04 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00+ k7 C5 S4 q2 W9 u" V' f
17:46:04 vg_livedvd-lv_root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
4 m/ b& \- p8 X' i/ L! ?17:46:04 vg_livedvd-lv_swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.006 r% _7 V% ]3 t4 m- }% T
其中:' e2 l& } P% A6 T9 P* Q
参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
* p1 f4 k4 U- l2 n( w! Z! z! @tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.1 m- {( T) N. t6 d' Y* o
rd_sec/s:每秒读扇区的次数.
3 ?4 V2 l B2 }6 `wr_sec/s:每秒写扇区的次数.
0 J% _/ E! I7 v: i C, p) Pavgrq-sz:平均每次设备I/O操作的数据大小(扇区).
; V8 N0 R9 F1 E$ y( oavgqu-sz:磁盘请求队列的平均长度.3 p Q8 ~# c2 a q6 {/ b
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).) b: m, M$ |- M9 s+ j7 D- K
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
* ^( J# d& ?5 g* `' ^7 [. K%util:I/O请求占CPU的百分比,比率越大,说明越饱和.
5 X8 p: e! u6 ]$ z1. avgqu-sz 的值较低时,设备的利用率较高。
& s% s% U7 h+ d, r2. 当%util的值接近 1% 时,表示设备带宽已经占满。
' g" A/ q8 D4 K% [+ n- |" s0 o% ?2 v! n. Q+ l7 [
10、要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
" N2 R- S. f2 j" a4 e怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
| z$ e D' ]* K W6 l" V2 u! a怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
: ` ]# f3 O) N$ F怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看4 I( J& P4 O {5 Q. @9 ]/ c6 P; s
|
|