手游业务拓展到东南亚,登录服延迟飙到200ms+?玩家还没进游戏就流失了,买量成本直接打水漂。要命的是,直连CN2晚高峰拥塞严重,丢包率能到5%以上。
用香港节点做中转网关,配合BGP多线接入和内核TCP参数调优,实测能把登录延迟压到80ms内。首屏加载稳得一批,次日留存率直接拉高15个点。
香港节点做网关实测数据
先甩一组mtr数据。从香港机房到曼谷,走CMI线路平均延迟68ms,丢包率0.2%。走PCCW线路延迟72ms,丢包率0.3%。这数据拿来当登录服网关完全够用。
但有个前提:必须开BBR2拥塞控制,不然晚高峰TCP窗口缩得厉害。内核参数net.ipv4.tcp_congestion_control设为bbr,net.core.default_qdisc设为fq,这两行不写,延迟直接翻倍。
sysctl -w net.ipv4.tcp_congestion_control=bbr
sysctl -w net.core.default_qdisc=fq
# 验证是否生效
lsmod | grep bbr
tc qdisc show dev eth0三种路由方案延迟对比
| 路由路径 | 平均延迟 | 丢包率 | 月成本 | 适用场景 |
|---|---|---|---|---|
| 直连CN2到东南亚 | 180-250ms | 2-5% | 低 | 测试环境 |
| 香港BGP中转 | 60-90ms | <0.5% | 中 | 登录服网关 |
| 新加坡本地节点 | 10-30ms | <0.1% | 高 | 游戏逻辑服 |
(别问我怎么知道的,上周刚被直连CN2的丢包坑过,玩家投诉登录卡住,查了半天才发现是国际出口拥塞。)
登录服网关调优避坑指南
千万别用香港网关做实时PVP对战服。MOBA、FPS这类对延迟敏感到毫秒级的游戏,必须上新加坡或曼谷本地节点。香港中转只适合登录认证、好友列表、商城这类非实时业务。
MTU不匹配是隐形杀手。香港到东南亚链路MTU通常1492,但你服务器默认1500,TCP握手时PMTU Discovery要是被防火墙挡了,就会疯狂分片。抓包看IP头DF位,用tcpdump抓一下SYN包大小。
TCP Window Scale必须开。默认窗口64KB在高延迟链路根本不够用,登录请求排队等确认,延迟直接拉满。检查net.ipv4.tcp_window_scaling是不是1,不是就改。
NAT透传IP别忘。香港网关做NAT后,东南亚玩家IP全变成同一个,反作弊和风控直接瞎掉。Nginx加一行proxy_set_header X-Real-IP $remote_addr,或者上Proxy Protocol。
关于作者:老张,IDC圈摸爬滚打12年,专治各种网络延迟不服。平时爱写点排障笔记,数据都是实机测的,不吹不黑。
香港服务器延迟问题还在困扰你?马上测一下你的登录服真实延迟,超过150ms就该换路由了。