Unix系统性能监控工具之--SAR

简介:

系统环境:

操作系统: AIX 5.3.9

Oracle:   Oracle 10gR2

    SAR可用于监控Unix系统性能,帮助我们分析性能瓶颈。sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数。

下文将说明如何使用sar获取以下性能分析数据:

  1. 整体CPU使用统计

  2. 各个CPU使用统计

  3. 内存使用情况统计

  4. 整体I/O情况

  5. 各个I/O设备情况

  6. 网络统计

常用的选项包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-b:报告I/O使用情况以及传输速率。(只适用于 2.5 及之前的内核,所以新内核有可能不支持这个选项)
-B:报告“页”使用情况
-c:报告进程创建情况
-d:报告每一个块设备的使用情况
(当你使用时,你会发现在DEV列有类似dev1 -7 格式的字符串,
其中 1 代表设备的主序号,n代表设备的从序号,
而且rd_sec/s列和wr_sec/s列的单位都是512bytes,也就是512B,也就是 0. 5KB)
-I:汇报中断情况
-n:汇报网络情况
-P:设定CPU
-q:汇报队列长度和负载信息
-r:汇报内存和交换区使用情况
-R:汇报内存情况
-u:汇报CPU使用情况
-v:汇报i节点、文件和其他内核表信息
-w:汇报系统上下文切换情况
-x:可以针对某个特定PID给出统计信息,
可以直接指定进程ID号;
也可以指定为SELF,这样就是检测sar进程本身;
如果设定为ALL,则表示汇报所有系统进程信息。
-X:汇报特定PID的子进程的信息
-y:设定TTY设备的信息。

案例分析:

1、系统环境

[root@aix211 /]#lspv 

1
2
hdisk0          00040f8aaa29d28e                    rootvg          active
hdisk1          000e1a6ce663b4af                    asmvg           active

[root@aix211 /]#lsvg -l asmvg

1
2
3
4
5
6
asmvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv_asm1             jfs         64       64       1     open/syncd    N/A
lv_asm2             jfs         64       64       1     open/syncd    N/A
lv_asm3             jfs         64       64       1     open/syncd    N/A
lv_asm4             jfs         64       64       1     open/syncd    N/A

SQL> set linesize 120

SQL> select group_number,name,state from v$asm_diskgroup;

1
2
3
4
GROUP_NUMBER NAME                           STATE
------------ ------------------------------ -----------
            1  DG1                            MOUNTED
            2  RCY1                           MOUNTED

SQL> select GROUP_NUMBER,DISK_NUMBER,STATE,NAME,PATH from v$asm_disk;

1
2
3
4
5
6
GROUP_NUMBER DISK_NUMBER STATE    NAME                           PATH
------------ ----------- -------- ------------------------------ ------------------------
            1            0  NORMAL   DG1_0000                       /dev/rlv_asm1
            1            1  NORMAL   DG1_0001                       /dev/rlv_asm2
            2            0  NORMAL   RCY1_0000                      /dev/rlv_asm3
            2            1  NORMAL   RCY1_0001                      /dev/rlv_asm4

在hdisk1磁盘上建立ASMVG磁盘组,并建立逻辑卷;在逻辑卷的基础上,建立ASM disk;


2、数据库环境

SQL> set linesize 120

SQL> select file_id,file_name,tablespace_name from dba_data_files

1
2
3
4
5
6
7
8
  FILE_ID FILE_NAME                                          TABLESPACE_NAME
---------- -------------------------------------------------- ---------------------------
          6  +DG1/prod/datafile/tbs2 .265.853498689               TBS2
          4  +DG1/prod/datafile/users .261.848857443              USERS
          3  +DG1/prod/datafile/sysaux .258.848857287             SYSAUX
          2  +DG1/prod/datafile/undotbs1 .260.848857407           UNDOTBS1
          1  +DG1/prod/datafile/system .257.848857161             SYSTEM
          5  +DG1/prod/datafile/example .259.848857363            EXAMPLE

SQL> select file_id,file_name,tablespace_name from dba_temp_files;

1
2
3
  FILE_ID FILE_NAME                                          TABLESPACE_NAME
---------- -------------------------------------------------- ---------------------------
          2  +DG1/prod/tempfile/temp .262.848858041               TEMP

SQL> col member for a50

SQL> select group#,member from v$logfile order by 1;

1
2
3
4
5
6
GROUP# MEMBER
---------- --------------------------------------------------
          5  +DG1/prod/onlinelog/group_5 .263.848858213
          5  +RCY1/prod/onlinelog/group_5 .256.848858217
          6  +DG1/prod/onlinelog/group_6 .264.848858253
          6  +RCY1/prod/onlinelog/group_6 .257.848858259

SQL> show parameter log

1
2
3
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string      location=/arch/arch_prod

2、案例(执行数据插入)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SQL> select *  from  tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
DEPT                           TABLE
EMP                            TABLE
BONUS                          TABLE
SALGRADE                       TABLE
EMP1                           TABLE
DEPT1                          TABLE
6  rows selected.
SQL> create table t1 (id int);
Table created.
SQL> begin 
   2   for  in  1. .100000  loop
   3   execute immediate  'insert into t1 values (' ||i|| ')' ;
   4   end loop;
   5   end;
   6   /     
PL/SQL procedure successfully completed.

3、监控系统性能

1)topas监控系统整体性能

[root@aix211 /]#topas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Topas Monitor  for  host:    aix211               EVENTS/QUEUES    FILE/TTY
Mon Jul  21  15 : 36 : 07  2014    Interval:   2          Cswitch      137   Readch      1250
                                                 Syscall     5825   Writech     8473
CPU  User%  Kern%  Wait%  Idle%                 Reads          9   Rawin          0
ALL    50.2     0.2     3.2    46.2                  Writes         3   Ttyout       281
                                                 Forks          0   Igets          0
Network  KBPS   I-Pack  O-Pack   KB-In  KB-Out  Execs          0   Namei         20
en0        0.6       4.5      1.0      0.3      0.4   Runqueue     3.5   Dirblk         0
lo0        0.1       1.0      1.0      0.0      0.0   Waitqueue    0.0
en1        0.0       0.0      0.0      0.0      0.0
                                                 PAGING           MEMORY
Disk    Busy%     KBPS     TPS KB-Read KB-Writ  Faults        11   Real,MB     4096
hdisk1    24.0       1. 1K    13.0      0.0      1. 1K Steals         0   % Comp      37.7
hdisk0     0.0       0.0      0.0      0.0      0.0   PgspIn         0   % Noncomp   24.4
hdisk3     0.0       0.0      0.0      0.0      0.0   PgspOut        0   % Client    21.1
hdisk2     0.0       0.0      0.0      0.0      0.0   PageIn         0
cd0        0.0       0.0      0.0      0.0      0.0   PageOut        0   PAGING SPACE
                                                 Sios           0   Size,MB     4096
Name            PID  CPU%  PgSp Owner                            % Used       0.0
oracle        544852   49.9   10.6  oracle          NFS (calls/sec)  % Free     100.0
java          331954    0.1   20.3  root            ServerV2        0
topas         344118    0.1    1.5  root            ClientV2        0    Press:
ocssd.bi      364724    0.0   27.6  oracle          ServerV3        0    "h"  for  help
oracle        418002    0.0    9.4  oracle          ClientV3        0    "q"  to quit
oracle        389330    0.0   13.9  oracle
pnsd          311512    0.0    0.5  root  
gil            49176    0.0    0.1  root  
oracle        196688    0.0   10.5  oracle
nfsd          151682    0.0    0.3  root  
oracle        327908    0.0    7.5  oracle
java          295068    0.0   36.6  root  
rpc.lock      237718    0.0    0.2  root  
oracle        377064    0.0    7.4  oracle
oracle        503854    0.0   12.4  oracle
xntpd         192620    0.0    0.4  root
oracle        446498    0.0   12.3  oracle
oracle        356372    0.0    8.0  oracle
oracle        409802    0.0    7.3  oracle
oracle        380952    0.0    8.0  oracle

可以看到,oracle用户消耗了大部分资源

2)分别查看cpu的资源使用(2个cpu)

[root@aix211 /]#sar -P 0 2 2

1
2
3
4
5
6
AIX aix211  3  5  00040F8A4C00     07 / 21 / 14
System configuration: lcpu= 2   mode=Capped 
15 : 37 : 09  cpu    %usr    %sys    %wio   %idle
15 : 37 : 11   0         0        1        9       90
15 : 37 : 13   0         0        1       21       78
Average    0         1        1       15       84

[root@aix211 /]#sar -P 1 2 2

1
2
3
4
5
6
7
8
9
10
11
AIX aix211  3  5  00040F8A4C00     07 / 21 / 14
System configuration: lcpu= 2   mode=Capped 
15 : 37 : 20  cpu    %usr    %sys    %wio   %idle
15 : 37 : 22   1        99        1        0        0
15 : 37 : 24   1        99        1        0        0
Average    1       100        0        0        0
以上主要的统计项的解析如下:
%user: 用户态下CPU使用时间比率
%system: 内核态下CPU使用时间比率
%iowait: CPU等待I/O占用时间比率
%idle: CPU空闲时间比率

3)查看磁盘I/O

[root@aix211 /]#sar -d 2 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AIX aix211  3  5  00040F8A4C00     07 / 21 / 14
System configuration: lcpu= 2  drives= 5   mode=Capped 
15 : 37 : 49      device    %busy    avque    r+w/s    Kbs/s   avwait   avserv
15 : 37 : 51      hdisk0       0       0.0         0         0       0.0       0.0
              hdisk2       0       0.0         0         0       0.0       0.0
              hdisk3       0       0.0         0         0       0.0       0.0
              hdisk1       7       0.0         4        47      12.2      17.0
                 cd0       0       0.0         0         0       0.0       0.0
15 : 37 : 53      hdisk0       0       0.0         0         0       0.0       0.0
              hdisk2       0       0.0         0         0       0.0       0.0
              hdisk3       0       0.0         0         0       0.0       0.0
              hdisk1      24       1.1        13      1033     169.4      18.3
                 cd0       0       0.0         0         0       0.0       0.0
Average      hdisk0       0       0.0         0         0       0.0       0.0
              hdisk2       0       0.0         0         0       0.0       0.0
              hdisk3       0       0.0         0         0       0.0       0.0
              hdisk1      15       0.6         8       540      90.8      17.7
                 cd0       0       0.0         0         0       0.0       0.0


[root@aix211 /]#sar -b 2 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AIX aix211  3  5  00040F8A4C00     07 / 21 / 14
System configuration: lcpu= 2   mode=Capped 
15 : 18 : 49  bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
15 : 18 : 51        0        0        0        0        0        0        0       13
15 : 18 : 53        0        0        0        0        0        0        0        0
Average         0        0        0        0        0        0        0        6
以上各列的含义为:
 
tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
 
rtps: 每秒向磁盘设备的读请求次数
 
wtps: 每秒向磁盘设备的写请求次数
 
bread: 每秒从磁盘读的bytes数量
 
bwrtn: 每秒向磁盘写的bytes数量

[root@aix211 /]#iostat 2 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
System configuration: lcpu= 2  drives= 5  paths= 1  vdisks= 0
tty:      tin         tout    avg-cpu: % user % sys % idle % iowait
           0.0          29.0                49.7    1.0    35.8      13.5
Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0            0.0        0.0        0.0           0          0
hdisk2            0.0        0.0        0.0           0          0
hdisk3            0.0        0.0        0.0           0          0
hdisk1           29.0      1214.0       15.0           0       2428
cd0               0.0        0.0        0.0           0          0
tty:      tin         tout    avg-cpu: % user % sys % idle % iowait
           0.0         260.5                49.7    0.8    49.5       0.0
Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0            0.0        0.0        0.0           0          0
hdisk2            0.0        0.0        0.0           0          0
hdisk3            0.0        0.0        0.0           0          0
hdisk1            0.0        0.0        0.0           0          0
cd0               0.0        0.0        0.0           0          0


[root@aix211 /]#iostat -D

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
System configuration: lcpu= 2  drives= 5  paths= 1  vdisks= 0
hdisk0         xfer:  %tm_act      bps      tps      bread      bwrtn    
                          1.0      34. 1K      2.6         7. 4K       26. 7K
                read:      rps  avgserv  minserv  maxserv   timeouts      fails
                          1.1       4.1       0.1      95.6            0           0
               write:      wps  avgserv  minserv  maxserv   timeouts      fails
                          1.5       8.8       0.4      83.4            0           0
               queue:  avgtime  mintime  maxtime  avgwqsz    avgsqsz     sqfull
                         18.9       0.0     679.0       0.0         0.0          0.9
hdisk2         xfer:  %tm_act      bps      tps      bread      bwrtn    
                          0.0       0.0       0.0         0.0         0.0 
                read:      rps  avgserv  minserv  maxserv   timeouts      fails
                          0.0       0.0       0.0       0.0            0           0
               write:      wps  avgserv  minserv  maxserv   timeouts      fails
                          0.0       0.0       0.0       0.0            0           0
               queue:  avgtime  mintime  maxtime  avgwqsz    avgsqsz     sqfull
                          0.0       0.0       0.0       0.0         0.0          0.0
hdisk3         xfer:  %tm_act      bps      tps      bread      bwrtn    
                          0.0       0.0       0.0         0.0         0.0 
                read:      rps  avgserv  minserv  maxserv   timeouts      fails
                          0.0       0.0       0.0       0.0            0           0
               write:      wps  avgserv  minserv  maxserv   timeouts      fails
                          0.0       0.0       0.0       0.0            0           0
               queue:  avgtime  mintime  maxtime  avgwqsz    avgsqsz     sqfull
                          0.0       0.0       0.0       0.0         0.0          0.0
hdisk1         xfer:  %tm_act      bps      tps      bread      bwrtn    
                          9.1       1. 1M     49.6         1. 0M       66. 5K
                read:      rps  avgserv  minserv  maxserv   timeouts      fails
                         46.1       0.6       0.2      39.9            0           0
               write:      wps  avgserv  minserv  maxserv   timeouts      fails
                          3.4      18.1       3.8      85.5            0           0
               queue:  avgtime  mintime  maxtime  avgwqsz    avgsqsz     sqfull
                         12.1       0.0       5. 8S      0.3         0.0         49.6
cd0            xfer:  %tm_act      bps      tps      bread      bwrtn    
                          0.0       0.0       0.0         0.0         0.0 
--------------------------------------------------------------------------------

4)查看内存使用情况

[root@aix211 /]#sar -r 2 2

1
2
3
4
5
6
7
AIX aix211  3  5  00040F8A4C00     07 / 21 / 14
System configuration: lcpu= 2  mem=4096MB  mode=Capped 
15 : 38 : 12    slots cycle/s fault/s  odio/s
15 : 38 : 14  1046571     0.00    44.00     0.00
15 : 38 : 16  1046571     0.00    13.00     0.00
Average   1046571        0       28        0
上面输出的内存单位为”kb”

@有以上案例可以看出,I/O的资源都在hdisk1上,hdisk1为datafile和redolog的存储磁盘(ASM磁盘组),所以在做DML操作时,产生了大量的I/O.

备注:

SAR怎么控制信息输出的时间间隔和次数?

有两个参数非常非常常用,就是“时间间隔”和“输出次数”。

时间间隔表示两次信息输出之间的时间间隔,单位是秒。如果这个值被设置为0,则表示所输出的信息是从开机到现在为止的信息平均值。如果不是0,sar计算就都是从当前开始的信息的平均值。

输出次数表示输出系统信息的次数,默认是1次。如果这个值被设置为0,则会永远的输出下去。

比如:sar 60 5 表示每60秒输出一次,共输出5次。

 怎么把sar输出的这些有用信息存到文件中去呢?

sar专门提供了一个选项-o filename,你只要使用它,就可以喽!

比如 sar 5 6 -o sys_info

不过,不幸的是,当你用cat看sys_info时发现全都是乱码,呵呵,别着急,sar为你准备了-f filename选项,你只要用-f设定要读取的信息存储文件,就可以清晰地读出信息了。

比如sar -f sys_info。

如果你觉得这种格式有些不利于处理,试试加上-h选项,你将获得不一样的体验。











本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1440940,如需转载请自行联系原作者
目录
相关文章
|
28天前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
26 0
|
2月前
|
Rust 监控 算法
Rust中的系统性能监控与调优:提升应用效能的关键实践
随着Rust在系统级编程中的广泛应用,性能监控与调优变得尤为关键。本文介绍了在Rust中实施系统性能监控的方法,探讨了Rust应用的性能瓶颈,并提供了调优策略与最佳实践,旨在帮助开发者更有效地提升Rust应用的性能。
|
7月前
|
监控 Oracle 数据可视化
深度解析JVM性能监控工具:推荐与详细用法
深度解析JVM性能监控工具:推荐与详细用法
207 0
|
4月前
|
Unix Linux Shell
在Unix/Linux系统中,文件和目录的权限管理
在Unix/Linux系统中,文件和目录的权限管理
36 3
|
6月前
|
Prometheus 监控 Kubernetes
k8s中部署prometheus监控告警系统-prometheus系列文章第一篇
k8s中部署prometheus监控告警系统-prometheus系列文章第一篇
|
9月前
|
运维 监控 Java
28-虚拟机性能监控&故障处理工具
经过前面对于虚拟机内存分配与回收技术各方面的介绍, 相信大家已经建立了一个比较系统、 完整的理论基础。 理论总是作为指导实践的工具, 把这些知识应用到实际工作中才是我们的最终目的。 接下来的内容, 我们将从实践的角度去认识虚拟机内存管理的世界。
76 0
|
9月前
|
缓存 监控 关系型数据库
Linux性能监控与调优工具
Linux性能监控与调优工具
158 0
|
11月前
|
存储 数据采集 Prometheus
APM - Prometheus监控系统初探
APM - Prometheus监控系统初探
252 1
|
11月前
|
运维 监控 数据可视化
JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】
JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】
136 0
|
11月前
|
缓存 运维 监控
JVM-11虚拟机性能监控与故障处理工具之【JDK的可视化工具-JConsole】
JVM-11虚拟机性能监控与故障处理工具之【JDK的可视化工具-JConsole】
239 0