1.
前期准备与需求收集
(1)收集历史日志:获取过去至少30天的访问日志、流量图和请求并发数据;(2)确定业务SLA:峰值延迟、丢包率和容忍的降级策略;(3)明确机房规格:机柜数、光缆入户位置、是否需要直连骨干或IX(互联网交换点)。
2.
流量与容量估算(详细计算公式)
(1)计算峰值带宽:峰值带宽(bps)=峰值并发连接 * 平均响应包大小(bytes) * 8 / 平均响应时间(s)。举例:峰并发10000,平均响应50KB,响应时间0.5s,则bps=10000*51200*8/0.5≈8.192Gbps;(2)加冗余与突发系数:至少乘以1.3~1.5作为容灾和突发缓冲;(3)转成端口单位:把结果向上取整到常见端口:1G/10G/40G。
3.
机房与拓扑设计
(1)选择PoP位置:靠近用户集群与骨干交换点,减少回程延迟;(2)接入冗余:建议至少双链路、双运营商或双入口机柜,链路类型确定为10G/40G以太网或光纤直连;(3)交换/路由架构:两层或三层冗余,核心使用支持BFD+BGP多路径的设备。
4.
带宽采购与对等策略
(1)跟运营商谈判:提供带宽端口(10G/40G)、中转/骨干对等点和交付时间;(2)计费模式确认:月固定端口费、按95峰值计费或按流量计费,要求合同中明确峰值计算口径和取样间隔;(3)签署交叉连接(cross-connect)与SLA条款,明确故障响应时间。
5.
路由、对等与IP规划
(1)BGP配置:预留AS号,配置多对等点、路由策略和社区标记以控制流量分发;(2)IP段规划:为每个机房和设备分配子网,预留NAT/Anycast所需IP;(3)测试:上线前在测试环境验证路由收敛、故障切换和优先级策略。
6.
监控、计量与账单计算实现
(1)数据采集:在核心汇聚口启用sFlow/NetFlow/IPFIX或定期SNMP(ifInOctets/ifOutOctets)采样,采样间隔建议30s以内以保证精度;(2)计费算法:实现95th percentile算法——对每5分钟采样值取峰值序列,去除最上位5%,取最大值作为计费基线;(3)按流量计费:累加计量周期内上行与下行字节,注意运营商是否按字节或包头计费;(4)数据存储与校验:把原始采样写入时序数据库(Prometheus/InfluxDB)并保留归档用于对账。
7.
实现细节与脚本化
(1)采样处理:编写脚本将SNMP字节计数转换为bps(delta/秒),并按5分钟窗口计算平均/最大;(2)95计费脚本示例思路:收集N个5分钟窗口值,排序后丢弃最高的5%,取剩余最大值;(3)自动化对账:每天生成计费报告,和运营商账单字段逐条比对并标记异常。
8.
落地测试与验收步骤
(1)压力模拟:使用流量发生器(如wrk、iperf或自研工具)按峰值与突发模式施压,验证链路饱和下的丢包与延迟;(2)计费验证:在测试周期内生成可控流量并比对本地计量值与运营商流量/峰值;(3)演练故障切换:断开主链路,验证BGP切换时间与流量恢复。
9.
运维与扩容策略
(1)告警门槛:设置70%/85%/95%阈值告警并配置自动扩容预案;(2)扩容流程:当长期利用率>70%且业务增长趋势持续时,提前与运营商沟通端口扩容或新增链路;(3)成本控制:对95峰值模式做趋势分析,评估是否改为按流量计费更经济。
10.
常见问题答疑一
问:如何准确计算机房带宽峰值以避免过度采购? 答:先用历史日志得出峰值并发与平均响应体积,按公式计算峰值bps,乘以1.3~1.5冗余系数;结合业务增长率和CDN缓存命中率调整;若不确定,选择可弹性扩容的互联方案并设置告警。
11.
常见问题答疑二
问:95峰值计费与按流量计费如何选择? 答:95峰值适合短时突发且稳定基线流量的场景,峰值弹性较好;按流量适合持续高流量且峰值不太突出的业务。通过历史账单对比两种模型成本再决定。
12.
常见问题答疑三
问:如何保证计费数据与运营商账单一致发生争议时能对账? 答:保留原始采样(NetFlow/SNMP)并存档,按运营商口径实现相同窗口与取样算法,定期做对账脚本并在合同中约定争议处理流程与账单明细要求。