sar(System Activity Reporter)是 Linux 系统性能监控工具sysstat套件的一部分,它用于收集、显示和存储各种系统性能数据,包括 CPU、内存、磁盘、网络等使用情况。
1. sar 命令基本格式
bash
sar [选项] [间隔秒数] [次数]
2. sar -n 网络数据
参数说明
| 参数 | 说明 | 示例命令 |
|---|---|---|
DEV |
网络接口的统计信息 | sar -n DEV 1 |
EDEV |
网络接口的错误统计信息 | sar -n EDEV 1 |
NFS |
NFS 客户端统计信息 | sar -n NFS 1 |
NFSD |
NFS 服务器统计信息 | sar -n NFSD 1 |
SOCK |
IPv4 套接字统计信息 | sar -n SOCK 1 |
IP |
IPv4 数据包流量统计 | sar -n IP 1 |
EIP |
IPv4 错误数据包统计 | sar -n EIP 1 |
ICMP |
ICMP 协议的流量统计 | sar -n ICMP 1 |
EICMP |
ICMP 协议的错误数据包统计 | sar -n EICMP 1 |
TCP |
TCP 协议的流量统计 | sar -n TCP 1 |
ETCP |
TCP 协议的错误数据包统计 | sar -n ETCP 1 |
UDP |
UDP 协议的流量统计 | sar -n UDP 1 |
SOCK6 |
IPv6 套接字统计信息 | sar -n SOCK6 1 |
IP6 |
IPv6 数据包流量统计 | sar -n IP6 1 |
EIP6 |
IPv6 错误数据包统计 | sar -n EIP6 1 |
ICMP6 |
ICMPv6 协议的流量统计 | sar -n ICMP6 1 |
EICMP6 |
ICMPv6 协议的错误数据包统计 | sar -n EICMP6 1 |
UDP6 |
UDPv6 协议的流量统计 | sar -n UDP6 1 |
FC |
Fibre Channel HBA(光纤通道硬件适配器)统计信息 | sar -n FC 1 |
示例 1. sar -n DEV 1 3 网络设备的流量统计
# sar -n DEV 1 3
Linux 4.4.0-131-generic (DKC-ISH-1-S0004) 03/03/2025 _x86_64_ (56 CPU)
09:10:50 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
09:10:51 AM neiwang-admin 20.00 20.00 1.17 1.46 0.00 0.00 0.00 0.00
09:10:51 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:10:51 AM eth3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:10:51 AM bond3 52.00 20.00 3.73 1.46 0.00 0.00 5.00 0.00
09:10:51 AM eth2 5633.00 789.00 7785.21 504.28 0.00 0.00 0.00 0.64
09:10:51 AM bond1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:10:51 AM bond0 5633.00 789.00 7785.21 504.28 0.00 0.00 0.00 0.64
09:10:51 AM eth5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:10:51 AM eth1 52.00 20.00 3.73 1.46 0.00 0.00 2.00 0.00
09:10:51 AM eth4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
09:10:51 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 3.00 0.00
返回字段说明
| 字段 | 含义 |
|---|---|
IFACE |
网络接口名称(如 eth0、wlan0、lo) |
rxpck/s |
每秒接收的数据包(packets)数量 |
txpck/s |
每秒发送的数据包数量 |
rxkB/s |
每秒接收的数据量(以 KB 计算) |
txkB/s |
每秒发送的数据量(以 KB 计算) |
rxcmp/s |
每秒接收的压缩数据包数量(通常用于 ISDN、PPP 连接等,普通以太网一般为 0) |
txcmp/s |
每秒发送的压缩数据包数量 |
rxmcst/s |
每秒接收的多播(multicast)数据包数量 |
%ifutil |
接口的使用率,即当前网络流量占最大带宽的百分比(仅适用于部分支持的网络设备) |
示例 2. sar -n TCP,ETCP 监控 TCP 连接的状态
# sar -n TCP,ETCP 1
Linux 4.4.0-131-generic (DKC-ISH-1-S0004) 03/03/2025 _x86_64_ (56 CPU)
08:55:34 AM active/s passive/s iseg/s oseg/s
08:55:35 AM 0.00 4.00 1100.00 1426.00
08:55:34 AM atmptf/s estres/s retrans/s isegerr/s orsts/s
08:55:35 AM 0.00 0.00 0.00 0.00 0.00
返回字段说明
第一部分 (TCP 协议数据)
| 字段 | 含义 |
|---|---|
active/s |
每秒主动打开的 TCP 连接数(本地程序主动发起,如 connect() 调用) |
passive/s |
每秒被动打开的 TCP 连接数(远程主机发起,如 listen() 后的 accept() 调用) |
iseg/s |
每秒接收的 TCP 段(segments)数量 |
oseg/s |
每秒发送的 TCP 段数量 |
第二部分 (ETCP,扩展 TCP 数据)
| 字段 | 含义 |
|---|---|
atmptf/s |
每秒尝试建立的失败 TCP 连接数 |
estres/s |
每秒 TCP 连接建立失败的重试次数 |
retrans/s |
每秒 TCP 段重传的数量(可能表示网络丢包) |
isegerr/s |
每秒接收到的有错误的 TCP 段数 |
orsts/s |
每秒发送的 TCP 复位(RST)报文数量(表示连接被强制关闭) |
3. sar 其他参数
| 选项 | 描述 | 示例 |
|---|---|---|
-u |
显示 CPU 使用情况 | sar -u 2 5 |
-q |
显示系统负载(load average)和进程队列 | sar -q 2 5 |
-r |
显示内存使用情况 | sar -r 2 5 |
-B |
显示分页(page)统计信息 | sar -B 2 5 |
-W |
显示交换(swap)统计信息 | sar -W 2 5 |
-b |
显示 I/O 传输速率 | sar -b 2 5 |
-d |
显示各个设备的磁盘 I/O 使用情况 | sar -d 2 5 |
-S |
显示 swap 交换区使用情况 | sar -S 2 5 |
-f /var/log/sa/saXX |
读取历史日志(XX 为日期) | sar -f /var/log/sa/sa10 |
-A |
显示所有可用的统计数据 | sar -A 2 5 |