您的位置:首页 > 运维架构 > Linux

RH442-4 利用sar收集系统性能

2011-05-12 01:17 239 查看
利用[/b]sar[/b]收集系统性能[/b]
1. 说明
sar 工具比较强大,既能收集系统CPU、硬盘、动态数据,也能显示动态显示,更能查看二进制数据文件。
安装:
[root@station8 ~]# yum install sysstat.i386

2. 用法:sar [参数选项]
#sar的最后两个参数一般是interval(收集间隔时间s)、 count(收集次数)

参数说明:

-A:显示所有历史数据相当于-bBcdqrRuvwWy -I SUM -n FULL -P ALL,通过读取/var/log/sar 目录下的所有文件,并把它们分门别类的显示出来;

-b:通过设备的I/O中断读取设置的吞吐率;

-B:报告内存或虚拟内存交换统计;

-c:报告每秒创建的进程数;

-d:报告物理块设备的写入、读取之类的信息,如果直观一点,可以和p参数共同使用,-dp

-f:从一个二进制的数据文件中读取内容,比如 sar -f filename

-i:interval 指定数据收集的时间,时间单位是秒;
-I:汇报中断情况

-n:分析网络设备状态的统计,后面可以接的参数有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV

-o:把统计信息写入一个文件,比如 -o filename ;

-P:报告每个处理器应用统计,用于多处理器机器,并且启用SMP内核才有效;

-p:显示友好设备名,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np
-q:汇报队列长度和负载信息

-r:汇报内存和交换区占用统计;

-R:汇报内存情况

-t:这个选项对从文件读取数据有用,如果没有这个参数,会以本地时间为标准 读出;

-u:报告CPU利用率的参数;

-v:报告inode, 文件或其它内核表的资源占用信息;

-w:报告系统交换活动的信息; 每少交换数据的个数;

-W:报告系统交换活动吞吐信息;

-x:用于监视进程的,在其后要指定进程的PID值;

-X:用于监视进程的,但指定的应该是一个子进程ID;
3. sar 应用举例
l 如果只用sar 命令,sar就是读取 /var/log/sa目录下最近系统状态文件。

[root@station8 ~]# sar

[root@station8 ~]# sar -A #注:读取/var/log/sa目录下所有文件数据;

如果我们想知道CPU的利用率;动态更新;下面的例子是每秒更新1次数据,总共更新5次;
[root@station8 ~]# sar -u 1 5
Linux 2.6.18-194.el5PAE (station8.example.com) 2011年05月11日
23时45分29秒 CPU %user %nice %system %iowait %steal %idle
23时45分30秒 all 0.00 0.00 0.00 0.00 0.00 100.00
23时45分31秒 all 0.00 0.00 0.00 0.00 0.00 100.00
23时45分32秒 all 0.00 0.00 0.00 0.00 0.00 100.00
23时45分33秒 all 0.00 0.00 0.00 0.00 0.00 100.00
23时45分34秒 all 0.00 0.00 0.00 0.25 0.00 99.75
Average: all 0.00 0.00 0.00 0.05 0.00 99.95
#注解:

CPU:表示机器内所有的CPU;

%user :表示CPU的利用率;

%nice :表示CPU在用户层优先级的百分比,0表示正常;

%system: 表示当系统运行时,在用户应用层上所占用的CPU百分比;

%iowait :表示请求硬盘I/0数据流出时,所占用CPU的百分比;

%idle :表示空闲CPU百分比,值越大系统负载越低;
#如果CPU为多核处理器,可以用过-P选项指定查询特定核的运行信息
[root@station8 ~]# sar -P 3 1 1
Linux 2.6.18-194.el5PAE (station8.example.com) 2011年05月12日
00时07分44秒 CPU %user %nice %system %iowait %steal %idle
00时07分45秒 3 0.00 0.00 0.00 0.00 0.00 100.00
Average: 3 0.00 0.00 0.00 0.00 0.00 100.00

#您可以CPU利用率的动态信息输出到一个文本文件中,然后通过more 来查看。

[root@station8 ~]# sar -u 1 5 > sar000.txt

[root@station8 ~]# more sar000.txt
#也可以输出到一个二进制的文件中,然后通过sar来查看;

[root@station8~]# sar -u 1 5 -o sar002

[root@station8 ~]# sar -f sar002

#注:如果您把数据通过-o filename 输出到一个二进制的文件中,是不能用文件内容查看工具more 、less或cat来查看的,应该用sar工具来查看,要加-f参数;如果-o或忘输入filename,sar会自动把输出信息更记录在/var/log/saDD文件里,其中DD表示当天的日期数字
l 查看网络设备的吞吐情况

比如我们让数据每秒更新一次,总共更新十次;

[root@station8 ~]# sar -n DEV 2 5
Linux 2.6.18-194.el5PAE (station8.example.com) 2011年05月12日
00时00分23秒 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
00时00分25秒 eth0 0.50 0.00 30.00 0.00 0.00 0.00 0.00

#字段说明:
第一字段:时间;

IFACE: 设备名;

rxpck/s: 每秒收到的包;

rxbyt/s: 每秒收到的所有包的体积;

txbyt/s: 每秒传输的所有包的体积;

rxcmp/s:每秒收到数据切割压缩的包总数;

txcmp/s : 每秒传输的数据切割压缩的包的总数;

rxmcst/s: 每秒收到的多点传送的包;

#如果想知道网络设备错误报告,也就就是用来查看设备故障的。应该用EDEV;比如下面的例子;

[root@station8 ~]# sar -n EDEV 2 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息