游戏卡顿白皮书 › L6 服务器网卡
超出云 PPS 上限 Cloud PPS / bandwidth allowance
原因 ID nic-cloud-pps · 主责 运维团队·系统运维 · 配合 研发团队·服务器开发, 外部·外部
在含图示和实验的完整版中打开此卡片 →
云服务器每种规格都有每秒包数和带宽上限,超出部分会被悄悄丢弃。
起因 同时在线人数增加,每秒包数超过实例上限 → 结果 云网络丢弃超出部分 → 画面表现 原因不明的丢包导致瞬移、吞技能。服务器 CPU 有余量
- 症状
- 瞬移, 吞操作/回档
- 因素
- 丢包
- 谁会遇到
- 全服
- 何时出现
- 人多的时候, 晚高峰
- 负责方
- 主责 运维团队·系统运维 · 配合 研发团队·服务器开发, 外部·外部
- 研发团队要做的事
- 合并数据包(一个 tick 的消息放进一个包);避免频繁发送极小的包。
- 运维团队要做的事
- 查看超限计数器(AWS 为 pps_allowance_exceeded、conntrack_allowance_exceeded 等)并设告警;换更大的实例;连接跟踪上限通过不产生跟踪的安全组配置来规避。
- 外部要做的事
- 向云厂商询问各实例规格的每秒包数和连接跟踪上限。
- 数值参考
- 上限因实例大小而异,每秒包数上限很多时候并不公开。小规格实例标称的“最高 10 Gbps”是只在积分未用完时(通常 5~60 分钟)才能达到的突发速率,平时的基准速率要低得多。
- 监控图上
- 触顶后走平 · 每秒包数、allowance 超限计数器
- 查看位置
- 以较短间隔采集 ethtool -S 中的 ENA 计数器 pps_allowance_exceeded、bw_in_allowance_exceeded、bw_out_allowance_exceeded、conntrack_allowance_exceeded,与每秒包数一起看。也可以用 CloudWatch 代理上报这些计数器并设告警
- 确认依据
- 丢包的时刻 allowance 超限计数器增加,每秒包数卡在某个值上不再上涨。服务器 CPU 有余量
- 排除依据
- 超限计数器不变,则不是这个原因。单个核心的 %soft 达到 100%,看“网卡中断集中在单个核心”
- 确认手段
- 运维工具即可确认(无需游戏代码)
- 深入了解
- conntrack_allowance_exceeded 表示连接跟踪表已满、新连接被丢弃。如果跟踪表还有余量,只是空闲连接因跟踪过期而断开,请看“云安全组连接跟踪过期”。
出处
- Monitor network performance for ENA settings on your EC2 instance AWS
每个实例都有带宽、PPS、连接跟踪上限,超出后先排队再丢弃;pps_allowance_exceeded、conntrack_allowance_exceeded 计数器 - Amazon EC2 instance network bandwidth AWS
16 vCPU 及以下实例的“最高 N Gbps”是靠网络 I/O 积分实现的突发(通常 5~60 分钟),积分用完后回到基准带宽
相关原因
同一层:L6 服务器网卡
其他层中同样导致“瞬移”的原因
查看含图示和实验的原卡片