游戏服里有三件不同的事:登录和账号、对局进程、补丁和资源下载。登录可以离账号库近,对局必须离会敲键盘的玩家近,下载可以走容量更大的端口甚至离玩家更近的文件节点。三件事放在「亚洲中间」的一座城市,每边玩家都多付一跳。

对局跟着玩家走
日本玩家的对局放 日本服务器 JP-TYO-E5-2620,房间多再上双路 东京双路服务器。韩国玩家放 韩国服务器。台湾本岛放 台北服务器。北美玩家放 西雅图服务器 或 洛杉矶服务器,按玩家更靠近哪边,不按哪边型号更全。
大陆玩家的登录和列表可以放 香港服务器,回调和排队怕抖时用 香港 CN2 GIA 服务器。对局进程不要为了和登录放在一起就留在香港,如果玩家其实在东京或首尔。登录多一次 40 毫秒往往能接受,对局里每次操作多 40 毫秒会被直接感觉到。多个游戏标题要绑不同地址时,用对应城市的 ST,例如 东京站群服务器,不要把 ST 理解成更低延迟的线路。
下载和清洗分开
补丁和安装包看容量,不看对局时延。大文件的放法见 大带宽服务器 和 跨境大带宽方案。会被扫的登录页可以放到 东京高防服务器 或 香港高防服务器。对局进程不要默认套进很严的清洗,误清洗会表现为全房间同时卡一下。清洗和业务带宽的差别见 高防的两套数字。
城市之间怎么比时延,见 日本和香港的游戏延迟。角色怎么拆,对照 游戏运营方案。上线前用玩家所在的网络进一局,记录从点击到服务器收到操作的时间,而不是记录机房到机房的 ping。
一局里建议记两个数:登录完成的时间,以及进房后连续二十次移动指令的往返中位数。登录慢、指令快,说明对局机器位置对,登录那一跳可以再优化。指令慢、登录快,说明进程离玩家远,应把进程迁到玩家所在城市,而不是把登录机器的 CPU 升一档。房间服的核数按同时在线的房间估。单路 E5 够用时就停。双路和 Gold 留给单房间逻辑重、或者房间数已经把单路打满的情况。玩家抱怨卡,先看指令中位数,再看 CPU。CPU 空着还卡,就是路径。
补丁发布日和比赛日不要叠在同一台的同一个端口上。补丁可以把下行打满,比赛的小包会排在大文件后面。文件放独立的下载地址,比赛进程的端口保持空。下载节点按玩家地区放,日本玩家不要全部从洛杉矶拉安装包。多标题共用登录时,登录可以集中在香港或玩家最多的城市,每个标题的对局仍按地区拆。ST 上的地址用来区分标题和区服,方便封禁和解析,不用来「降低 ping」。地址绑错区服,玩家会进到远方进程,体感就是突然变卡。
开服当天留三名不同网络的玩家同时进同一房间,对比三个人的指令中位数。三个人都慢,查进程所在机器和出口。只有一个人慢,查他的运营商到这台机器的路径,不要为此把整个区服从东京搬到香港。赛季结束后把闲置的云转码或临时房间缩掉,保留账号库和仍有玩家的区服。端口按赛季预约升高可以,不必全年按决赛日的容量包月。
新开一个地区时,先只搬对局进程和一份只读的账号缓存,登录主库先不动。这个地区的指令中位数降下来,再决定要不要把登录也拆过去。一次把登录、对局、下载全搬,出了问题无法知道是哪一段变好或变坏。房间满员时的 CPU 和空房时的指令时延分开记。满员卡、空房也卡,路径问题。满员卡、空房流畅,加核或拆房间,机器仍留在这个城市。用满员时的卡顿去换城市,会把算力问题误判成线路问题。
登录服和对局服的时钟保持同步,方便对日志。玩家说某一秒卡了一下,登录日志和对局日志能对上同一秒,才知道卡在哪一段。对不上,先修时间,再谈搬机器。下载节点的命中率单独看。命中率低,说明玩家仍在回源拉大文件,会把对局端口挤满。把热门补丁预热到玩家所在城市的节点,对局机器的带宽图应跟着下降。没下降,就是下载和对局还在用同一条端口。
预热完成后抽三个地区各下一个补丁,确认文件来自当地节点的地址,而不是又回到对局机器。地址不对就改下载域名,不必改对局所在的城市。