起航,大数据时代的承载者
近几年来,各行各业百花齐放,例如电竞的产生,现在网络游戏行业是一片火热,但是这个火热的背后少不了存储的承载。
举个例子,就拿王者荣耀来说,这是当代年轻人必玩的两个游戏之一(另一个是和平精英),它是属于MOBA类手游,以竞技对战为主,玩家之间可进行1V1,3V3,5V5等多种方式的PVP对战,还可以参加游戏的冒险模式,还有人机闯关模式,在满足条件后可以参加游戏排位赛等一系列让用户非常有体验感的操作安排,让人乐在其中,欲罢不能,所以它有个外号,叫“王者农药”。
火爆好玩的游戏意味着在线人数也多。王者荣耀平均每天在线人数大约将近300万人,而日活跃量高达750万人,这就意味着王者荣耀的服务器需要同时支持这么多人进行对战。
相信玩过的朋友都知道,在进入游戏时,需要选择游戏大区,QQ区还是微信区,IOS端,还是安卓端。
为什么有这样的分类?
以前我们的游戏,像第一代卡牌类休闲游戏,是属于弱交互游戏,那么对流量的需求不是很大。
再到第二代网游服务器,因为电脑与网络的普及使得我们越来越多的人接触到了互联网,互联网游戏也因此得到了发展,而此时的服务器架构主要采用还是分服模型。
分服虽然可以解决服务器扩展的瓶颈,但单台服务器在以前单线程的方式来运行,没办法充分利用服务器资源,遇到跨服战便无法进行。
所以均衡是很重要的,比如说,你放技能的及时响应,排位对战时一堆技能放出,怎么每个都准确反馈,不卡带,跨服时的对战等等。为了让服务器尽量变得均衡,进入游戏选择区服时,基本每个区都有200个以上的具体服务器,那么这就使得服务器变得更加均衡,可以配合更多的操作,让游戏体验顺畅无阻。
服务你们的它,你了解多少?
游戏上线后,服务器基本不能停,这将是一个长期运行的过程,并且它还要服务多个不定时,不定点的网络请求。所以要非常关注稳定性和性能。如果需要多个协作来提高承载能力,那么还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求,所以看似玩的很爽的游戏背后,是不为人知的辛勤付出,你了解多少呢?
首先服务器有三大结构:逻辑架构、通信模式、内存架构。
逻辑架构呢,就设计对于CPU调度的方案。设计方便同步、异步等不同的编程模型,主要提高服务器的稳定性和承载量。像是分区分服,世界服等这些方式,其实就是将相同功能模块划分到不同的服务器来处理。
通信模式呢,就是决定使用何种方式通讯。根据游戏类型不同,采用不同的通信模式,比如http,tcp,udp等,这个大家打开浏览器多关注网址开头就知道了。
最后是内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提高承载量,降低服务延迟。
功能约束,是架构设计决定性因素。基于游戏领域的功能特征,对服务器端系统来说,有以下几个特殊的需求:
1,对于游戏数据和玩家数据的存储
2,对玩家数据进行数据广播和同步
3,把一部分游戏逻辑在服务器上运算,做好验证,防止外挂。
玩游戏的都知道,玩游戏会产生数据,比如存档,还有实时数据,也就是你打游戏那些记录,成就等,这些数据可以存放于同一个集群中,可以不用再和游戏服务器绑定在一起,登录的时候可以根据你的ID去存储集群中提取出来,直接继续游戏。
不过这种设计有一个最需要解决的问题,那就是游戏服务器系统的扩容和容灾。
扩容就是加入新的服务器,容灾就是减掉失效的服务器。
这两个操作都在无状态的服务器进程上操作,都只是更新一下连接配置表,然后重启一下。
但是,由于游戏存在大量的状态,包括运行时内存中的状态,以及持久化的存储状态,这就让扩容和容灾需要更多的处理才能成功。
最普通的情况下,在扩容和容灾的时候,首先需要通知所有玩家下线,把内存中的状态数据写入持久化数据进程;然后根据需要的配置,把持久化数据重新“搬迁”到新的变化后的服务器上。
如果一个游戏有几千万用户,这样的数据搬迁将会耗时非常长,玩家也被迫等待很长的时间才能重新登录游戏。所以在这种模型下,对于数据存储的设计是最关键的地方。
针对上面所说的的需求特征,对于服务器,主要关注的还是对电脑内存和CPU的使用,希望可以在特定业务代码下,能尽量满足承载量和响应延迟的需求。最基本的做法就是“空间换时间”,用各种缓存的方式来求得CPU和内存空间上的平衡。
所以这就是游戏更新为什么很花时间更花内存的原因。
离不开的存储
其实服务器内存也是内存,它与普通PC机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如ECC、ChipKill、热插拔技术等,具有极高的稳定性和纠错性能。
服务器内存和PC机内存一样,内存的频率可以用工作频率和等效频率两种方式表示,工作频率是内存颗粒实际的工作频率,但是由于DDR内存可以在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍。
既然服务器由内存承载,那么它的市场又是怎样的?
一般来说服务器是存在3年左右的更新周期。2017跟2018年的服务器采购量分别是1020万台、1180万台,那么它们更新节点就是2020和2021年。因为5G+AI智能的双重技术的到来,存储需求不断增长,可以设想未来两年的服务器需求将会非常乐观,有机构预测2021年全球服务器出货量将达到1300万台。
根据相关数据显示,服务器内存市场成长最高,有望在未来三到五年内超过行动式内存市场。
根据IDC数据,2019Q2服务器行业前5大厂商集中度由54.6%上升至56.2%,市场领先地位继续巩固。虽然整体增速下滑,但中国厂商浪潮等逆势上升表现亮眼,两家中国厂商的份额从上年同期的11.7%增长到13.3%,其中浪潮商用机器,营收同比增长32.3%,全球市占率达到7.2%,较2018年同期提升2.4pct。
从全球厂商的销售额增速来看,浪潮本季度增速高达32.3%,继续在全球领跑,而且是前5大厂商中唯一实现正增长;IBM厂商下滑27.4%,低于行业11.0个百分点,反映出了超大规模云服务厂商需求的疲弱,那么内存市场又是怎样呢?
从整体来看,全球2020年内存市场成长预估仅为12.2%,相较于2019年的19.0%有很大的下降。尽管如此,服务器内存市场的增长依旧可观,预测该部分在2020年的同比增长达到20.1%。占整个内存市场的比例从2019年的32.6%增长到2020年的34.9%。
从需求侧分析,服务器还在持续增长。
到2020年,全球内存需求将增长17.5%,其中基于智能手机与服务器的领域占比最大。两者相加几乎占到7成市场。
再看产业营收预估,2019年,内存厂高库存水位难以纾解,第三季度日韩问题带动拉货力道,第四季度服务器需求提成,让库存逐步下降。到了2020年,内存厂产出保守,获利是他们的主要目标,将带动市场的供需平衡。
由此看得出,服务器的需求增加以后,内存的需求也随着上涨,两者互利共赢,带动市场的供需节奏,预计在2020年会有更明显的体现。