zoukankan      html  css  js  c++  java
  • Linux系统性能统计工具Sar和实时系统性能监控脚本

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

    安装(centos): yum -y install sysstat 

    要启动SAR,必须通过cron工具以周期性的间隔启动。
    安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为:
    # run system activity accounting tool every 10 minutes
    */10 * * * * root /usr/lib/sa/sa1 1 1
    # generate a daily summary of process accounting at 23:53
    53 23 * * * root /usr/lib/sa/sa2 -A
    这里用到了两个命令
    /usr/lib/sa/sa1
    /usr/lib/sa/sa2
    sa1:是调用sadc(二进制文件),将数据收集到二进制日志文件的一个Shell脚本。sa1命令还确保每天使用不同的文件。每隔十分钟运行一次该命令,最好不要改这个值,这是对一般系统折中的值。二进制日志文件存放在/var/log/sa/目录下,命名为sa${DATE}。
    sa2:是将当日二进制日志文件中所有的数据转储到文本文件(sar)的另一个Shell脚本,然后它将清除七天之前的所有日志文件。参数-A指定了从二进制文件中提取哪些数据转储到文本文件中。转储的文件存放在/var/log/sa/目录下,命名为sar${DATE}。

    启动采集: service crond start 

    关于sar如何使用可百度下,或者直接 man sar学习一番。直接给出一个实用监控脚本。

    实时系统性能监控脚本

    #! /bin/bash

    export LC_ALL=en_US.UTF-8

    # cpu load(5 min)
    #cpu_usage=`uptime | awk '{print $11}' | cut -d , -f1`
    #echo "cpu " $cpu_usage

    # memery usage
    mem_usage=`free | grep "buffers/cache" | awk '{print $3 * 100 /($3 + $4) }'`
    echo "memory " $mem_usage

    # cpu usage
    cpu_usage=`sar -C 1 1 | grep "Average:" | awk '{print $3}'`
    echo "cpu " $cpu_usage

    disk_tps=`sar -b 1 1 | grep "Average:" | awk '{print $2}'`
    echo "disk tps " $disk_tps

    em1_load=`sar -n DEV 1 1 | grep "Average:" | grep "em1"`
    net_recv_packet_em1=`echo $em1_load | awk '{print $3}'`
    net_send_packet_em1=`echo $em1_load | awk '{print $4}'`

    net_recv_kB_em1=`echo $em1_load | awk '{print $5}'`
    net_send_kB_em1=`echo $em1_load | awk '{print $6}'`
    echo "em1 net load " $net_recv_packet_em1 $net_send_packet_em1 $net_recv_kB_em1 $net_send_kB_em1

    em2_load=`sar -n DEV 1 1 | grep "Average:" | grep "em2"`
    net_recv_packet_em2=`echo $em2_load | awk '{print $3}'`
    net_send_packet_em2=`echo $em2_load | awk '{print $4}'`

    net_recv_kB_em2=`echo $em2_load | awk '{print $5}'`
    net_send_kB_em2=`echo $em2_load | awk '{print $6}'`
    echo "em2 net load " $net_recv_packet_em2 $net_send_packet_em2 $net_recv_kB_em2 $net_send_kB_em2

    swap_page_num=`sar -W 1 1 | grep "Average:" | awk '{print $2 + $3}'`
    echo "swap pages number " $swap_page_num

  • 相关阅读:
    iOS7.0后隐藏状态栏(UIStatusBar)
    UITableView
    UIScrollView
    [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
    UISearchController
    App开发流程之通用宏定义及头文件
    App开发流程之Xcode配置和本地化
    App开发流程之源代码Git管理
    App开发流程之增加预编译头文件
    App开发流程之配置Info.plist文件
  • 原文地址:https://www.cnblogs.com/zhenjing/p/sar_monitor.html
Copyright © 2011-2022 走看看