sar命令
sar(System Activity Reporter)作为Linux综合性系统监控工具,其网络监控功能具备实时采集与历史回放双重能力,可精准监控网卡收发速率、数据包统计、协议层状态、网络错误等多维度指标,弥补单一网络工具(如ifstat)缺乏历史数据与协议层监控的短板。与sar的CPU、内存监控能力联动,能快速定位“网络瓶颈是否引发系统性能下降”,是运维人员排查网络故障、分析带宽占用、复盘历史网络异常的核心工具,隶属于sysstat工具集。
一、sar网络监控基础准备
1.1 安装与验证
sar属于sysstat工具集,最小化安装系统需手动部署,安装方式与其他sysstat工具一致:
# CentOS/RHEL系列
yum install -y sysstat
# Ubuntu/Debian系列
apt-get install -y sysstat
# 验证安装(同时确认网络监控模块可用)
sar -n DEV 1 1 # 执行1次网络监控测试,无报错即正常
1.2 核心语法(网络监控专属)
# 实时网络监控语法
sar -n <监控类型> [采集间隔秒数] [采集次数] [选项]
# 历史网络数据回放语法
sar -n <监控类型> -f <历史数据文件路径> [-s 起始时间] [-e 结束时间]
# 关键说明:
# 1. -n <监控类型>:网络监控核心选项,必须指定具体类型(如DEV、EDEV),不支持默认值;
# 2. 采集间隔+次数:无次数时无限采集(需Ctrl+C终止),次数为0时同理;
# 3. 历史文件:默认存储于/var/log/sa/(CentOS)或/var/log/sysstat/(Ubuntu),文件名为saXX(二进制)。
1.3 网络监控核心类型(-n选项取值)
sar网络监控通过不同类型覆盖“网卡硬件-协议层-套接字”全链路,日常高频类型如下,按使用场景分类说明:
# 一、网卡硬件层面(最常用,聚焦收发与错误)
DEV:监控所有网卡的基础收发指标(速率、包数),日常巡检首选;
EDEV:监控网卡的错误与丢弃统计(丢包、CRC错误等),排查网络故障核心。
# 二、网络协议层面(深入分析协议运行状态)
IP:监控IP协议统计(收发数据包数、错误数、分片数),排查IP层异常;
TCP:监控TCP协议核心指标(连接数、重传数、收发字节数),分析TCP连接瓶颈;
UDP:监控UDP协议统计(收发数据包数、错误数),适配UDP服务(如DNS、日志收集);
ICMP:监控ICMP协议统计(收发请求/响应数、错误数),排查ping不通等问题。
# 三、套接字层面(监控网络连接总数)
SOCK:监控系统套接字状态(已使用数、TCP/UDP套接字数),判断连接数是否超限。
# 四、组合监控(同时查看多类指标,用逗号分隔)
例:sar -n DEV,EDEV 2 3 # 同时监控网卡收发与错误指标,每2秒采集一次,共3次
二、核心网络监控场景输出解读
以下针对日常高频网络监控场景,结合输出结果拆解核心指标,明确判断标准,同时联动系统性能指标(如CPU、I/O),形成完整排查逻辑。
2.1 网卡基础收发监控(sar -n DEV 2 3)
执行sar -n DEV 2 3(每2秒采集一次网卡基础数据,共3次),聚焦网卡带宽占用与包收发频率,是日常巡检核心命令:
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 01/28/2026 _64_ )
04:30:00 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
04:30:02 PM eth0 3.50 2.00 0.22 0.15 0.00 0.00 0.00
04:30:04 PM eth0 2.00 1.50 0.13 0.11 0.00 0.00 0.00
04:30:06 PM eth0 4.00 2.50 0.25 0.18 0.00 0.00 0.00
Average: eth0 3.17 2.00 0.20 0.15 0.00 0.00 0.00 (4 CPU _x86
核心字段解读
IFACE:网卡名称(与ip addr、ifconfig显示一致,如eth0、ens33、bond0,lo为回环网卡,可忽略);rxpck/s、txpck/s:每秒接收、发送的数据包数(核心包量指标),异常增高可能是网络攻击(如DDOS)或小数据包频繁传输;rxkB/s、txkB/s:每秒接收、发送的数据量(单位KiB,核心带宽指标),换算为MiB需除以1024,换算为Mbps需乘以8/1024; 示例:rxkB/s=125000 → 125000KiB/s ≈ 122MiB/s ≈ 1000Mbps(千兆网卡满速);rxcmp/s、txcmp/s:每秒接收、发送的压缩数据包数(通常为0,仅在开启网络压缩时生效);rxmcst/s:每秒接收的组播数据包数(正常网络中占比极低,异常增高可能是组播风暴)。
指标判断标准
结合网卡带宽与业务场景:千兆网卡rxkB/s+txkB/s持续接近125000(≈1000Mbps),万兆网卡接近1250000(≈10Gbps),说明带宽接近满负荷;rxpck/s持续超过10000且rxkB/s偏低,说明存在大量小数据包传输,可能消耗CPU资源(需联动sar -u查看%system是否升高)。
2.2 网卡错误与丢弃监控(sar -n EDEV 2 3)
执行sar -n EDEV 2 3(每2秒采集一次网卡错误数据,共3次),排查丢包、CRC错误、帧错误等硬件或链路问题,是网络故障定位核心:
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 01/28/2026 _x86_64_ (4 CPU)
04:35:00 PM IFACE rxerr/s txerr/s rxdrop/s txdrop/s rxfifo/s txfifo/s
04:35:02 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00
04:35:04 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00
04:35:06 PM eth0 0.00 0.00 0.00 0.00 0.00 0.00
Avera 0.00 0.00 0.00 0.00 0.00 0.00ge: eth0
核心字段解读
rxerr/s、txerr/s:每秒接收、发送的错误数据包数(核心故障指标),大于0说明存在链路或网卡硬件问题;rxdrop/s、txdrop/s:每秒接收、发送时丢弃的数据包数(核心丢包指标),大于0可能是带宽满负荷、网卡缓存不足或内核参数配置不当;rxfifo/s、txfifo/s:每秒接收、发送队列溢出的数据包数(队列满导致丢包),大于0说明网卡缓存不足,需调整内核网络参数(如net.core.somaxconn)。
常见故障关联
- rxerr/s>0:优先排查物理链路(网线、交换机端口)、网卡硬件故障;
- rxdrop/s>0且rxkB/s接近带宽上限:带宽满负荷导致丢包,需扩容带宽或限制非核心业务;
- rxfifo/s>0:网卡接收缓存不足,需调整内核参数(如net.core.netdev_max_backlog)。
2.3 TCP协议监控(sar -n TCP 2 3)
执行sar -n TCP 2 3(每2秒采集一次TCP协议数据,共3次),分析TCP连接状态与传输质量,适配Web、数据库等TCP服务:
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 01/28/2026 _x86_64_ (4 CPU)
04:40:00 PM active/s passive/s iseg/s oseg/s
04:40:02 PM 0.00 0.00 10.50 8.00
04:40:04 PM 0.00 0.00 9.00 7.50
04:40:06 PM 0.00 0.00 11.00 8.50
Average: 0.00 0.00 10.17 8.00
补充说明:部分Linux发行版(如CentOS 8+、Ubuntu 20.04+)支持更详细的TCP指标(需sysstat版本≥12.0),输出含重传数、连接数等:
04:45:00 PM active/s passive/s iseg/s oseg/s retrans/s estab/s
04:45:02 PM 0.00 0.00 10.00 8.00 0.00 5.00
核心字段解读
active/s:每秒主动发起的TCP连接数(如客户端发起的连接,对应connect系统调用);passive/s:每秒被动接受的TCP连接数(如服务端监听的连接,对应accept系统调用);iseg/s、oseg/s:每秒接收、发送的TCP段数(TCP数据以段为单位传输,反映TCP传输频率);retrans/s:每秒TCP重传段数(核心质量指标),大于0说明网络不稳定、丢包导致重传,需联动EDEV指标排查丢包;estab/s:当前建立的TCP连接数(持续过高可能导致服务端连接数超限)。
2.4 历史网络数据回放(sar -n DEV -f /var/log/sa/sa27 -s 14:00:00 -e 14:30:00)
回放指定时间段的网卡收发历史数据,用于复盘网络异常(如业务高峰带宽突增、历史丢包),输出格式与实时监控一致,仅增加时间范围限制:
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 27/2026 _ PU)
14:00:01 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
14:10:01 PM eth0 5.00 3.00 0.32 0.21 0.00 0.00 0.00
14:20:01 PM eth0 80.00 60.00 5.12 3.84 0.00 0.00 0.00
14:30:01 PM eth0 6.00 4.00 0.38 0.25 0.00 0.00 0.00
Average: eth0 30.33 22.33 1.94 1.43 0.00 0.00 0.00 (4 C_x86_64 01/
解读:从历史数据可见14:20左右eth0的rxpck/s、txpck/s突增,对应业务高峰时段的网络请求增长,可联动CPU监控(sar -u -f sa27)判断是否因网络请求导致CPU负载升高。
三、sar网络监控实战场景示例
3.1 日常网络带宽巡检(推荐)
sar -n DEV,EDEV 2 5 -h # 每2秒采集一次,共5次,同时监控收发与错误,可读格式
# 重点观察rxkB/s、txkB/s(带宽占用)和rxerr/s、rxdrop/s(错误与丢包),快速排查基础网络问题
3.2 排查TCP重传与丢包问题
sar -n DEV,EDEV,TCP 1 10 # 同时监控网卡收发、错误、TCP重传,每1秒采集一次,共10次
# 若retrans/s>0且rxdrop/s>0,说明丢包导致TCP重传,优先排查带宽或链路问题
3.3 复盘历史网络异常(故障溯源)
# 回放27日15:00-15:10期间的网卡错误数据,排查当时是否存在丢包
sar -n EDEV -f /var/log/sa/sa27 -s 15:00:00 -e 15:10:00
# 导出历史数据为文本,便于后续分析
sar -n DEV -f /var/log/sa/sa27 -s 15:00:00 -e 15:10:00 > sar_network_log_27.txt
3.4 监控指定网卡(排除无关网卡干扰)
# 仅监控eth0网卡的收发情况,每3秒采集一次,无限采集
sar -n DEV 3 | grep eth0
# 适合服务器有多块网卡(如业务网卡eth0、管理网卡eth1)的场景,聚焦核心网卡
3.5 长期采集网络数据(自定义存储)
# 每5秒采集一次网卡收发与TCP数据,无限采集并保存到指定文件
sar -n DEV,TCP 5 0 -o /data/sar_network_data.sar
# 后续可通过sar -n DEV -f /data/sar_network_data.sar 回放数据,适合长期跟踪网络趋势
四、关键误区与注意事项
- 误区:忽略回环网卡(lo)数据 sar默认显示所有网卡,lo(回环网卡)的rxkB/s、txkB/s仅反映系统内部进程通信(如本地服务调用),与外部网络无关,排查外部网络问题时需过滤lo(如grep -v lo),避免误判带宽占用。
- 历史数据与系统时间同步 回放历史数据时,需确保系统时间准确(与采集时一致),否则-s、-e参数指定的时间范围可能无数据;若历史文件缺失,需检查sysstat服务是否正常运行(systemctl status sysstat)。
- 指标单位换算误区 sar网络速率单位默认是KiB/s(1KiB=1024字节),而非KB/s(1KB=1000字节),换算为Mbps需乘以8/1024(如125000KiB/s ×8/1024≈1000Mbps),避免因单位换算错误导致带宽评估偏差。
- 协议层指标与硬件指标联动 仅TCP重传(retrans/s>0)无法定位根因,需联动EDEV(是否丢包)、DEV(带宽是否满)、CPU(%system是否升高)综合判断:是链路丢包、带宽满负荷,还是CPU处理能力不足导致TCP连接异常。
- 权限与文件访问限制历史数据文件(saXX)默认仅root用户可读取,普通用户需通过sudo权限访问;自定义存储数据文件时,需确保存储目录有足够空间(长期采集可能生成大容量文件)。
- 不同系统的sar版本差异 低版本sysstat(如CentOS 7默认版本)的TCP监控指标较简略,无retrans/s、estab/s等字段,需升级sysstat版本(yum update sysstat)才能获取完整协议层指标。
五、补充说明
sar网络监控的核心优势在于“多维度联动+历史回放”,可与sar的CPU、内存、磁盘I/O监控能力结合,快速定位“网络-系统”联动故障(如网络丢包导致CPU等待、带宽满负荷导致业务响应变慢)。若需更精细化的网络监控(如按端口统计带宽、抓包分析),可配合iftop(端口级带宽监控)、tcpdump(抓包)、nload(实时带宽可视化)等工具,形成“宏观统计-微观分析”的完整网络排查体系。此外,sar网络数据可通过脚本解析,提取核心指标(如rxkB/s、retrans/s),实现自动化告警与趋势分析。

浙公网安备 33010602011771号