码迷,mamicode.com
首页 > 其他好文 > 详细

sysstat 下的系统工具

时间:2016-06-23 01:08:32      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:sysstat 下的系统工具

Sysstat 软件包集成如下工具:


    * iostat 工具提供CPU使用率及硬盘吞吐效率的数据;
    * mpstat 工具提供单个处理器或多个处理器相关数据;
    * sar 工具负责收集、报告并存储系统活跃的信息;
    * sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具

cron来运行,
        是为sadc所设计的程序前端程序;
    * sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过

cron来调用
    * sadc 是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后

端;
    * sadf 显示被sar通过多种格式收集的数据;


一,SAR

sar的最后两个参数一般是interval count

sar [参数选项]

参数说明:


-A 显示所有历史数据,通过读取/var/log/sar 目录下的所有文件,并把它们分门别类的显示出来;
-b 通过设备的I/O中断读取设置的吞吐率;
-B 报告内存或虚拟内存交换统计;
-c 报告每秒创建的进程数;
-d 报告物理块设备(存储设备)的写入、读取之类的信息,如果直观一点,可以和p参数共同使用,

-dp
-f 从一个二进制的数据文件中读取内容,比如 sar -f filename
-i interval 指定数据收集的时间,时间单位是秒;
-n 分析网络设备状态的统计,后面可以接的参数有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV
-o 把统计信息写入一个文件,比如 -o filename ;
-P 报告每个处理器应用统计,用于多处理器机器,并且启用SMP内核才有效;
-p 显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np
-r 内存和交换区占用统计;
-R
-t 这个选项对从文件读取数据有用,如果没有这个参数,会以本地时间为标准 读出;
-u 报告CPU利用率的参数;
-v 报告inode, 文件或其它内核表的资源占用信息;
-w 报告系统交换活动的信息; 每少交换数据的个数;
-W 报告系统交换活动吞吐信息;
-x 用于监视进程的,在其后要指定进程的PID值;
-X 用于监视进程的,但指定的应该是一个子进程ID;


1、sar -u 1 5
输出CPU使用情况的统计信息,每秒输出一次,一共输出100次
17时06分01秒       CPU     %user     %nice   %system   %iowait     %idle
17时06分02秒       all      1.27      0.00      0.51      1.01     97.22
17时06分03秒       all      0.00      0.00      0.00      0.00    100.00
17时06分04秒       all      0.00      0.00      0.00      0.00    100.00
17时06分05秒       all      0.25      0.00      0.00      0.00     99.75
17时06分06秒       all      0.00      0.00      0.00      0.51     99.49
Average:          all      0.30      0.00      0.10      0.30     99.29

CPU      all 表示统计信息为所有 CPU 的平均值。                                        
%user    显示在用户级别(application)运行使用 CPU 总时间的百分比。                   
%nice    显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。             
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。       
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal   管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle    显示 CPU 空闲时间占用 CPU 总时间的百分比。

tips:
若 %iowait 的值过高,表示硬盘存在I/O瓶颈
若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU

2、sar -b 1 5
显示I/O和传送速率的统计信息(动态实时显示硬盘的读写)
17时09分07秒       tps      rtps      wtps   bread/s   bwrtn/s
17时09分08秒      3.12      3.12      0.00     25.00      0.00
17时09分09秒     89.58      6.25     83.33    141.67    733.33
17时09分10秒     42.71      9.38     33.33    141.67    600.00
17时09分11秒      2.11      2.11      0.00     16.84      0.00
17时09分12秒      1.04      0.00      1.04      0.00    175.00
Average:        27.77      4.18     23.59     65.14    302.30

tps     每秒钟物理设备的 I/O 传输总量                    
rtps    每秒钟从物理设备读入的数据总量                  
wtps    每秒钟向物理设备写入的数据总量                  
bread/s 每秒钟从物理设备读入的数据量,单位为 块/s    
bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s   

3、sar -c
每秒钟创建的进程数
15时10分01秒      1.35
15时20分01秒      1.01
15时30分01秒      0.59
15时40分01秒      1.35
15时50分01秒      0.99
16时00分01秒      0.57
16时10分01秒      1.33
16时20分01秒      1.02
16时30分01秒      0.57
16时40分01秒      1.33
16时50分01秒      1.07
17时00分01秒      0.56
17时10分01秒      1.32

4、sar -n DEV 1 5
输出网络设备状态的统计信息
17时13分42秒     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s

rxmcst/s
17时13分43秒      eth1   3669.70   4156.57 368362.63 2747714.14      0.00      0.00     

0.00
17时13分44秒      eth1   2689.11   2585.15 289661.39 701461.39      0.00      0.00     

0.00
17时13分45秒      eth1   3746.00   4077.00 415178.00 2605720.00      0.00      0.00     

0.00
17时13分46秒      eth1   3096.00   3241.00 327916.00 1597320.00      0.00      0.00     

0.00
17时13分47秒      eth1   2910.00   2834.00 312632.00 957903.00      0.00      0.00     

0.00
Average:         eth1   3220.20   3375.60 342592.60 1717931.20      0.00      0.00     

0.00

IFACE      网络设备名                           
rxpck/s    每秒接收的包总数                  
txpck/s    每秒传输的包总数                   
rxbyt/s    每秒接收的字节(byte)总数         
txbyt/s    每秒传输的字节(byte)总数         
rxcmp/s    每秒接收压缩包的总数               
txcmp/s    每秒传输压缩包的总数               
rxmcst/s   每秒接收的多播(multicast)包的总数

5、sar -q 1 5
输出进程队列长度和平均负载状态统计信息
17时16分28秒   runq-sz plist-sz   ldavg-1   ldavg-5 ldavg-15
17时16分29秒         0       160      0.26      0.11      0.03
17时16分30秒         0       160      0.26      0.11      0.03
17时16分31秒         0       160      0.24      0.11      0.03
17时16分32秒         0       160      0.24      0.11      0.03
17时16分33秒         0       160      0.24      0.11      0.03
Average:            0       160      0.25      0.11      0.03

runq-sz   运行队列的长度(等待运行的进程数)                                      
plist-sz 进程列表中进程(processes)和线程(threads)的数量                     
ldavg-1   最后1分钟的系统平均负载(System load average)                          
ldavg-5   过去5分钟的系统平均负载                                                 
ldavg-15 过去15分钟的系统平均负载                                              

6、sar -r
输出内存和交换空间的统计信息


二,iostat

用途
报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计

信息。

语法
iostat [ -s ] [ -a ] [ -d | -t ] [ -T ][ -m ][ PhysicalVolume ... ] [ Interval [ Count ]

]

描述
iostat 命令用来监视系统输入/输出设备负载,这通过观察与它们的平均传送速率相关的物理磁盘的

活动时间来实现。iostat 命令生成的报告可以用来更改系统配置来更好地平衡物理磁盘和适配器之间

的输入/输出负载。

由 iostat 命令生成的第一份报告提供了关于自从系统被引导后的时间统计信息。后继的每一份报告

都包含自上一次报告以来的时间。每次运行 iostat 命令时,就报告所有的统计信息。报告由紧接着

一行 tty 和 CPU 统计信息的 tty 和 CPU 头行组成。在多处理器系统上,CPU 统计信息是系统范围

计算的,是所有处理器的平均值。

如果指定 -s 标志,则显示系统头行,随后是一行整个系统的统计信息。系统的主机名被打印在系统

头上。

如果指定 -a 标志,就会显示一个适配器头行,随后是一行适配器的统计信息。这后面将回有一个磁

盘头行和连接到适配器的所有磁盘/CD-ROM 的统计信息。为所有与系统连接的磁盘适配器生成这种报

告。

显示一个磁盘头行,随后是一行配置的磁盘的统计信息。如果指定 PhysicalVolume 参数,则只显示

那些指定的名称。

如果指定 PhysicalVolume 参数,那么可以指定一个或者更多的字母或者字母数字的物理卷。如果指

定 PhysicalVolume 参数,就会显示 tty 和 CPU 报告并且磁盘报告包含指定驱动器的统计信息。如

果没有发现指定逻辑驱动器名,那么报告将列出指定的名称并且显示没有找到驱动器的消息。如果没

有指定逻辑驱 动器名,报告则包含所有已配置的磁盘和 CD-ROM 的统计信息。如果系统上没有配置驱

动器,则不生成磁盘报告。PhysicalVolume 参数中的第一个字符不能为数字型。

Interval 参数指定了在每个报告之间的以秒计算的时间量。第一份报告包含了自系统启动(引导)以

来的时间统计信息。每一份后继报告都包含在和前一份报告的时间间隔之 间收集的统计信息。Count

参数可被指定来连接 Interval 参数。如果指定了 Count 参数,它的记数值就确定在 Interval 秒间

生成的报告数。如果指定了 Interval 参数但没有 Count 参数,iostat 命令就会不断生成报告。

iostat 命令用来确定一个物理卷是否正在形成一个性能瓶颈,以及是否有可能改善这种情况。物理卷

的 % 使用率字段表明了文件活动在驱动器中分布多均匀。物理卷的高 % 使用率是表明也许存在这个

资源的争用很好的征兆。由于 CPU 使用率的统计信息同样适用于 iostat 报告,CPU 在 I/O 等待队

列中的时间的百分比可以在同一时间确定。如果 I/O 等待时间是有效数字并且磁盘使用率不是在卷上

均匀分布,那么就要考虑在驱动器上分布数据。


注: 一些系统资源被消耗是为了为 iostat 命令维护磁盘 I/O 的历史记录。使用sysconfig子例程,

或者系统管理接口工具(SMIT)来停止历史记录账户。
报告
iostat 命令生成四种类型的报告,tty 和 CPU 使用率报告、磁盘使用率报告、系统吞吐量报告和适

配器吞吐量报告。

tty 和 CPU 使用率报告
由 iostat 命令生成的第一份报告是 tty 和 CPU 使用率报告。对于多处理器系统,CPU 值是所有处

理器的总平均。同时,I/O 等待状态是系统级定义的,而不是每个处理器。报告有以下格式:

栏 描述 
tin 显示了系统为所有 tty 读取的字符总数。 
tout 显示了系统为所有 tty 写入的字符总数。 
% user 显示了在用户级(应用程序)执行时产生的 CPU 使用率百分比。 
% sys 显示了在系统级(内核)执行时产生的 CPU 使用率百分比。 
% idle 显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。 
% iowait 显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。

每过一定时间间隔,内核就更新这条信息(一般每秒六十次)。tty 报告提供了从系统中所有终端的

收到的每秒字符总数,以及和每秒输出到系统所有终端的字符的总数。

用来计算 CPU 磁盘 I/O 等待时间的方法
操作系统 V4.3.3 和后来的版本包含用来估算 CPU 在磁盘 I/O(wio 时间)等待上的所花时间的百

分比的增强方法。用在 AIX 4.3.2 和操作系统的早期版本上的方法在一定条件下,能够给出 SMP 上

的 wio 时间的一个放大的视图。wio 时间是根据命令 sar(%wio)、 vmstat(wa)和 iostat(%

iowait)报告出来的。

在 AIX 4.3.2 中和早期版本中使用的方法如下:在每个处理器(每处理器一秒一百次)的每个时钟中

断上,将确定四个类别(usr/sys/wio/idle)中的哪一个放 置在最后的 10ms 内。如果在时钟中

断的时刻 CPU 以 usr 模式中处于忙状态,那么 usr 获得这个时间计点并归于此类。如果在时钟中断

时刻 CPU 以内核模式中处于忙状态,那么 sys 类别将获得该计时点。如果 CPU 不处于忙状态,将检

查是否在进行任何磁盘 I/O。如果在进行任何磁盘 I/O,则 wio 类别将增加。如果磁盘在进行 I/O

操作并且 CPU 不忙,那么 idle 类别将获取计时点。wio 时间的放大视图是由于所有空闲 CPU 被归

为 wio 而不管在 I/O 上等待的线程数所导致。例如,仅有一个线程执行 I/O 的系统可以报告超过

90% 的 wio 时间而不管其 CPU 数。

在 AIX 4.3.3 中和后继版本中使用的方法如下:如果在那个 CPU 上启动一个未完成的的 I/O,那么

操作系统 V4.3.3 中的更改仅把一个空闲 CPU 标为 wio。当只有少数线程正在执行 I/O 否则系统就

空闲的情况下,这种方法可以报告更少的 wio 时间。例如,一个有四个 CPU 且只有一个线程执行 I

/O 的系统将报告一个最大值是 25% 的 wio 时间。一个有 12 个 CPU 且仅有一个线程执行 I/O 的

系统将报告一个最大值为 8% 的 wio 时间。 NFS 客户机通过 VMM 读/写,并且为了完成一个 I/O

而在 vmm 等待中用的时间现在将被报告为 I/O 等待时间。

磁盘使用率报告
由 iostat 命令生成的第二个报告是磁盘使用率报告。磁盘报告提供了在每个物理磁盘基础上的统计

信息。这个报告有以下类似的格式:

% tm_act 表示物理磁盘处于活动状态的时间百分比(驱动器的带宽使用率)。 
Kbps 表示以 KB 每秒为单位的传输(读或写)到驱动器的数据量。 
tps 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请

求可被并为对磁盘的一个单一 I/O 请求。传输具有中等的大小。 
Kb_read 读取的 KB 总数。 
Kb_wrtn 写入的 KB 总数。

CD-ROM 设备的统计信息也要报告。

对于配置有大量磁盘的大型系统配置,当 iostat 没有执行时,系统可以设置为避免收集物理硬盘的

输入/输出数据。如果系统用上述的方式配置,那么第一个磁盘报告将显示消息引导不可用后的磁盘

历史记录而不 是磁盘统计信息。由 iostat 命令生成的后继时间间隔报告包含在报告时间间隔期间收

集的磁盘统计信息。引导后的任何 tty 和 CPU 都不会影响。如果一个系统管理命令用来重新保留磁

盘统计信息,那么第一个 iostat 命令报告会显示从启用磁盘输入/输出统计信息那一刻时间间隔起

点起的行为。

系统吞吐量报告
如果指定 -s 标志将生成这个报告。这份报告提供了整个系统的统计信息。这份报告有以下格式:

Kbps 表示了每秒以 KB 为单位的传输(读或写)到整个系统的数据量。 
tps 表示每秒传输到整个系统的传输次数。 
Kb_read 从整个系统中读取的 KB 总数。 
Kb_wrtn 写到整个系统的 KB 总数。

适配器吞吐量报告
如果指定 -a 标志将产生该报告。这份报告提供了适配器上的统计信息。

Kbps 表示每秒钟以 KB 为单位的传输到(读或写)到适配器的数据量。 
tps 表示每秒钟输出到适配器的传输次数。 
Kb_read 从适配器读取的 KB 总数。 
Kb_wrtn 写到适配器的 KB 总数。

磁盘输入/输出历史记录
要提高性能,已经禁用了磁盘输入/输出统计信息集合。要启用该数据的集合,请输入:


chdev -l sys0 -a iostat=true
要显示当前设置,请输入:


lsattr -E -l sys0 -a iostat
如果禁用了磁盘输入/输出历史记录的集合,那么 iostat 输出的第一个磁盘报告将显示消息引导不

可用后的磁盘历史记录而不是磁盘统计信息。如前,由 iostat 命令生成后继时间间隔报告包含了在

报告时间间隔期间收集的磁盘统计信息。

标志

-a 显示适配器吞吐量报告。 
-d -d 标志不能和 -t 标志合用,且仅显示磁盘使用率报告。 
-s 显示系统吞吐量报告。 
-m -m 标志将为以下打印路径统计信息 
到启用 MPIO(Multi-Path I/O)设备的路径。 
ESS 机器中的路径。
吞吐量是每个设备的。设备所有路径的吞吐量符合该设备的吞吐量。 
对于 ESS 机器,vpaths 将被当作磁盘,而 hdisks 将被看作路径。在内部 vpaths 是磁盘,hdisks

是它们的路径。对于启用 MPIO 的设备,路径名将表示为 Path0、Path1、Path2 等等。数字0、1、2

等都是 lspath 命令提供的路径标识。由于一个设备的路径可以附加到任何适配器上,所以适配器报

告将报告每个适配器下的路径信息。磁盘名称是所有路径的前缀。对于所有启用 MPIO 的设备,适配

器报告将打印路径名为 hdisk10_Path0 、hdisk0_Path1等等。对于所有 ESS 机器,适配器报告将打

印路径名为 vpath0_hdisk3 、vpath10_hdisk25等等。

-t -t 标志排除了 -d 标志且仅显示了 tty 和 cpu 用法报告。 
-T 打印 iostat输出的每一行边上的时间戳记。时间戳记以 HH:MM:SS 格式显示。

注:

-s 和 -a 标记都能指定来显示系统和适配器吞吐量报告。 
如果同时指定 -a 标志和 -t 标志,将显示 tty 和 CPU 报告,随后是适配器吞吐量报告。连接在适

配器上的磁盘的使用率报告将不会显示在适配器吞吐量报告后面。 
如果同时指定 -a 标志和 -d 标志,将不会显示 tty 和 CPU 报告。如果指定物理卷参数,那么指定

卷的磁盘使用率报告将在它所属于的相应适配器下打印出来。
示例
要为所有 tty、CPU 和磁盘显示引导后的单一历史记录报告,请输入:

iostat
要为逻辑名是 disk1 的磁盘显示一个以两秒为时间间隔的持续磁盘报告,请输入:

iostat -d disk1 2
要为逻辑名是 disk1 的磁盘显示以两秒为时间间隔的六个报告,请输入:

iostat disk1 2 6
要为所有磁盘显示以两秒为时间间隔的六个报告,请输入:

iostat -d 2 6
要为三个名称分别为 disk1、disk2、disk3 的磁盘显示以两秒为时间间隔的六个报告,请输入:

iostat disk1 disk2 disk3 2 6
要打印系统吞吐量报告,请输入:


iostat -s
要打印适配器吞吐量报告,请输入:

iostat -a
要打印系统和适配器吞吐量报告,且仅有 tty 和 CPU 报告(没有磁盘报告),请输入:


iostat -sat
要打印带有 hdisk0 和 hdisk7 的磁盘使用率报告的系统和适配器吞吐量报告,请输入:

iostat -sad hdisk0 hdisk7
要显示 iostat 输出的每行的下一行的时间戳记,请输入: 
iostat -T
文件

tps 每秒钟物理设备的 I/O 传输总量。                                                      

                                    
Blk_read 读入的数据总量,单位为块。                                                      

                                    
Blk_wrtn 写入的数据总量,单位为块。                                                      

                                    
kB_read 读入的数据总量,单位为KB。                                                       

                                    
kB_wrtn 写入的数据总量,单位为KB。                                                       

                                    
MB_read 读入的数据总量,单位为MB。                                                       

                                    
MB_wrtn 写入的数据总量,单位为MB。                                                       

                                    
Blk_read/s 每秒从驱动器读入的数据量,单位为 块/s。                                       

                                    
Blk_wrtn/s 每秒向驱动器写入的数据量,单位为 块/s。                                       

                                    
kB_read/s 每秒从驱动器读入的数据量,单位为KB/s。                                         

                                    
kB_wrtn/s 每秒向驱动器写入的数据量,单位为KB/s。                                         

                                    
MB_read/s 每秒从驱动器读入的数据量,单位为MB/s。                                         

                                    
MB_wrtn/s 每秒向驱动器写入的数据量,单位为MB/s。
rrqm/s 将读入请求合并后,每秒发送到设备的读入请求数。    
wrqm/s 将写入请求合并后,每秒发送到设备的写入请求数。
r/s 每秒发送到设备的读入请求数。                                                         

                                    
w/s 每秒发送到设备的写入请求数。                                                         

                                    
rsec/s 每秒从设备读入的扇区数。                                                          

                                    
wsec/s 每秒向设备写入的扇区数。                                                          

                                    
rkB/s 每秒从设备读入的数据量,单位为 KB/s。                                              

                                    
wkB/s 每秒向设备写入的数据量,单位为 KB/s。                                              

                                    
rMB/s 每秒从设备读入的数据量,单位为 MB/s。                                              

                                    
wMB/s 每秒向设备写入的数据量,单位为 MB/s。                                              

                                    
avgrq-sz 发送到设备的请求的平均大小,单位为扇区。                                        

                                    
avgqu-sz 发送到设备的请求的平均队列长度。                                                

                                    
await I/O请求平均执行时间。包括发送请求和执行的时间。单位为毫秒。                        

                           
svctm 发送到设备的I/O请求的平均执行时间。单位为毫秒。                                    

                                  
%util 在I/O请求发送到设备期间,占用CPU时间的百分比。用于显示设备的带宽利用率。当这个值接

近100%时,表示设备带宽已经占满。


三,mpstat 
mpstat 提供多处理器系统中的CPU的利用率的统计;mpstat 也可以加参数,用-P来指定哪个 CPU,处

理器的ID是从0开始的。下面的例子是查看两个处理器,每二秒数据更新一次,总共要显示10次数据;


[root@localhost ~]# mpstat -P 0 2 10 注:查看第一个CPU
[root@localhost ~]# mpstat -p 1 2 10 注:查看第二个CPU

[root@localhost ~]# mpstat -P ALL 2 10 注:查看所有CPU;


2010-07-07


本文出自 “五片棱角” 博客,请务必保留此出处http://hi289.blog.51cto.com/4513812/1791947

sysstat 下的系统工具

标签:sysstat 下的系统工具

原文地址:http://hi289.blog.51cto.com/4513812/1791947

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!