1.
前言与准备事项
首先确认你的 VPS 网络接口名称(通常是 eth0、ens3 或 venet0),用命令 ip addr 或 ifconfig 查看;准备具备 root 权限的账号、能编辑 crontab 与安装软件(apt/yum)。本指南以 Debian/Ubuntu 为例,CentOS 可用 yum 替换 apt。
2.
常见带宽计费方式概述
台湾 VPS 常见三种计费:按月峰值包宽(买 1M 即限速至 1Mbps);按月流量(GB/月);95th 百分位计费(按五分钟采样取第95百分位)。先读服务商合同,明确单位(Mbps 或 MByte)与计费周期。
3.
如何确认服务商计费口径
登录控制面板或查看合同,关注“计费指标”:是否为流量(Transfer)、带宽最大值(Bandwidth cap)或 95th。若不明确,向客服索要样例账单与计算方法示例,保存邮件作为凭证。
4.
安装监控工具(vnStat 用于月流量)
安装:sudo apt update && sudo apt install -y vnstat。配置:编辑 /etc/vnstat.conf 指定接口(Interface "eth0"),然后 systemctl enable --now vnstat。验证:vnstat -i eth0 查看实时数据库。
5.
用 vnStat 查看月度与日流量
命令示例:vnstat -m -i eth0 查看月流量汇总;vnstat -d -i eth0 日流量;vnstat -tr 300 -i eth0 做实时 5 分钟测试。把 vnstat 输出写入脚本做告警即可。
6.
实时带宽监控(诊断峰值)
安装 iftop / bmon / nload:sudo apt install -y iftop bmon nload。执行 iftop -i eth0 查看实时连接带宽峰值;nload 和 bmon 提供历史短期曲线用于排查短突发流量。
7.
基于 /sys 采样计算 95th 的思路
95th 需定期(通常每 5 分钟)记录进出字节数,计算该 5 分钟间平均带宽(Mbps),保存样本一个月,排序去除顶部 5% 样本,剩余最大值即为 95th。下面给出脚本与 crontab 示例。
8.
采样脚本(每 5 分钟)
创建 /usr/local/bin/sample_net.sh,内容(示例说明,可粘贴到文件并 chmod +x):读取当前 total = rx_bytes+tx_bytes,和上次 total 取差 delta,Mbps = delta*8/(300*1e6)。每次 append 到 /var/log/net_samples_eth0.log 格式:timestamp Mbps。注意替换接口名。
9.
crontab 设置
用 root crontab -e 添加:*/5 * * * * /usr/local/bin/sample_net.sh >/dev/null 2>&1。该任务每 5 分钟产生一个样本,月内产生约 12*24*30=8640 条样本,足够计算 95th。
10.
计算 95th 的命令示例
假设样本文件一列数值(Mbps),可用:n=$(wc -l < net_samples.txt); idx=$(printf "%.0f" "$(echo "($n*0.95 + 0.999)" | bc)"); sort -n net_samples.txt | sed -n "${idx}p" 得到 95th 值。也可用 awk 或 python 做更精确处理。
11.
结合 vnStat 与 95th 做双轨监控
用 vnStat 负责月度流量核对(避免超流量计费),用采样脚本计算 95th 以对照服务商峰值账单。每月结算前把两个数据点导出并截图保存,作为申诉依据。
12.
告警与自动化(超阈值邮件或钉钉)
在计算脚本加入阈值判断:若本次 Mbps 超过比如 0.9*计费带宽(1M 的 0.9),则触发邮件或 webhook。可用 mailx 发送:echo "告警" | mailx -s "带宽告警" you@example.com,或用 curl 调钉钉机器人 URL 发送 JSON。
13.
问:怎样判断我的 VPS 是按 95th 计费还是按流量计费?
14.
答:查看合同/控制面板账单条目:若账单显示“95th”或“Bandwidth(95th)”则为 95th;若显示“Transfer/GB”或“流量计费”则按流量。若仍不清楚,向客服索要计费示例与计算公式,并保留对话记录。
15.
问:如果监控结果与服务商账单不一致怎么办?
16.
答:先导出你本地监控数据(vnstat 报表、采样文件、iftop 截图),与服务商账单时间段对比;向客服提供数据、时间戳与截图,要求对方给出他们的采样点与计算过程,必要时提交工单或申请人工复核。
17.
问:小流量短突发会被 95th 收费吗?
18.
答:95th 用 5 分钟或自定义采样窗口统计,极短(<5 分钟)的突发通常被稀释到样本中;但如果突发持续超过采样窗口,可能进入样本并影响 95th。建议用 iftop 定期排查突发来源并设置告警。
来源:台湾vps1m带宽计费方式与实际用量监控实战指南