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

  • 相关阅读:
    VysorPro助手
    Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
    Play 2D games on Nexus 6P running Android N7.1.1 with Daydream View VR headset
    Native SBS for Android
    ADB和Fastboot最新版的谷歌官方下载链接
    How do I install Daydream on my phone?
    Daydream Controller手柄数据的解析
    蓝牙BLE传输性能及延迟分析
    VR(虚拟现实)开发资源汇总
    Android(Java)控制GPIO的方法及耗时分析
  • 原文地址:https://www.cnblogs.com/zhenjing/p/sar_monitor.html
Copyright © 2011-2022 走看看