游戏服的可观测跟普通业务不一样:要盯在线人数、帧延迟、卡顿和掉线率。本文讲怎么用日志、指标、链路定位玩家投诉的卡顿,以及开服高峰的告警策略。
Web 服务看 QPS、延迟、错误率就够了,游戏服还得盯在线人数(CCU)、帧同步延迟、掉线率、卡顿率,以及分区分服的负载分布。这些指标和"玩家体验"直接挂钩:CCU 突然掉一截,可能是某个大区服务器崩了;帧延迟飙高,可能是某个房间的网关扛不住。
建议按三个层面建指标:基础设施层(CPU/内存/磁盘/网络)、服务层(登录、匹配、战斗、支付各模块的延迟与错误率)、体验层(在线人数、帧延迟、掉线率、卡顿上报数)。体验层最贴近玩家,也最容易被忽略。
玩家投诉"团战卡",光看服务器 CPU 可能很正常。卡顿常常藏在链路里某一次调用:比如结算服务去数据库查了一笔慢 SQL,或者匹配服务调用第三方鉴权超时。用链路追踪可以做到:
一个常见根因:网关对单个长连接的写缓冲没做背压,一个慢客户端拖垮整个房间。这类问题只有 trace + 日志上下文一起看才能定位。
游戏的特点是流量尖峰极陡:开服、版本更新、活动上线,几分钟内 CCU 从几千冲到几十万。告警策略要跟着变:
另外要设"掉线率突增"这类体验告警,阈值设得很低(比如 5 分钟掉线率环比上涨 3 倍),因为掉线是玩家流失的直接信号,比 CPU 告警更该优先处理。
如果现在要上,建议按这个顺序:
先保证"出问题能定位",再追求"不出问题"。