linux-利用sar进行性能监控

转自: http://www.51testing.com/?uid-130600-action-viewspace-itemid-220288

为了监控服务器性能
写了个shell脚本,监控服务器的:CPU、MEM、磁盘IO、负载四个指标
记录下来,以备不时之需

sar安装方法:
yum install sysstat

脚本内容如下:

#!/bin/bash
if (( $# != 2))
then
    echo "usage:num1-Please enter the number of script. execution"
    echo "usage:num2-Please enter a value for rest time"
    exit 1
fi

sar -d 0 | head -3 | tail -1 > dev8-0.log
sar -u 0 | head -3 | tail -1 > cpu.log
sar -r 0 | head -3 | tail -1 > mem.log
echo "" > loadAverage.log
for ((i=1;i<=$1;i++))
do
    sar -d 1 | grep dev8-0 | grep -v Average >> dev8-0.log
    sar -u 1 | head -4 | tail -1 >> cpu.log
    sar -r 1 | head -4 | tail -1 >> mem.log
    monitorDate=date +'%F %T'
    load=w | grep 'load average' | awk -F ',' {'print $4,$5,$6'}
    echo $monitorDate $load >> loadAverage.log
    sleep $2
done

脚本使用方法:
chmod +x monitor.sh(脚本名)
./monitor.sh 5 1
每1秒记录监控数据一次,共记录5次
注:每次运行脚本时,会把上一次的日志清空;

脚本内容解释:
sar -d 1:打印磁盘IO信息,采样间隔1秒
sar -u 1:打印CPU信息,采样间隔1秒
sar -r 1:打印MEM信息,采样间隔1秒
然后再利用一些grep/head/tail/awk等命令取得想要的部份信息;
(使用过程中发现,采样间隔使用0秒时,会出现打印出来的CPU和磁盘IO信息全一样,MEM会有所不同。。。)

脚本运行结果:
./monitor.sh 5 1
运行后,当前目录下会生成下面几个日志文件:

# cat cpu.log
02:21:24 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
02:21:24 PM       all      0.89      0.05      1.29      0.23      0.00     97.54
02:21:25 PM       all      0.89      0.05      1.29      0.23      0.00     97.54
02:21:26 PM       all      0.89      0.05      1.29      0.23      0.00     97.54
02:21:27 PM       all      0.89      0.05      1.29      0.23      0.00     97.54
02:21:28 PM       all      0.89      0.05      1.29      0.23      0.00     97.54
%user 在用户模式中运行进程所花的时间
%nice 运行正常进程所花的时间
%system 在内核模式(系统)中运行进程所花的时间
%iowait 没有进程在该CPU上执行时,处理器等待I/O完成的时间
%idle 没有进程在该CPU上执行的时间

#cat mem.log
02:21:24 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
02:21:24 PM   2884304   1267572     30.53    335216    795552   2048248         0      0.00         0
02:21:25 PM   2884428   1267448     30.53    335216    795552   2048248         0      0.00         0
02:21:26 PM   2884428   1267448     30.53    335216    795552   2048248         0      0.00         0
02:21:27 PM   2884428   1267448     30.53    335216    795552   2048248         0      0.00         0
02:21:28 PM   2884552   1267324     30.52    335216    795552   2048248         0      0.00         0
kbmemfree 空闲内存大小
kbmemused 内存使用量大小
%memused 内存使用量百分比
kbbuffers 内存buffers大小
kbcached 内存cached大小
kbswpfree 空闲swap大小
kbswpused swap使用量大小
%swpused swap使用量百分比

# cat dev8-0.log
02:21:24 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
02:21:24 PM    dev8-0      0.92      0.22     27.83     30.47      0.02     19.40      6.18      0.57
02:21:25 PM    dev8-0      0.92      0.22     27.83     30.47      0.02     19.40      6.18      0.57
02:21:26 PM    dev8-0      0.92      0.22     27.83     30.47      0.02     19.40      6.18      0.57
02:21:27 PM    dev8-0      0.92      0.22     27.83     30.47      0.02     19.40      6.18      0.57
02:21:28 PM    dev8-0      0.92      0.22     27.83     30.47      0.02     19.40      6.18      0.57
DEV  sar命令正在监视的块设备的名字。
tps  每秒传输数(或者每秒IO数)
rd_sec/s 每秒512字节读取数
wr_sec/s 每秒512字节写入数
%util  设备饱和度时,会发生此值接近100%。

# cat loadAverage.log

2010-09-16 14:21:24 load average: 0.14 0.14 0.15
2010-09-16 14:21:25 load average: 0.61 0.23 0.18
2010-09-16 14:21:26 load average: 0.61 0.23 0.18
2010-09-16 14:21:27 load average: 0.61 0.23 0.18
2010-09-16 14:21:28 load average: 0.61 0.23 0.18

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据