王者荣耀高并发背后的故事
2017-10-30 08:20:16堪称中国最火爆的手机游戏“王者荣耀”,拥有亿级用户体量,千万级日活用户,如何快速、低成本地保障业务突发?本文从该问题出发,论述了问题对应的解决方案,并对其效果做出总结。
摘要
堪称中国最火爆的手机游戏“王者荣耀”,拥有亿级用户体量,***日活用户,如何快速、低成本地保障业务突发?本文从该问题出发,论述了问题对应的解决方案,并对其效果做出总结。
背景
“王者荣耀”是一款国民级手机游戏,用户体量巨大,而且一直保持着较高的更新频率。这种业务场景下,突发也变得非常频繁,然而业务体验是至关重要的,使用CDN必不可少。类似地,经常有带宽突发的场景,比如新闻爆点视频、大型直播活动、热门影视剧上线、热门游戏等应用发布。同时,由于家庭带宽和移动网络的快速升级,突发带宽量级越来越大,经常达到Tb级,甚至10Tb 。如何快速、低成本地保障业务突发,成为CDN的一大挑战。
2007年,腾讯自建CDN启用,接入了***个业务腾讯网。到现在CDN带宽量级,从最早的数十Gb,发展到现在的数十Tb;单业务的带宽也越来越大,大部分业务常量带宽在几百Gb,部分突发业务达到了10Tb。网络的快速升级,移动用户爆发式增长,以及视频类业务包括点播和直播的兴起,使得业务突发越来越频繁,突发带宽越来越高,对CDN的要求也越来越高。
自建CDN得益于腾讯业务的蓬勃发展,先后支持了游戏下载、流媒体视频加速、春节红包等腾讯内部业务;2014年腾讯将CDN全面能力开放,成为腾讯云CDN产品,除承载内部业务外,也开始接入第三方客户,比如快手点播、斗鱼直播等。以上各种业务都有突发场景,也有很强的成本诉求,在如何低成本地保障业务突发,腾讯CDN积累了丰富的经验。接下来就挑战和问题、解决方案、效果三个方面来解析。

一、挑战和问题
下面将从业务特点开始,分析目前存在的挑战和问题。
1、 业务特点和挑战
CDN多样化的场景,注定了突发业务充满挑战。突发业务具有体量大、场景多样化、 无规律等特点。
a) 体量大 :突发业务带宽大部分都超过Tb,部分甚至达到了10T ;
b) 场景多样化 :点播中的热剧和新闻爆点;直播中的LOL/KPL/DOTA2等游戏直播,NBA/世界杯等体育直播,演唱会等综艺直播;应用下载中的王者荣耀等游戏下载;静态网页加速中的红包活动、电商促销等;
c) 无规律 :部分突发活动无法预知,活动快要开始或已经开始了才知道,比如新闻爆点。
体量大,需要准备更多的资源;场景多样化,需要满足不同的资源需求;无规律性则对我们的扩容效率提了很高的要求。
2、 目前存在的问题
仅仅为了满足业务突发需求而储备大量的资源,成本太高,会造成资源极大的浪费。所以一般会通过复用资源来应对业务突发。但是直接复用资源,存在两个问题:
a) 只能复用部分资源 :CDN业务,一般按业务类型来区分平台和资源使用,主要原因是不同业务类型对资源需求不同,比如点播类需要更多的存储;有较多https请求的静态页面类,则需要更多CPU资源。这种限制使得资源无法充分利用,加大了资源准备的难度。比如视频突发主要使用视频Buffer,而下载类和网页类Buffer无法直接使用,这限制了Buffer的大小。即使复用同类型资源,因为涉及多个业务资源的协调,准备时间一般会超过两天,无法应对临时突发;
b) 无法降低成本 :另外针对部分突发业务,比如游戏应用下载,带宽高峰期在上午和中午,如果只使用本平台资源,会导致结算带宽明显上涨,从而增加成本。无法利用同其他业务错峰的特点来降低结算带宽。
二、解决方案
腾讯云CDN通过虚拟化复用现有资源,搭建全业务通用的突发池,所有平台共享Buffer。 突发池中的设备为Docker虚拟机,虚拟机有不同的规格,只要业务有需求,都可以按需使用。突发池中的带宽储备达到了10Tb,基本能满足所有业务突发需求 。任何业务有突发需求,配合自动化上架接口,可在10分钟完成10Tb突发池的扩容。
1、 突发池系统架构
突发池系统架构见图1:
图 1突发池系统架构
a) 突发池 :在各平台物理机的上层,由Docker虚拟机组成的资源池,对CPU/内存/磁盘等使用进行了限制,防止对物理机造成影响。原有业务依然部署在物理机上,不用调整。
b) 自动化部署和监控系统 : 能根据业务实际需求,自动预测需求并扩容 。所有的突发需求,都能在10分钟内扩容完成。针对点播/下载业务,自动分发热点文件,降低回源带宽。
c) 调度系统 :突发业务的突发性和体量大两个特点,使得相比域名调度系统,直通车更占优势。直通车调度更灵活,生效时间快,能达到分钟级。
虚拟机和物理机部署了上报Agent,业务信息和 服务器 负载每分钟都会上报到监控系统。监控系统会根据历史带宽预测一个值,并与当前带宽比较,如果当前带宽超过预测值的50%,则认为有突发。根据带宽上涨的比例,系统会自动从突发池中扩容相应数据的设备。针对提前准备的突发活动,运维可以指定带宽需求量,之后系统便会自动计算设备需求并扩容。
分钟粒度上报的服务器负载信息则为监控系统做调度决策提供了依据。系统会依据机房剩余带宽、服务器带宽、CPU、IO等综合信息决定虚拟机是否需要从直通车中启用或者禁用。用户访问时先请求直通车调度系统,直通车会根据调度策略返回一个302地址,302地址中为实际CDN资源地址。用户跳转到302地址,并获取实际内容。
2、技术优化
使用虚拟化技术复用资源的重要前提是,不影响现有业务。这就要求对资源有充分的隔离,比如CPU/磁盘,以及对带宽的使用。下面是实现过程中存在的几个问题及解决方案:
解决方案:
a) 配额系统:直通车中有配额系统,对每个虚拟机可使用的资源做了限制,包括CPU/IO和带宽。监控系统中上报的信息,结合配额系统,可以确保服务器负载被限定在制定的范围内,粒度为分钟级。
b) 部分请求返回302:对CPU/带宽/IO等做了限制后,应用程序能根据母机当前负载,实时判断是否处理一个请求。如果负载在限制范围内,直接处理;如果负载超出限制,则返回302,使用户跳转到直通车的调度地址,这样能在尽量不影响业务质量的情况对负载做精准控制。程序层面对负载的实时控制,是配额系统的有效补充。
c) 网卡流量控制:在极端情况下,业务带宽超过设定阈值,这时虚拟网卡会主动丢包,避免对母机造成影响。
解决方案:
由于腾讯云CDN业务基本都是使用ext3/ext4文件系统,这种情况下Docker只能对根据用户或用户组对磁盘进行限制,但现网业务都是直接在root环境下使用。这里我们使用loop device来解决磁盘大小限制问题。虚拟机中突发业务使用挂载在loop device上的目录,这样就可以间接限制磁盘大小,防止使用太多磁盘影响其他业务。
解决方案:
通过脚本每分钟采集一次系统所有单CPU负载,为避免频繁调整和受毛刺数据影响,取15分钟的均值。***选取负载较低的部分核,并通过配置文件cpuset.cpus来动态绑定,将虚拟机对母机业务影响降低到最小,并且能充分利用资源。
效果
突发池上线后,高效支持了王者荣耀下载、NBA直播、KPL/LPL游戏直播等多次大型突发活动,节约成本2000万。通过共享buffer,搭建突发池能显著提高突发能力和降低成本。
总结
腾讯云CDN通过Docker技术复用资源,搭建Tb级别突发池,能支持直播、点播、静态等各种业务突发,能自动检测到业务突发需求并在10分钟内完成资源扩容,具有发布快,成本低等特点。资源复用能提高资源利用率,为业务提供极大的突发池,但要注意复用业务之间不能相互影响,这需要对服务器进行实时的监控和及时的调度。另外还有一些待改进的地方,比如内核参数基于容器隔离,方便不同业务调优;部分业务客户端不支持302跳转,调度系统需要支持域名调度方式。
胆囊炎疼的厉害怎么办
右侧腹部疼痛(急性者有剧痛)在吃过高脂肪后更易。 不能吃肉类,蛋类。 含酒精类的食品。 还可有眼睛和身体皮肤发黄。 也有口苦者。 不过光有口苦是不能断定就是有炎症。 有胃病者更易发生口腔有异味。 在药物方面使用德莆利柦束茶可以有效缓解这些症状,清息利胆、温和养胆。 促进胆囊的吸收,减少这些并发症的发生。 胆汁是人体消化系统主要消化蛋白质的一种分泌物。 胆囊炎患者由于储存胆汁的部位出现炎症。 理应减轻减少胆汁的分泌,减轻胆囊对胆汁的储存,促使其尽快康复。 而鸡蛋的蛋白在经过高温处理后发生变性,这种变性蛋白在胃里很难消化,要经胆汁才能消化吸收,这就促使机体刺激分泌更多的胆汁以消化蛋白,显然,加重了胆囊的负担。 很不利于胆囊炎的康复,弄不好还会加重病症。 故得了胆囊炎就不能吃鸡蛋。
结肠炎的症状、后果?
结肠炎的症状有哪些,如何治疗结肠炎? 这个问题很多答案。 什么是结肠炎?是指由特定病因或不明病因引起结肠段炎症,在临床一般可分为急性结肠炎和慢性结肠炎两种。 结肠炎患者常以腹泻、粘液浓血便、腹痛里急后重感为主要症状,而病程漫长,病情轻重不一,经常反复,结肠炎患者排便次数多于平时,排便不利,大便不成型,多为稀糊或稠糊状,便中带有粘液或脓血,常伴有腹痛、腹胀及里急后重感等。 结肠炎,又称非特异性溃肠性结肠炎,我国常称为“溃疡性结肠炎”或“慢性非特异性结肠炎”。 结肠炎以溃疡为主,炎症主要位于粘膜层。 结肠炎起病多数缓慢,常反复发作并逐渐加重,少数急骤,病程可分为持续性,呈慢性或发作期相交替的慢性经过,偶呈急性暴发,因此结肠炎的治疗也是需要较长的时间。 大多患者不重视结肠炎,不愿意积极治疗。 结肠炎属慢性病,其严重的后果是发展成结肠癌,因此患者应高度重视,积极治疗,以免担误病情。 结肠炎的临床表现: ●腹泻:粘液便及脓血便,轻度结肠炎患者每天3—4次,重者数十次或腹泻与便秘交替出现。 ●腹痛:轻度结肠炎患者无腹痛或仅有腹部不适.一般有轻度至中度腹痛,系左下腹或下腹阵痛,涉及全腹有痛一便意一便后缓解的规律。 ●便秘:结肠炎患者大便秘结4—5日排便一次,粪便如羊屎样,甚则不吃泻药不能通便。 ●其他症状:腹胀、消瘦、乏力、肠鸣、失眠、多梦、怕冷等症。 结肠炎有如下常见并发症: ●大量便血:便血是结肠炎的主要临床表现之一,便血的多少也是衡量病情轻重的指标。 ●肠狭窄:多发生在病变广泛、病程持续长达5-25年以上的结肠炎患者,其部位多见于左半结肠,乙状结肠或直肠,临床上一般无症状,严重时可引起肠阻塞,在结肠炎出现肠狭窄时,要警惕肿瘤,鉴别良性恶性。 ●肠穿孔:多为中毒性肠扩张的并发症,也可出现严重型,多发生于左半结肠,皮质激素的应用被认为是肠穿孔的一个危险因素。 ●中毒性肠扩张:这是结肠炎的一个严重并发症,多发生在全结肠炎的病人,死亡率可高达44%,临床表现为病情迅速恶化,中毒症状明显,伴有腹泻、腹部压痛和反跳痛,肠鸣音减弱或消失,白细胞数增多,易并发肠穿孔。 ●结肠癌:约5%的结肠炎患者发生癌变,幼年起病和病史超过10年者。 结肠炎的治疗: 十一味草果丸依据博大精深的藏医理论和藏药方剂,采用低温超临界萃取和纳米超微粉碎技术浓缩精制而成,专治胃肠疾病。 由于中国大部分人较少接触藏药,基因中未形成抗体,因此服用后治疗结肠炎效果更突出;所选藏药均来自青藏高原3800米以上低温高寒地带,高原辐射强、昼夜温差大,因此药物具有高活性、高含量、药力充沛、药效持久、杀菌消炎能力更强的特性。 十一味草果丸其高活性的药物分子通过血液微循环,加快肠霉素的袭解分化,蕴含高效生物诱导素,具有极强促进肠壁细胞恢复再生能力,能够迅速杀灭肠道内的细菌,同时消退炎症,特有的免疫激素,激发肠细胞的免疫活性,杜绝毒素再次入侵,从根本上治愈结肠炎、肠溃疡、久泻。 十一味草果丸对于治疗结肠炎、肠疡具划时代的革命意义,从此以后,清理细胞毒素已不再是难题,对已经确诊为结肠炎、肠溃疡的患者,首先要尽快清除细胞毒素。 从而达到全面治肠的目的。 十一味草果丸特有杀菌、消炎、解毒、消毒、激活、修复等联合治肠法,对于细胞内毒素清除真正是从里向外、干净彻底。 在结肠炎的治疗过程中十一味草果丸兼具有温肾益阳的调理功效,而对胃肠没有刺激,有效治疗头晕眼花、失眠多梦、冬天怕冷等并发症。 服用十一味草果丸2-3个疗程后结肠炎在肠镜下即可见溃疡愈合,息肉消失,狭窄的肠段基本恢复。 一般结肠炎患者使用十一味草果丸治疗结肠炎3-6个疗程即可痊愈,并使肠道功能恢复至未患病前,还您一个健康的胃肠。 推荐连接:参考资料:
请问电子行业的erp软件哪个口碑最好的?
易飞
发表评论