游戏卡顿白皮书 › L6 服务器网卡
网卡带宽饱和 NIC bandwidth saturation
原因 ID nic-saturate · 主责 研发团队·服务器开发 · 配合 运维团队·系统运维
在含图示和实验的完整版中打开此卡片 →
流量用到 1 Gbps、10 Gbps 网卡的极限时,发送队列会越排越长,最终数据包被丢弃。
起因 广播增多,发送量达到网卡极限 → 结果 发送队列变长,溢出后丢弃 → 画面表现 全服延迟、丢包(操作延迟、瞬移)
- 症状
- 操作延迟, 瞬移
- 因素
- 延迟, 丢包
- 谁会遇到
- 全服
- 何时出现
- 人多的时候
- 负责方
- 主责 研发团队·服务器开发 · 配合 运维团队·系统运维
- 研发团队要做的事
- 减少发送量(AOI 过滤、压缩、只发增量)。
- 运维团队要做的事
- 升级网卡(换更快的网卡,云上换更大的实例);对网卡利用率设告警。
- 监控图上
- 触顶后走平 · 网卡发送量、发送丢弃
- 查看位置
- 把 sar -n DEV 1 的 txkB/s 和 %ifutil(相对接口速率的利用率)与网卡速率、实例带宽对比,同时看 ip -s link 的 TX dropped
- 确认依据
- 发送量在网卡或实例带宽附近走平,从那时起发送丢弃和全服延迟增加
- 排除依据
- 带宽有余量,则不是这个原因。小包多且有丢包,看“超出云 PPS 上限”
- 确认手段
- 运维工具即可确认(无需游戏代码)
出处
- Interface statistics Linux kernel
tx_dropped:因资源不足在发送过程中丢弃的包数 - Amazon EC2 instance network bandwidth AWS
实例可用的带宽由 vCPU 数(实例大小)决定 - sar(1) — Linux manual page sysstat
-n DEV 的 rxkB/s、txkB/s 和 %ifutil(相对接口速率的利用率)
相关原因
同一层:L6 服务器网卡
其他层中同样导致“操作延迟”的原因
查看含图示和实验的原卡片