LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

OpenWRT(23): 使用sar进行系统级状态监控

 

1 OpenWRT下sar配置

如果要在OpenWRT下使用sar,需要配置打开:

Utilities
  ->sysstat

2 sar介绍

 sar相关工具包括:

工具功能描述使用场景示例
sar 系统活动报告器,收集/显示系统性能数据 sar -r 1 3 查看内存使用率
sadc 系统活动数据收集器(sar的后台守护进程) 自动收集数据到二进制文件
sadf 以多种格式(CSV/XML/JSON等)导出sar收集的数据 sadf -d sa01 -- -r 导出内存CSV数据
sa1 调用sadc收集并存储数据 通过cron定时运行
sa2 生成每日摘要报告 每日生成汇总报告

OpenWRT下的sadc的启动流程如下:

  • /etc/init.d/sysstat启动脚本,根据/etc/config/sysstat生成配置文件/etc/sysstat/sysstat。
  • /etc/init.d/sysstat启动sadc抓取系统状态信息。
  • sadc将抓取的数据存储到/var/log/sa/saxx中。

#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org

START=90
STOP=10

USE_PROCD=1
PROG=/usr/lib/sysstat/sadc
SYSSTAT_CFG="/etc/sysstat/sysstat"

validate_sysstat_section() {--读取/etc/config/sysstat配置信息。
        uci_load_validate sysstat sysstat "$1" "$2" \
                'log_history:uinteger' \
                'compressafter:uinteger' \
                'sadc_options:string' \
                'sa_dir:string' \
                'zip:string' \
                'enabled:string'
}

start_sysstat_instance() {
        [ "$2" = 0 ] || {
                echo "validation failed"
                return 1
        }

        [ -d /var/log/sa] || mkdir -p /var/log/sa--统计信息保存到/var/log/sa中。

        {
                echo "HISTORY=$log_history"
                echo "COMPRESSAFTER=$compressafter"
                echo "SADC_OPTIONS=\"$sadc_options\""
                echo "SA_DIR=\"$sa_dir\""
                echo "ZIP=\"$zip\""
                echo "ENABLED=\"$enabled\""
        } > $SYSSTAT_CFG--写到/etc/sysstat/sysstat配置文件中。

        procd_open_instance
        procd_set_param command $PROG -S ALL -F -L 1 100 - --每隔1秒,记录100秒的统计信息。
        procd_set_param file $SYSSTAT_CFG
        procd_close_instance
}

start_service() {
        validate_sysstat_section sysstat start_sysstat_instance
}

service_triggers()
{
        procd_add_reload_trigger "sysstat"
        procd_add_validation validate_sysstat_section
}

3 sar使用

sadc(System Activity Data Collector)是 sysstat 工具集的核心数据收集器,负责以二进制格式持续采集并存储系统性能数据。它是sar 报告的基础数据源,通常在后台以守护进程方式运行。

sadc支持的选项包括:

选项参数格式功能描述使用示例
-C <comment> 在数据文件中添加注释文本 sadc -C "Startup_Monitor" outfile
-D 使用本地时间替代 UTC 时间戳 sadc -D 60 5 datafile
-F 强制创建输出文件(即使没有数据) sadc -F /tmp/empty_data
-f 从标准输入读取时间戳(cron 调度模式专用) echo $(date +%s) | sadc -f
-L 启用大文件支持(>2GB 文件) sadc -L 300 - sa_large
-V 显示版本信息并退出 sadc -V
-S <subset> 指定采集的数据子集
可用值:
INTDISKIPV6POWER,
SNMPXDISKALLXALL
sadc -S DISK,SNMP 300 2 disk_net.dat

  支持的采样周期和路径:

<interval> 数字 采集间隔时间(秒) 60(每60秒采集)
<count> 数字 采集次数 10(采集10次)
<outfile> 文件路径 输出文件路径(默认:/var/log/sa/saDD /var/log/custom_sa

-S 数据子集选项详解:

子集监控内容适用场景
INT 中断统计 高并发服务诊断
DISK 全局磁盘 I/O(读写总量/IOPS) 存储性能分析
IPV6 IPv6 网络协议统计 IPv6 网络监控
POWER CPU 频率/功耗统计 功耗优化/节能分析
SNMP IP/TCP/UDP/ICMP 网络层协议统计 网络问题排查
XDISK 每设备详细磁盘统计(每个磁盘的独立指标) 多磁盘系统分析
ALL 基础组合:CPU + 内存 + 全局磁盘 + SNMP 常规系统监控
XALL 完整组合:ALL + XDISK + INT + IPV6 + POWER 深度性能分析

sar(System Activity Reporter)是 Linux 系统性能监控的核心工具之一,属于 sysstat 工具包。它用于收集、报告和保存系统活动信息,帮助分析 CPU、内存、磁盘 I/O、网络等资源的使用情况。

选项报告名称监控内容示例命令
-B Paging statistics 分页统计(缺页/换入换出) sar -B 1 3
-b I/O statistics I/O 和传输速率(TPS/吞吐量) sar -b 5 10
-d Block devices 块设备统计(每磁盘读写) sar -d -p 1 5
-F Filesystems 文件系统统计(挂载点使用率) sar -F MOUNT 60
-H Hugepages 大页内存利用率 sar -H
-I Interrupts 中断统计(指定中断或SUM/ALL) sar -I SUM 2 5
-m Power management 电源管理统计(需关键字) sar -m CPU,FAN 1 1
-M Power utilization 完整电源管理(CPU频率/风扇/温度等) sar -M
-n Network 网络统计(需关键字) sar -n DEV 1 5
-q System load 系统负载和压力停滞统计 sar -q LOAD,CPU
-r Memory utilization 内存利用率(物理+Swap) sar -r ALL 5 3
-S Swap utilization 交换空间利用率 sar -S
-u CPU utilization CPU利用率(用户/系统/空闲) sar -u ALL 1
-v Kernel tables 内核表状态(inode/文件句柄) sar -v
-W Swapping 交换活动统计 sar -W
-w Task creation 任务创建和上下文切换 sar -w
-y TTY devices TTY设备活动 sar -y

4 sar分析

如下查看CPU占用率和内存利用率:

sar -ur -f /var/log/sadc.data > /var/log/sadc.log

 5 kSar可视化分析

 

posted on 2025-06-22 23:59  ArnoldLu  阅读(174)  评论(0)    收藏  举报

导航