找回密码
 注册
查看: 3955|回复: 1

sar使用方法

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2017-12-8 16:32:37 | 显示全部楼层 |阅读模式
一、sar命令简介
7 G8 K+ y; Z0 j+ P) P& q9 fsar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。4 S3 W2 H+ Q( d5 D, J7 r! k0 Y7 B

2 o3 Q$ }2 a' E. u. ~* W0 P: i% x二、安装(Centos)
. I4 K! @( l  A$ \+ U: Z6 h#yum -y install sysstat     #或者 yum install sysstat (自己按y)9 H, R1 B4 ]( q+ c
#whereis sar0 J+ B- {3 ?3 f/ j+ e
#whereis iostat% W- B( a* ~, g) l# `: m
安装完成。
8 r5 |1 \; }; _6 \3 t
0 s% @+ H" o2 k: w( w" v/ C! }( j三、常见使用方法
* B- }( `  l% v, E4 ]* _t为采样间隔,n为采样次数,默认值是1;
) z* o, o. z9 b7 G' P% V-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
/ Z- M! {( d& W4 ?& goptions 为命令行选项,sar命令常用选项如下:
6 g8 ?) ]6 S1 @0 f- T-A:所有报告的总和
* n& x' i: V; I-u:输出CPU使用情况的统计信息' ]  w, G7 g) D; z
-v:输出inode、文件和其他内核表的统计信息( N9 B# S! I! y
-d:输出每一个块设备的活动信息" v. n$ R+ ~9 Z! S) W
-r:输出内存和交换空间的统计信息
  z( C0 ~9 Z" S4 i-b:显示I/O和传送速率的统计信息0 G: P0 O$ r* x5 i# q
-a:文件读写情况
4 l, `  G/ H$ {-c:输出进程统计信息,每秒创建的进程数
! I; I: H# p* [/ ~% w-R:输出内存页面的统计信息
2 s2 A$ V  C5 T' Q- Y5 q7 F/ D-y:终端设备活动情况
4 ^! Q9 Z( X3 l+ S5 {' }& A8 k-w:输出系统交换活动信息; x' e1 V+ R/ W) r9 s+ `
1、每隔一秒往屏幕输出一次cpu使用信息,共输出5次:
6 \3 C* d8 ^, L  P! {" l$ n#sar 1 5      
& B2 `4 K# |$ K! f/ L#或者 sar -u 1 5# s, k$ W* [/ a& q4 {% S; L
[root@VM_20_68_centos ~]# sar -u 1 5
/ S+ O8 [" U: m* g3 mLinux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_        (2 CPU)
  u: L0 Z0 e' O7 M% K% C- W: X3 I22时38分00秒     CPU     %user     %nice   %system   %iowait    %steal     %idle+ z! K7 D: E; A5 W
22时38分01秒     all      0.00      0.00      0.50      0.00      0.00     99.50
  R& a! c- l% f' b4 j# ^22时38分02秒     all      2.00      0.00      4.50      0.00      0.00     93.50% Y7 c% ~: B/ Q' _1 i1 p; y
22时38分03秒     all      0.00      0.00      0.00      0.00      0.00    100.00
9 M# `+ X$ `( t% C5 e( J22时38分04秒     all      0.51      0.00      1.01     15.15      0.00     83.33
1 z; b0 g7 u* Q3 O. k4 X22时38分05秒     all      1.51      0.00      1.01      0.00      0.00     97.49/ J4 `" z4 F$ m, v2 s- z
平均时间:     all      0.80      0.00      1.41      3.02      0.00     94.77
* s+ v5 {  K! \4 g  k! U; M9 O! V2 `1 T/ j
2、每2秒采样1次,共10次,把CPU使用数据保存到/opt/cpu.log文件中。$ w- r$ Y% c8 O# Y6 ~
#sar 2 10 > /opt/cpu.log! E7 ^, h3 {3 D# q1 M! n
[root@VM_20_68_centos ~]# cat /opt/cpu.log7 G  [- T  r( Y8 p
) w. d  _0 n- D# Q1 T
Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_  (2 CPU)
" m! S8 r  j) }' a3 d22时38分23秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
, r6 a6 Q+ _, g& b' ?$ J( r22时38分25秒     all      0.25      0.00      0.50      0.50      0.00     98.75
0 P' ]! x" D- J+ m22时38分27秒     all      0.25      0.00      0.25      0.00      0.00     99.50
3 W9 j3 W/ `/ u, f22时38分29秒     all      0.25      0.00      0.25      0.00      0.00     99.503 u( N& @3 }& H: d: e5 X7 p2 p
22时38分31秒     all      0.00      0.00      0.50      0.50      0.00     98.99
: T$ }+ P5 q* ~% w5 W) Y/ I$ r22时38分33秒     all      0.25      0.00      0.25      0.00      0.00     99.50% w: Y: y% s( f) y) q/ t
22时38分35秒     all      0.25      0.00      0.50      0.00      0.00     99.25
8 E9 ?5 `0 q$ T6 C, d! c22时38分37秒     all      0.25      0.00      0.25      0.50      0.00     98.99
& V* f: S% x; X22时38分39秒     all      0.00      0.00      0.25      0.00      0.00     99.750 s1 s1 F* [( ]* z+ O
22时38分41秒     all      0.50      0.00      1.00      0.00      0.00     98.50" l! i5 K0 _  |# v& a; t* ]3 W2 g+ r
22时38分43秒     all      0.00      0.00      0.25      0.50      0.00     99.24! R5 s" c: I; g* l( Y
平均时间:     all      0.20      0.00      0.40      0.20      0.00     99.20: X# c5 U  |( x' K9 ~0 E4 N- I
3、当前所有核心的数据显示。6 V2 y) x: b: ~* H9 u
#sar -P ALL 1 13 H$ _! P' v8 _1 E5 c6 @
[root@VM_20_68_centos ~]# sar -P ALL 1 11 y7 C* Y1 i- a5 |& }! o, L: N

, A0 [( j1 M! E9 X+ S+ \Linux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_  (2 CPU)8 h* Q8 v* ^0 q" ]! O
22时38分23秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
, m( E2 A( u& e4 [$ [22时38分25秒     all      0.25      0.00      0.50      0.50      0.00     98.75
; W0 \7 g9 b" i% D22时38分27秒     all      0.25      0.00      0.25      0.00      0.00     99.50
; A+ y* j, m0 n# c" J( \2 \22时38分29秒     all      0.25      0.00      0.25      0.00      0.00     99.50
, ^9 r% {' k% G- e% T22时38分31秒     all      0.00      0.00      0.50      0.50      0.00     98.99& h' w' ]3 C% |8 H7 \5 s
22时38分33秒     all      0.25      0.00      0.25      0.00      0.00     99.50
; Z: t! W1 u1 L+ v: d22时38分35秒     all      0.25      0.00      0.50      0.00      0.00     99.256 ]% R' x4 q6 P9 n1 k0 T8 J
22时38分37秒     all      0.25      0.00      0.25      0.50      0.00     98.99
) k  q# X- \5 v3 e  o3 B, I22时38分39秒     all      0.00      0.00      0.25      0.00      0.00     99.75
$ N3 W8 I4 Z* X2 Q: M8 e! d22时38分41秒     all      0.50      0.00      1.00      0.00      0.00     98.50( f1 F- u' F# u6 V1 E" l# ]
22时38分43秒     all      0.00      0.00      0.25      0.50      0.00     99.24& O2 `/ E  u; B
平均时间:     all      0.20      0.00      0.40      0.20      0.00     99.20
# F  Z! R. O+ {% r5 b1 ]/ X/ v0 Z4、inode、文件和其他内核表监控  P, X, G3 A, P  W
例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:
2 o8 _& m5 z) ?/ S% |sar -v 10 30 [) \9 M* M  q$ V8 ?% l
屏幕显示如下:
; E! h! l/ t4 F9 }- Y6 j6 a7 m2 Q8 }. \0 `
17:10:49 dentunusd file-nr inode-nr pty-nr/ a" T" {1 d! G$ \- @3 m
17:10:59 6301 5664 12037 47 o9 G2 P( C& _  z2 p4 f" ~5 v
17:11:09 6301 5664 12037 4
$ T0 U, B' n: N7 q+ [; j17:11:19 6301 5664 12037 4
/ J) C; a" P, X$ ^Average: 6301 5664 12037 47 v' W( K, r: k5 O
输出项说明:% u. r/ w, J% {9 a0 M
dentunusd:目录高速缓存中未被使用的条目数量& w/ J  N8 E4 P) g4 l
file-nr:文件句柄(file handle)的使用数量; i6 c$ F* O% ~8 q! |# o
inode-nr:索引节点句柄(inode handle)的使用数量
" M/ V( ?  l4 M- N8 Jpty-nr:使用的pty数量1 E: v3 K. i: b; v
$ x5 a' k8 V) h/ P) [: B' Y- l" x  e/ I
5、内存和交换空间监控& z, A. i; p* |$ G! p4 A5 ~6 F* j
例如,每1秒采样一次,连续采样3次,监控内存分页:" M- R  _# J* F) n/ }. y
sar -r 1 3# \6 r- }8 V7 p$ g
[root@VM_20_68_centos ~]# sar -r 1 3
7 O' k* I9 M' W/ cLinux 2.6.32-431.el6.x86_64 (VM_20_68_centos) 2017年04月29日 _x86_64_  (2 CPU)7 D+ ?/ Q' g0 h# D+ a: v. c2 `
22时49分46秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
# h- Y1 R2 |- J' @. V. M- C( w/ x22时49分47秒    436764   3485988     88.87    184276   2486992    598852     15.27
& b1 A" e; m, Y. n! j  X22时49分48秒    436896   3485856     88.86    184276   2486984    598852     15.27
" w! p0 X' o9 {5 m: x0 L22时49分49秒    436896   3485856     88.86    184276   2486984    598852     15.27
3 v3 ~$ I  g2 [) m平均时间:    436852   3485900     88.86    184276   2486987    598852     15.27/ \" n' c! c1 L
输出项说明:
# _  O. Y- s, M, {kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.9 I# G8 |4 w9 T8 s' ~" |9 |5 }
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
* e  T) ^0 m0 i8 k, H%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.+ F" o' n# R7 T0 }8 l& b
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
7 Z, v2 n  i9 Fkbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
+ R/ h; G4 T5 p%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.1 {1 W3 I9 N' O; v: Y
, O  v& C1 d- `  w) ~% F" l) G
6、I/O和传送速率监控
' e4 m% u! c* H$ U1 W8 b例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:
1 z6 B$ O7 E4 T7 c) X" Asar -b 10 33 L' B! P; D! t8 f% U" o, Y
屏幕显示如下:
7 n) X" Q, F1 ^  _/ S( e& l% X" {) ~, ?/ [: ?4 o1 i
18:51:05 tps rtps wtps bread/s bwrtn/s
2 Z9 Q; Y8 Z5 L5 o18:51:15 0.00 0.00 0.00 0.00 0.008 s0 `$ T$ C. u! j& Z* D3 n
18:51:25 1.92 0.00 1.92 0.00 22.65
3 O9 p- o/ k7 w: q18:51:35 0.00 0.00 0.00 0.00 0.00
8 V4 _$ @6 J( s2 P8 q! z  e; cAverage: 0.64 0.00 0.64 0.00 7.590 u+ _& ~% ?& A0 T, O  _
输出项说明:
3 b2 F0 W) x# I# g( |; t4 |tps:每秒钟物理设备的 I/O 传输总量
& P0 m$ j/ c6 O5 {. w1 L, trtps:每秒钟从物理设备读入的数据总量/ R- \! b) z, r/ ~: Q
wtps:每秒钟向物理设备写入的数据总量
: |- n" ~5 n- Z5 h0 D9 d+ {bread/s:每秒钟从物理设备读入的数据量,单位为 块/s9 o2 j5 T2 t3 _5 J0 _6 t
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s! e- |, w: i6 ?# N* C7 u* T
8 ]2 F0 {* l9 P. r
7、进程队列长度和平均负载状态监控. i2 q3 i, j: t, u/ i9 M% c
例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:) G1 Y, \* r3 K$ N3 G
sar -q 10 3
- U. R; W' k4 d0 c7 h屏幕显示如下:5 f% ?* l# ^( I3 f. z' p/ s3 |
( P2 J( J3 Y  o7 B0 `( j9 H+ t
19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
5 X' `9 }" t' m19:26:00 0 259 0.00 0.00 0.002 Y( U7 @' i2 p: u4 S, q) a; c  q
19:26:10 0 259 0.00 0.00 0.00
2 g6 o/ [+ P8 u4 H8 L4 _19:26:20 0 259 0.00 0.00 0.00
6 @3 {9 Z# r) i5 IAverage: 0 259 0.00 0.00 0.00. {1 V8 {3 h* A% t3 `6 K. d
输出项说明:
4 H! p$ n/ z7 z, q: Z  ^! z. p- Lrunq-sz:运行队列的长度(等待运行的进程数)* ]& U# ?( x; j6 K0 R# m; o, M
plist-sz:进程列表中进程(processes)和线程(threads)的数量( @2 E3 Q( I9 t' ~+ E( I1 x* {1 |
ldavg-1:最后1分钟的系统平均负载(System load average)1 m! Q$ I. K. L# U& K
ldavg-5:过去5分钟的系统平均负载6 y, N+ W( z/ t/ W! T8 P# x5 D
ldavg-15:过去15分钟的系统平均负载+ Q5 I$ }; I( z
3 T; D, e* K' f& n
8、系统交换活动信息监控
: e; O% @& G9 l7 G* p) `0 g/ e% z例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:
4 A. w& i/ x0 L" ysar –    W 10 3* w$ c9 `" D2 A/ M) C0 y
屏幕显示如下:
$ |0 P: G# x  e' h! P2 E! ?5 K" }7 G
: t, \6 k( w' G19:39:50 pswpin/s pswpout/s
( o( z; @( m* o; y1 L& x19:40:00 0.00 0.00; m! p1 ?: j! {2 q4 y4 G
19:40:10 0.00 0.00
. N7 x( p4 G1 k; U1 H- I19:40:20 0.00 0.004 q9 Z) f8 j- I# v$ v2 D& D
Average: 0.00 0.00, \2 [* k( N4 k/ p4 @
输出项说明:
: y7 K: I2 {. Q4 d! Npswpin/s:每秒系统换入的交换页面(swap page)数量1 }, W2 `5 h$ h2 I
pswpout/s:每秒系统换出的交换页面(swap page)数量- n2 ~; C  |. R/ [

: a! P% q+ ~/ G; ]8 q9、设备使用情况监控
5 d( E1 ?' Y2 \6 O. a' Q. c例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:4 D) ?* ?* e6 F( B: y' i
# sar -d 10 3 –p% }! {2 N+ Q, N$ U
屏幕显示如下:+ S( _# b% \" W3 Z1 J3 L
  r$ l! A, I$ }% n: y$ X; `0 h
17:45:54    DEV    tps    rd_sec/s    wr_sec/s    avgrq-sz    avgqu-sz    await    svctm    %util% f# S! k! I; I9 P9 I
17:46:04    scd0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00/ j' z7 {( A  w. l% I
17:46:04    sda    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
# p$ V; S! ?; X: e3 m9 S17:46:04    vg_livedvd-lv_root    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
+ G$ h8 |% }5 I8 i8 p0 x0 \17:46:04    vg_livedvd-lv_swap    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
+ v+ g4 K6 M" ?/ i/ n+ X其中:1 E3 u7 G- D( w# a
参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
: }8 c0 I+ e; Ltps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.. z2 @6 r0 W5 x' y# E7 o6 P
rd_sec/s:每秒读扇区的次数.+ k& z5 n8 [/ h" S' d
wr_sec/s:每秒写扇区的次数.9 E) f2 |  [8 e- U
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).+ U7 j3 U3 s3 b0 q8 x8 Z
avgqu-sz:磁盘请求队列的平均长度.
" x1 y0 B, d2 w! P9 o9 Zawait:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).) F& e6 X. A0 V
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.( e: u) {% y  T9 i9 C/ D+ E
%util:I/O请求占CPU的百分比,比率越大,说明越饱和.9 M7 z& _4 {0 Y6 s% K
1. avgqu-sz 的值较低时,设备的利用率较高。
& Z. [$ R2 A8 r' T4 c/ N+ c2. 当%util的值接近 1% 时,表示设备带宽已经占满。: z5 g8 Z3 f* [4 |; ?! s+ m& R

8 H( n% B- [" U. v+ `! [  y10、要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
% p8 o# K4 l0 S$ y2 d4 U# }) P4 V怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看3 H* j* [  Z" u" \1 r+ z8 A5 m
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
, E/ B$ i, r7 g; F3 w: Q. S怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
* D/ o5 g) [! L* e

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2017-12-8 16:42:08 | 显示全部楼层
while :; do ps -eo pid,ni,pri,pcpu,psr,comm | grep 'db_server_login'; sleep 1; done
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 03:22 , Processed in 0.019594 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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