
先理清楚,游戏云服务器和普通用来放网站、存数据的云服务器,需求到底有什么不一样。第一个不同是负载特性。普通的网站服务器,大部分时间请求量很低,只有偶尔访问高峰才会跑高负载,空闲的时候资源浪费是常态。但游戏服务器不一样,只要开服,每一个在线玩家的操作都需要实时处理,哪怕只有十个玩家,负载也是持续稳定存在的。而且不同类型的游戏,资源消耗的差异极大,回合制卡牌的联机服和开放世界沙盒的服,资源需求能差出十倍以上。
第二个不同是网络要求。普通网站对延迟的容忍度很高,页面加载多花两三百毫秒,几乎没人能察觉。但游戏对延迟和抖动的要求苛刻很多,操作反馈延迟每多一百毫秒,玩家就能明显感觉到操作跟手性下降,如果抖动超过三十毫秒,还会出现技能放不出去、角色瞬移这类严重影响体验的问题。很多游戏云服务器推荐里会强调大带宽,其实对绝大多数小型联机游戏来说,每个玩家的流量消耗通常不到一百kbps,十个玩家总流量也才不到一兆带宽,额外的大带宽完全用不上,真正重要的是网络路由的质量,也就是你的服务器到玩家客户端的链路跳数多不多,有没有绕路。
第三个不同是数据可靠性。普通网站如果出问题,大不了回滚最近的备份,影响范围不会太大。但游戏服务器的存档是实时更新的,如果因为磁盘故障或者服务器不稳定丢了存档,对玩家来说是很难接受的损失,尤其是长期开放的服务器,这点格外重要。
接下来分不同场景说具体的判断思路。第一个场景是小范围多人使用,十人到五十人以内的联机服,比如内部测试的游戏demo,或是几个朋友一起玩的模组服。这个场景下,很多找游戏云服务器推荐的朋友最容易踩的坑,就是过度配置。我见过有人做二十人以内的回合制联机服,选了十六核三十二G的配置,大部分资源从来都没用过,完全没有必要。
这个场景下怎么判断配置?你可以先在本地测试,跑起来之后看服务端占用的内存和CPU,再留出一倍左右的冗余就足够。比如本地跑起来,十个玩家占了五百M内存,那选一G到两G的内存就够了。CPU方面,大部分小型游戏的服务端都是单线程为主,所以优先看单核的性能,而不是总核心数多少。如果你的游戏没有太多复杂计算,单核足够支撑五十人以内的在线,完全不需要多核。网络方面,如果你能确定所有玩家都用同一家运营商的网络,那选对应运营商的服务器就可以,延迟一般都很低。如果玩家来自不同运营商,那需要选支持多线BGP的服务器,怎么判断质量?不需要看别人的结论,自己找两三个不同运营商的朋友,用常规的ping工具测五分钟,看平均延迟和抖动。平均延迟低于五十毫秒,抖动小于十毫秒,体验就很好;如果平均延迟超过一百毫秒,抖动超过三十毫秒,哪怕给再大带宽也不适合。
第二个场景是长期开放的中型社区服,五十人到三百人在线的那种。这个场景下,除了前面说的CPU、网络,还有两个容易被忽略的点。第一个是磁盘IO性能。很多游戏服务器需要频繁读写玩家数据、地图区块,如果你用的云磁盘性能不够,高峰期就会出现卡顿,甚至掉档。我之前遇到过一个案例,朋友开的方块游戏服务器,每天晚上高峰都会卡几分钟,排查了半天发现,服务器用的是经济型云磁盘,高峰期IO等待占了CPU时间的百分之四十,换了高性能云磁盘之后,问题直接解决了。所以这个场景下,不要为了压缩成本用性能太差的磁盘,至少要选随机读写性能达标、IO延迟在十毫秒以内的产品。第二个是监控和冗余。长期开服不可能天天盯着,所以服务器本身要有基础的监控功能,能看CPU、内存、带宽的实时占用,出了异常能发告警。另外,要预留至少百分之三十的资源冗余,避免偶尔的活动带来玩家增长,直接把服务器跑卡。还要记得开自动备份,定期把存档传到独立的存储位置,这点不要嫌麻烦,真出问题的时候能省很多事。
第三个场景是需要大量实时计算的特殊游戏服务器,比如多人沙盒物理模拟、大型模组整合包这类服务端。这类场景对硬件的要求和前两种完全不一样,很多找游戏云服务器推荐的朋友容易在这里踩大坑。这类游戏的服务端,大部分核心计算逻辑都跑在单个线程上,所以单核性能是第一瓶颈,和总核心数关系不大。我之前帮朋友排查过一个问题,他选了八核的云服务器,总CPU占用才百分之三十,但是二十个人就卡的没法玩。后来查了才发现,游戏服务端所有的模拟计算都绑定在第一个vCPU核心上,他买的是共享型服务器,这个核心是和其他租户共享物理核心的,高峰期被抢占了算力,频率上不去,所以卡。后来换成了高频率的独占物理核心,哪怕只有两核,体验也好了很多。所以这种场景下,优先选高频率的独占核心,不要盲目堆核心数,很多时候单核频率高一百MHz,体验提升都很明显。
这里再整理几个常见的误区,都是我接触下来,很多人找游戏云服务器推荐的时候容易犯的。第一个误区:配置越高越好。很多人会觉得,选更高规格的配置肯定不会出错,其实完全不是这样。游戏服务器的瓶颈大多在单核性能和网络,不是总核心数和总内存,我见过很多人花了几倍的成本买高配置,结果瓶颈在网络,体验根本没提升。第二个误区:只看带宽不看路由。刚才已经说过了,大部分游戏用不了太大带宽,路由不好,延迟高,带宽再大也没用。很多宣传的大带宽,对游戏服务器来说大多是营销属性大于实用属性。第三个误区:忽略基础安全配置。很多人搭完服务端就直接开服,防火墙都不配置,所有端口都开放,远程管理还用默认端口和弱密码,结果用了没几天就被入侵,存档被删,服务器被占用跑其他任务,这种案例我见过不止一次。哪怕只是三五好友玩的小服,也不要觉得没人会盯上就跳过这些步骤,现在网络上自动扫描弱密码和开放端口的工具很多,碰上了就是麻烦事。不管是小服还是大服,基础安全配置一定要做:只开放需要用的端口,也就是游戏端口和必须的管理端口,其他端口全部屏蔽;远程管理端口不要用默认的,密码要用强密码,有条件的限制登录IP;定期更新系统和服务端的补丁,这些步骤花不了十分钟,但能避免百分之九十以上的入侵风险。第四个误区:不测试直接开正式服。
很多人拿到服务器,自己连上去试了一下不卡,就直接开服拉玩家进来,结果开服之后才发现,别的地区的玩家连不上,或者高峰卡,这时候再换服务器还要转存档,很麻烦。正确的做法是,拿到服务器之后先测两三天,重点测三个东西:第一,高峰时段的负载和网络,你预计的高峰是什么时候,就那个时段连续测几个小时,看有没有掉包,有没有卡顿;第二,不同网络环境的连接,找不同地区不同运营商的朋友帮忙测试,不要只测自己的网络;第三,模拟异常情况,比如重启服务器,看存档会不会损坏,有没有办法快速恢复。
其实游戏云服务器推荐的核心,从来都不是哪款产品一定好,而是要匹配自己的需求。不同的场景,需求差很多,别人用着好的配置,放到你的场景里可能完全不合适。你要先理清楚自己有多少玩家,是什么类型的游戏,对稳定性有什么要求,再根据这些条件去判断,比盲目照搬游戏云服务器推荐的方案靠谱很多。