查最近5分钟瞬时速率峰值应运行sar -n dev 1 300,取rxkb/s和txkb/s列最大值;该值为采样周期内平均速率,非严格瞬时值,且仅保留最近5分钟数据、不存盘。

查最近5分钟瞬时速率峰值用 sar -n DEV
要拿到真正“秒级爆发”的峰值,sar 是唯一能直接给出数值的系统级工具,但它只管最近 5 分钟,且不存盘。运行:sar -n DEV 1 300(每秒采一次,共 300 次),输出里找 rxkB/s 和 txkB/s 列的最大值——这就是这 5 分钟内出现过的最高瞬时速率。
常见踩坑点:
- 直接跑
sar -n DEV:它读的是上一次缓存,不是当前实时值 - 用
sar -n DEV 60 1想看“1 分钟平均”:得到的是模糊均值,完全抓不到峰值 - 查
/var/log/sa/sa$(date -d yesterday +%d)却找不到文件:说明sysstat服务没启用,或/etc/cron.d/sysstat被注释了
查日/月级“最高小时平均流量”用 vnstat
vnstat 的 “peak” 不是秒级峰值,而是某天里最忙那一小时的平均速率(单位 KB/s),本质是“日均最高小时流量”。它靠轮询 /proc/net/dev 实现,数据持久、不丢、不依赖 root。
必须先初始化才能用:
- 绑定网卡:
sudo vnstat -u -i eth0(漏掉-i会写进lo,后续全错) - 首次采集至少等 5 分钟(默认间隔),
vnstat -l显示的“实时”其实是最近 2 分钟滑动均值 - 查当天每小时峰值:
vnstat -h;查每日最高小时流量:vnstat -d | grep "max"
别指望 iftop 或 nload 给你历史峰值
iftop 界面里的 peak 是自启动以来的最高瞬时值,关掉就清零;nload 的 Max 也是当前会话内最大值,且默认每 500ms 刷新一次,短于这个时间的毛刺根本捕获不到。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
它们适合盯活口,不适合查记录——没有历史,就没有“峰值记录”可言。
真要抓秒级突发,得自己轮询 /proc/net/dev
如果业务对毛刺敏感(比如金融报文、实时音视频),sar 和 vnstat 都不够细。这时得自己写脚本,每 100ms 读一次 /proc/net/dev,算差值再取最大:
watch -n 0.1 'cat /proc/net/dev | awk '\''NR==3 {print $2,$10}'\'' | awk '\''{rx=$1; tx=$2; if(NR==1){orx=rx;otx=tx; next} print "RX:",(rx-orx)/0.1/125000, "TX:",(tx-otx)/0.1/125000; orx=rx;otx=tx}'\''
注意:/proc/net/dev 的计数器是累加字节数,换算成 Mbps 要除以 125000(不是 1024×1024),因为 1 Mbps = 1,000,000 bps ÷ 8 = 125,000 Bps。
复杂点在于:这个差值受采样间隔抖动影响大,且需自己处理 wraparound(计数器溢出回绕)。实际部署中,vnstat 看趋势,sar 做故障复盘,秒级毛刺只能定制轮询——没有统一接口,只有分层取舍。










