云计算百科
云计算领域专业知识百科平台

服务器流量监控与性能优化实战

服务器流量监控与性能优化实战指南:从原理到生产环境全方位解析

基于真实生产环境的深度技术文档,涵盖流量监测、异常诊断、带宽优化、安全防御四大核心模块


文章目录

  • 服务器流量监控与性能优化实战指南:从原理到生产环境全方位解析
    • 一、流量基础概念详解
      • 1.1 网络流量的物理本质
      • 1.2 流量计量单位深度解析
        • 1.2.1 存储单位 vs 传输单位
        • 1.2.2 云服务器带宽规格对照表
      • 1.3 上行流量与下行流量的业务含义
        • 1.3.1 不同业务类型的流量特征
        • 1.3.2 生产环境数据分析
    • 二、Linux 流量监测技术栈
      • 2.1 内核级监测:/proc 文件系统
        • 2.1.1 /proc/net/dev 深度解析
        • 2.1.2 /sys/class/net 实时统计
      • 2.2 系统级监测:sar 命令(sysstat 包)
        • 2.2.1 安装与配置
        • 2.2.2 常用命令详解
        • 2.2.3 输出字段详解
      • 2.3 应用级监测:专业流量工具
        • 2.3.1 iftop – 实时流量排行
        • 2.3.2 nethogs – 按进程统计流量
        • 2.3.3 vnstat – 流量历史记录
        • 2.3.4 iptraf-ng – 综合网络监控
    • 三、生产环境实战数据分析
      • 3.1 当前服务器流量画像
        • 3.1.1 累计流量分析
        • 3.1.2 实时流量趋势(3 秒采样)
      • 3.2 流量健康度评估
        • 3.2.1 错误率分析
        • 3.2.2 带宽利用率评估
      • 3.3 业务类型推断
    • 四、流量异常诊断与排查
      • 4.1 常见流量异常类型
        • 4.1.1 异常流量特征矩阵
      • 4.2 诊断流程 SOP
      • 4.3 实战排查命令集
        • 4.3.1 快速诊断脚本
        • 4.3.2 攻击流量识别
      • 4.4 应急响应措施
        • 4.4.1 临时封禁 IP
        • 4.4.2 带宽限制
    • 五、带宽优化与成本控制
      • 5.1 带宽优化技术栈
        • 5.1.1 内容压缩
        • 5.1.2 缓存策略
        • 5.1.3 CDN 加速
      • 5.2 云厂商带宽计费模式
        • 5.2.1 计费方式对比
        • 5.2.2 成本优化建议
    • 六、自动化监控方案搭建
      • 6.1 基础监控脚本
      • 6.2 定时任务配置
      • 6.3 Grafana + Prometheus 监控方案
        • 6.3.1 安装 Node Exporter
        • 6.3.2 Prometheus 配置
        • 6.3.3 Grafana 仪表盘
    • 七、附录:命令速查手册
      • 7.1 流量监测命令速查
      • 7.2 故障排查命令速查
      • 7.3 日志分析命令速查
    • 总结
      • 核心要点回顾
      • 建议

一、流量基础概念详解

1.1 网络流量的物理本质

网络流量本质上是数据包在网络介质中的传输。理解这一点需要从 OSI 七层模型说起:

应用层 (HTTP/FTP/SMTP) → 产生业务数据

传输层 (TCP/UDP) → 分段、端口标识

网络层 (IP) → 路由、寻址

数据链路层 (Ethernet) → 帧封装、MAC 地址

物理层 (电缆/光纤) → 比特流传输

每一次网络请求的流量构成:

┌─────────────────────────────────────────────────┐ │ 完整数据包结构 │ ├─────────────────────────────────────────────────┤ │ 以太网头 (14 字节) │ IP 头 (20 字节) │ TCP 头 (20 字节) │ 应用数据 │ └─────────────────────────────────────────────────┘ ↓ 协议开销约 54 字节/包

重要提示:实际传输流量 = 应用数据 + 协议开销。小文件传输时,协议开销占比可达 30% 以上。


1.2 流量计量单位深度解析

1.2.1 存储单位 vs 传输单位
场景单位符号换算基准示例
数据存储 Byte B 1024 进制 文件大小 5MB
网络传输 bit b 1000 进制 带宽 100Mbps

换算公式:

带宽 (Mbps) → 实际速度 (MB/s) 100 Mbps ÷ 8 = 12.5 MB/s (理论最大值) 100 Mbps ÷ 8 × 0.85 ≈ 10.6 MB/s (实际可用值,考虑协议开销)

1.2.2 云服务器带宽规格对照表
带宽规格理论下行理论上行适用场景月流量估算
1 Mbps 128 KB/s 128 KB/s 个人博客 ~30 GB
5 Mbps 640 KB/s 640 KB/s 企业官网 ~150 GB
10 Mbps 1.25 MB/s 1.25 MB/s 小型电商 ~300 GB
50 Mbps 6.25 MB/s 6.25 MB/s 中型平台 ~1.5 TB
100 Mbps 12.5 MB/s 12.5 MB/s 视频/下载站 ~3 TB
1 Gbps 125 MB/s 125 MB/s 大型数据中心 ~30 TB

注意:以上月流量按 80% 带宽利用率、全天满载计算,实际使用通常为 20-40%。


1.3 上行流量与下行流量的业务含义

1.3.1 不同业务类型的流量特征
业务类型上行占比下行占比流量特征说明
Web 服务器 70-90% 10-30% 响应数据远大于请求数据
文件下载站 85-95% 5-15% 几乎全是出站流量
视频点播 90-98% 2-10% 视频流大量外发
API 网关 60-75% 25-40% JSON 响应通常大于请求
数据库主库 55-65% 35-45% 数据同步、备份外发
爬虫服务器 15-30% 70-85% 大量抓取外部数据
邮件服务器 50-60% 40-50% 收发相对均衡
游戏服务器 65-75% 25-35% 状态同步、广播消息
1.3.2 生产环境数据分析

服务器角色:Web 应用服务器
监测时间:2026-06-07 17:07
网卡:eth0 (主业务网卡)

┌────────────────────────────────────────────────────┐
│ 累计流量统计 │
├────────────────────────────────────────────────────┤
│ 下行 (RX): 20.15 GB (11.9%) ← 用户请求 │
│ 上行 (TX): 147.35 GB (88.1%) → 服务器响应 │
│ 总计:167.50 GB │
└────────────────────────────────────────────────────┘

流量比:TX/RX = 7.31 : 1
业务判断:典型的 Web 服务/内容分发型服务器

深度解读:

  • 上行流量占绝对主导(88.1%)- 说明服务器主要对外发送数据
  • 流量比 7.3:1 – 符合 Web 应用特征(HTTP 响应通常比请求大 5-10 倍)
  • 无 Docker 流量 – docker0 网卡 DOWN 状态,容器服务未运行
  • 本地回环流量大(82GB×2)- 说明内部服务间通信频繁

  • 二、Linux 流量监测技术栈

    2.1 内核级监测:/proc 文件系统

    2.1.1 /proc/net/dev 深度解析

    cat /proc/net/dev

    完整输出示例:

    Inter-| Receive | Transmit
    face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
    lo: 88336624427 164859979 0 0 0 0 0 0 88336624427 164859979 0 0 0 0 0 0
    eth0: 21132850892 108723814 0 0 0 0 0 0 158221074309 131260936 0 0 0 0 0 0

    字段详解:

    列名含义正常值异常判断
    bytes 累计字节数 持续增长 突增需关注
    packets 累计数据包数 持续增长
    errs 错误数 0 >0 表示硬件/驱动问题
    drop 丢弃数 0 >0 表示缓冲区满/防火墙丢弃
    fifo FIFO 缓冲错误 0 >0 表示驱动问题
    frame 帧错误 0 >0 表示物理层问题
    compressed 压缩包数 通常 0
    multicast 多播包数 视网络而定
    colls 冲突数 0 (全双工) >0 表示网络冲突
    carrier 载波错误 0 >0 表示物理连接问题

    自动化解析脚本:

    #!/bin/bash
    # 获取 eth0 实时流量

    RX_BYTES=$(cat /sys/class/net/eth0/statistics/rx_bytes)
    TX_BYTES=$(cat /sys/class/net/eth0/statistics/tx_bytes)
    RX_PACKETS=$(cat /sys/class/net/eth0/statistics/rx_packets)
    TX_PACKETS=$(cat /sys/class/net/eth0/statistics/tx_packets)
    RX_ERRORS=$(cat /sys/class/net/eth0/statistics/rx_errors)
    TX_ERRORS=$(cat /sys/class/net/eth0/statistics/tx_errors)

    echo "========== eth0 流量统计 =========="
    echo "下行流量:$(echo "scale=2; $RX_BYTES/1024/1024/1024" | bc) GB"
    echo "上行流量:$(echo "scale=2; $TX_BYTES/1024/1024/1024" | bc) GB"
    echo "下行包数:$RX_PACKETS"
    echo "上行包数:$TX_PACKETS"
    echo "下行错误:$RX_ERRORS"
    echo "上行错误:$TX_ERRORS"
    echo "=================================="


    2.1.2 /sys/class/net 实时统计

    # 实时读取(无缓存,最准确)
    cat /sys/class/net/eth0/statistics/rx_bytes # 下行字节
    cat /sys/class/net/eth0/statistics/tx_bytes # 上行字节
    cat /sys/class/net/eth0/statistics/rx_packets # 下行包数
    cat /sys/class/net/eth0/statistics/tx_packets # 上行包数

    # 持续监控(每秒刷新)
    watch -n 1 'cat /sys/class/net/eth0/statistics/tx_bytes'


    2.2 系统级监测:sar 命令(sysstat 包)

    2.2.1 安装与配置

    # CentOS/Alibaba Cloud Linux
    yum install sysstat -y
    systemctl enable sysstat
    systemctl start sysstat

    # Ubuntu/Debian
    apt install sysstat -y
    # 编辑 /etc/default/sysstat,设置 ENABLED="true"

    2.2.2 常用命令详解

    # 实时监测(每秒刷新,共 10 次)
    sar -n DEV 1 10

    # 查看今日历史数据
    sar -n DEV

    # 查看指定日期数据
    sar -n DEV -f /var/log/sa/sa04 # 查看本月 4 日数据

    # 查看特定网卡
    sar -n DEV 1 5 -i eth0

    # 输出详细统计(含错误率)
    sar -n EDEV 1 5

    2.2.3 输出字段详解

    11:07:19 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
    11:07:19 PM eth0 17.00 21.00 1.82 21.11 0.00 0.00 0.00 0.00

    字段含义单位关注阈值
    IFACE 网卡名称
    rxpck/s 每秒接收包数 包/秒 >10000 需关注
    txpck/s 每秒发送包数 包/秒 >10000 需关注
    rxkB/s 每秒接收数据 KB/s 根据带宽评估
    txkB/s 每秒发送数据 KB/s 根据带宽评估
    rxcmp/s 压缩接收包 包/秒 通常 0
    txcmp/s 压缩发送包 包/秒 通常 0
    rxmcst/s 多播包 包/秒 视网络而定
    %ifutil 带宽利用率 百分比 >70% 需扩容

    2.3 应用级监测:专业流量工具

    2.3.1 iftop – 实时流量排行

    # 安装
    yum install iftop -y # CentOS
    apt install iftop -y # Ubuntu

    # 基本使用
    iftop -i eth0 # 监测 eth0 网卡
    iftop -P -n -i eth0 # 显示端口 + 数字 IP

    # 过滤特定 IP
    iftop -i eth0 -F 192.168.1.0/24

    界面解读:

    192.168.1.100
    0.5KB ▲ │
    1.2KB │ ▼
    10.0.0.50

    • ▲ 表示流入(下行)
    • ▼ 表示流出(上行)
    • 左侧数字表示流量大小

    2.3.2 nethogs – 按进程统计流量

    # 安装
    yum install nethogs -y
    apt install nethogs -y

    # 使用
    nethogs eth0 # 按进程显示流量
    nethogs -t eth0 # 文本模式(适合脚本)
    nethogs -v 2 eth0 # 显示累计流量

    输出示例:

    PID USER PROGRAM DEV SENT RECEIVED
    1234 nginx nginx: worker process eth0 15.2 KB 128.5 KB
    5678 mysql mysqld eth0 8.1 KB 45.3 KB


    2.3.3 vnstat – 流量历史记录

    # 安装并初始化
    yum install vnstat -y
    vnstat -u -i eth0 # 初始化 eth0 网卡统计

    # 查看统计
    vnstat # 汇总统计
    vnstat -l # 实时模式
    vnstat -d # 按日统计
    vnstat -m # 按月统计
    vnstat -h # 按小时统计

    输出示例:

    eth0 / 100 Mbit/s (ethernet)
    ============================
    est. current month: 45.2 GiB

    Day | rx | tx | total | avg. rate
    —————————–+————+————-
    01 | 1.2 GiB | 8.5 GiB | 9.7 GiB | 256 kbit/s
    02 | 1.5 GiB | 9.2 GiB | 10.7 GiB | 298 kbit/s


    2.3.4 iptraf-ng – 综合网络监控

    # 安装
    yum install iptraf-ng -y
    apt install iptraf-ng -y

    # 运行(交互式界面)
    iptraf-ng

    功能包括:

    • 实时流量统计
    • TCP/UDP 连接监控
    • 数据包大小分布
    • 网络接口统计

    三、生产环境实战数据分析

    3.1 当前服务器流量画像

    ╔════════════════════════════════════════════════════════════╗
    ║ 服务器流量档案 ║
    ╠════════════════════════════════════════════════════════════╣
    ║ 服务器类型:Alibaba Cloud 3 (Soaring Falcon)
    ║ CPU 配置:2 核心 ║
    ║ 内存配置:1871 MB ║
    ║ 主网卡:eth0 (100 Mbps 估计)
    ║ 监测时间:2026-06-07 17:07 ║
    ╚════════════════════════════════════════════════════════════╝

    3.1.1 累计流量分析
    指标数值占比业务含义
    下行累计 20.15 GB 12.0% 用户请求、文件上传
    上行累计 147.35 GB 88.0% 网页响应、文件下载
    回环流量 164.54 GB 内部服务通信
    总业务流量 167.50 GB 100% 对外服务总量
    3.1.2 实时流量趋势(3 秒采样)

    时间戳 下行 (KB/s) 上行 (KB/s) 带宽利用率
    ─────────────────────────────────────────────────────
    23:07:19 1.82 21.11 0.02%
    23:07:20 0.59 8.24 0.01%
    23:07:21 0.00 0.00 0.00%
    ─────────────────────────────────────────────────────
    平均 0.80 9.78 0.01%

    趋势分析:

  • 流量波动大 – 峰值与谷值相差 20 倍以上
  • 间歇性请求 – 存在无请求时段(23:07:21 为 0)
  • 上行主导 – 上行平均是下行的 12 倍
  • 带宽充足 – 利用率仅 0.01%,扩容空间大

  • 3.2 流量健康度评估

    3.2.1 错误率分析
    错误类型下行上行状态
    errs(错误) 0 0 ✅ 正常
    drop(丢弃) 0 0 ✅ 正常
    fifo(缓冲) 0 0 ✅ 正常
    frame(帧) 0 0 ✅ 正常
    colls(冲突) 0 0 ✅ 正常
    carrier(载波) 0 0 ✅ 正常

    结论:网络连接质量优秀,无硬件/驱动问题。

    3.2.2 带宽利用率评估

    当前带宽利用率:0.01%
    ├── < 30% ✅ 健康区间(当前)
    ├── 30-60% ⚠️ 关注区间
    ├── 60-80% ⚠️ 预警区间
    └── > 80% ❌ 危险区间(需扩容)


    3.3 业务类型推断

    基于流量特征分析:

    特征观测值推断业务
    TX/RX 比 7.3:1 Web 服务/API 服务
    平均上行 9.78 KB/s 中小型网站
    流量波动 间歇性访问
    回环流量 多服务架构
    Docker 流量 非容器化部署

    综合判断:这是一台传统架构的 Web 应用服务器,运行 Nginx+ PHP/Python/Java + MySQL 组合。


    四、流量异常诊断与排查

    4.1 常见流量异常类型

    4.1.1 异常流量特征矩阵
    异常类型下行变化上行变化包速率典型原因
    CC 攻击 ↑↑↑ ↑↑ 极高 HTTP 洪水攻击
    DDoS 攻击 ↑↑↑↑ 极高 流量淹没攻击
    数据泄露 ↑↑↑ 中高 敏感数据外传
    爬虫刷量 ↑↑ ↑↑ 恶意爬虫
    配置错误 正常 重复响应/循环
    备份任务 ↑↑ 定时备份外传
    同步异常 ↑↑ ↑↑ 数据同步风暴

    4.2 诊断流程 SOP

    ┌─────────────────────────────────────────────────────────┐
    │ 流量异常诊断流程图 │
    └─────────────────────────────────────────────────────────┘

    发现异常


    ┌───────────────┐
    1. 确认异常类型 │ ──→ sar -n DEV 1 10(实时监测)
    └───────────────┘


    ┌───────────────┐
    2. 定位来源 IP │ ──→ iftop -P -n -i eth0
    └───────────────┘


    ┌───────────────┐
    3. 分析请求特征 │ ──→ tail -f /var/log/nginx/access.log
    └───────────────┘


    ┌───────────────┐
    4. 确定应对策略 │ ──→ 防火墙/限流/扩容
    └───────────────┘


    ┌───────────────┐
    5. 实施并验证 │ ──→ 再次监测确认恢复
    └───────────────┘


    4.3 实战排查命令集

    4.3.1 快速诊断脚本

    #!/bin/bash
    # 流量异常快速诊断脚本

    echo "========== 流量异常诊断报告 =========="
    echo "时间:$(date)"
    echo ""

    # 1. 实时流量
    echo "【1. 实时流量】"
    sar -n DEV 1 3 | tail -5

    # 2. 连接数统计
    echo ""
    echo "【2. TCP 连接统计】"
    netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    # 3. 来源 IP 排行
    echo ""
    echo "【3. 来源 IP TOP10】"
    netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10

    # 4. 错误统计
    echo ""
    echo "【4. 网卡错误统计】"
    cat /proc/net/dev | grep eth0 | awk '{print "下行错误:"$3, "上行错误:"$10, "下行丢弃:"$4, "上行丢弃:"$11}'

    echo ""
    echo "======================================"

    4.3.2 攻击流量识别

    # 检查单一 IP 高频请求
    awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

    # 检查特定 URI 高频请求
    awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

    # 检查异常 User-Agent
    awk -F'"' '{print $6}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

    # 检查 4xx/5xx 错误率
    awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn


    4.4 应急响应措施

    4.4.1 临时封禁 IP

    # 使用 iptables 封禁
    iptables -A INPUT -s 192.168.1.100 -j DROP

    # 使用 firewall-cmd(CentOS 7+)
    firewall-cmd –permanent –add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
    firewall-cmd –reload

    # 使用 Nginx 限流
    # 在 nginx.conf 中添加:
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    location / {
    limit_req zone=one burst=20 nodelay;
    }

    4.4.2 带宽限制

    # 使用 tc 命令限制带宽
    tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms

    # 恢复默认
    tc qdisc del dev eth0 root


    五、带宽优化与成本控制

    5.1 带宽优化技术栈

    5.1.1 内容压缩

    # Nginx Gzip 配置
    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/xml text/javascript
    application/javascript application/xml+rss
    application/json application/xml;

    压缩效果对比:

    文件类型原始大小Gzip 后压缩率
    HTML 100 KB 25 KB 75%
    CSS 50 KB 10 KB 80%
    JavaScript 200 KB 60 KB 70%
    JSON 80 KB 15 KB 81%

    5.1.2 缓存策略

    # 静态资源缓存
    location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
    access_log off;
    }

    # 动态内容缓存
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m;
    location /api/ {
    proxy_cache my_cache;
    proxy_cache_valid 200 10m;
    proxy_cache_valid 404 1m;
    }


    5.1.3 CDN 加速

    CDN 流量对比:

    场景源站流量CDN 流量节省比例
    无 CDN 100 GB
    静态资源 CDN 40 GB 60 GB 60%
    全站 CDN 15 GB 85 GB 85%

    主流 CDN 价格参考(2026 年):

    服务商价格(元/GB)免费额度
    阿里云 CDN 0.24 10 GB/月
    腾讯云 CDN 0.23 10 GB/月
    七牛云 CDN 0.21 10 GB/月
    Cloudflare 免费 不限

    5.2 云厂商带宽计费模式

    5.2.1 计费方式对比
    计费方式适用场景成本估算优点缺点
    按固定带宽 流量稳定 100 元/5Mbps/月 可预测、unlimited 流量 闲置浪费
    按使用流量 流量波动大 0.8 元/GB 用多少付多少 突发成本高
    按 95 峰值 大型企业 协商定价 削峰填谷 门槛高
    按日峰值月平均 中型企业 协商定价 平衡成本 计算复杂
    5.2.2 成本优化建议

    当前配置估算:
    ├── 带宽:假设 5 Mbps
    ├── 月流量:167.5 GB(根据监测数据推算)
    ├── 按固定带宽:约 100 元/月
    └── 按流量计费:约 134 元/月(167.5 × 0.8)

    优化建议:
    1. ✅ 启用 CDN – 预计节省 60% 源站流量
    2. ✅ 开启 Gzip – 预计减少 70% 文本传输
    3. ✅ 配置缓存 – 减少重复请求
    4. ✅ 图片优化 – WebP 格式节省 30%
    5. ✅ 懒加载 – 减少首屏流量


    六、自动化监控方案搭建

    6.1 基础监控脚本

    #!/bin/bash
    # /usr/local/bin/bandwidth_monitor.sh

    # 配置
    ETH="eth0"
    THRESHOLD_RX=10485760 # 10 MB/s
    THRESHOLD_TX=10485760 # 10 MB/s
    LOG_FILE="/var/log/bandwidth.log"
    ALERT_EMAIL="admin@example.com"

    # 获取流量
    RX_BYTES=$(cat /sys/class/net/$ETH/statistics/rx_bytes)
    TX_BYTES=$(cat /sys/class/net/$ETH/statistics/tx_bytes)

    # 等待 1 秒再次获取
    sleep 1
    RX_BYTES2=$(cat /sys/class/net/$ETH/statistics/rx_bytes)
    TX_BYTES2=$(cat /sys/class/net/$ETH/statistics/tx_bytes)

    # 计算速率
    RX_RATE=$((RX_BYTES2 RX_BYTES))
    TX_RATE=$((TX_BYTES2 TX_BYTES))

    # 记录日志
    echo "$(date) RX: $RX_RATE bytes/s, TX: $TX_RATE bytes/s" >> $LOG_FILE

    # 告警判断
    if [ $RX_RATE -gt $THRESHOLD_RX ] || [ $TX_RATE -gt $THRESHOLD_TX ]; then
    echo "⚠️ 带宽告警!RX: $RX_RATE, TX: $TX_RATE" | mail -s "带宽监控告警" $ALERT_EMAIL
    logger "带宽告警:RX=$RX_RATE, TX=$TX_RATE"
    fi


    6.2 定时任务配置

    # 添加到 crontab
    crontab -e

    # 每分钟执行一次监控
    * * * * * /usr/local/bin/bandwidth_monitor.sh

    # 每天生成流量报告
    0 23 * * * /usr/local/bin/daily_bandwidth_report.sh


    6.3 Grafana + Prometheus 监控方案

    6.3.1 安装 Node Exporter

    # 下载
    wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
    tar xvfz node_exporter-*.tar.gz
    cd node_exporter-*/

    # 启动
    ./node_exporter &

    # systemd 服务
    cat > /etc/systemd/system/node_exporter.service <<EOF
    [Unit]
    Description=Node Exporter
    After=network.target

    [Service]
    Type=simple
    ExecStart=/usr/local/bin/node_exporter

    [Install]
    WantedBy=multi-user.target
    EOF

    systemctl enable node_exporter
    systemctl start node_exporter

    6.3.2 Prometheus 配置

    # prometheus.yml
    scrape_configs:
    job_name: 'node'
    static_configs:
    targets: ['localhost:9100']
    metrics_path: /metrics

    6.3.3 Grafana 仪表盘

    推荐导入仪表盘 ID:

    • 1860 – Node Exporter Full
    • 10408 – Linux Server Metrics
    • 13659 – Network Traffic Dashboard

    七、附录:命令速查手册

    7.1 流量监测命令速查

    命令功能示例
    cat /proc/net/dev 查看网卡统计 cat /proc/net/dev
    sar -n DEV 历史流量统计 sar -n DEV 1 10
    iftop 实时流量排行 iftop -P -n -i eth0
    nethogs 进程流量统计 nethogs eth0
    vnstat 流量历史记录 vnstat -d
    iptraf-ng 综合网络监控 iptraf-ng
    watch 持续监控 watch -n 1 'cat /sys/class/net/eth0/statistics/tx_bytes'

    7.2 故障排查命令速查

    命令功能示例
    netstat -an 查看连接 `netstat -an
    ss -s 连接统计 ss -s
    tcpdump 抓包分析 tcpdump -i eth0 port 80
    mtr 路由追踪 mtr www.example.com
    ping 连通性测试 ping -c 4 8.8.8.8
    traceroute 路径追踪 traceroute www.example.com

    7.3 日志分析命令速查

    命令功能示例
    tail -f 实时查看日志 tail -f /var/log/nginx/access.log
    awk 日志分析 `awk ‘{print $1}’ access.log
    grep 日志过滤 grep "404" access.log
    goaccess 日志可视化 goaccess access.log -o report.html

    总结

    本文从理论基础到生产实践,全面讲解了服务器流量监控的完整知识体系:

    核心要点回顾

  • 流量本质 = 数据包传输总量,区分存储单位(Byte)和传输单位(bit)
  • 上下行含义 = 下行是接收(用户请求),上行是发送(服务器响应)
  • 监测工具链 = /proc(内核级)→ sar(系统级)→ iftop/nethogs(应用级)
  • 异常诊断 = 流量监测 → 来源定位 → 日志分析 → 应急处理
  • 优化方向 = 压缩 + 缓存 + CDN + 合理计费模式
  • 自动化监控 = 脚本 + 定时任务 + Prometheus/Grafana
  • 建议

    • 部署实时流量监控脚本
    • 配置带宽告警阈值(建议 70%)
    • 启用 Gzip 压缩
    • 评估 CDN 接入必要性
    • 建立流量异常应急响应流程

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 服务器流量监控与性能优化实战
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!