本文和大家分享一個很有趣的話題是關於王者榮耀開發中高並發問題,希望能為大家帶來解決此類問題的思路,下面我們就一起來學習一下關於王者榮耀開發中高並發問題分析。
「王者榮耀」是一款國民級手機遊戲,用戶體量龐大,一直維持著較高的更新頻率。在這種業務場景下,突發也變得非常頻繁,然而業務體驗是至關重要的,使用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突發池的擴充。
突發池系統架構
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) 網路卡流量控制:在極端情況下,業務頻寬超過設定門檻值,這時虛擬網路卡會主動丟包,避免對母機造成影響。
● 限制磁碟大小:Docker在ext3/ext4檔案系統中無法對檔案/目錄層級進行磁碟大小限制。
解決方案:
由於騰訊雲端CDN業務基本上都是使用ext3/ext4檔案系統,這種情況下Docker只能對根據使用者或使用者群組對磁碟進行限制,但現網業務都是直接在root環境下使用。這裡我們使用loop device來解決磁碟大小限制問題。虛擬機器中突發業務使用掛載在loop device上的目錄,這樣就可以間接限制磁碟大小,防止使用太多磁碟影響其他業務。
● CPU綁定:預設是綁定所有CPU,部分單CPU負載高會影響母機業務。
解決方案:
透過腳本每分鐘採集一次系統所有單CPU負載,為避免頻繁調整和受毛邊資料影響,取15分鐘的平均值。最後選取負載較低的部分核,並透過設定檔cpuset.cpus來動態綁定,將虛擬機器對母機業務影響降低到最小,並且能充分利用資源。
突發池上線後,高效支持了王者榮耀下載、NBA直播、KPL/LPL遊戲直播等多次大型突發活動,節省成本2000萬。透過共享buffer,搭建突發池能顯著提升突發能力及降低成本。
總結
騰訊雲CDN,透過Docker技術重複使用資源,建構Tb級突發池,能支援直播、點播、靜態等各種業務突發,能自動偵測到業務突發需求並在10分鐘內完成資源擴容,具有發布快,成本低等特點。資源多工能提高資源利用率,為業務提供極大的突發池,但要注意復用業務之間不能相互影響,這需要對伺服器進行即時的監控和及時的調度。另外還有一些待改進的地方,例如核心參數基於容器隔離,方便不同業務調優;部分業務客戶端不支援302跳轉,調度系統需要支援網域調度方式。
相關推薦:
#以上是關於王者榮耀開發中高並發問題分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

王者上线了重大功能,qq微信互通可以一起玩了,到底怎么跟好友一起玩,需要两个人下载王者营地,匹配到一个人之后,加个联系方式,在让匹配的人帮你拉你好友,具体内容一起来看看这篇王者qq微信跟好友一起玩方法介绍。王者荣耀攻略大全王者qq微信怎么跟好友一起玩1、两个人需要下载王者营地。2、进入软件选择聊天按钮。3、接着选择右上角联系人滴哒。4、先不要急着匹配点击自定义设置自己想要匹配的人的段位和分路。5、就可以进行匹配了,QQ和微信区的人都有。6、匹配到人之后加个联系方式,让他帮忙拉你好友就可以了,双方

译者 | 李睿审校 | 孙淑娟随着Python越来越受欢迎,其局限性也越来越明显。一方面,编写Python应用程序并将其分发给没有安装Python的人员可能非常困难。解决这一问题的最常见方法是将程序与其所有支持库和文件以及Python运行时打包在一起。有一些工具可以做到这一点,例如PyInstaller,但它们需要大量的缓存才能正常工作。更重要的是,通常可以从生成的包中提取Python程序的源代码。在某些情况下,这会破坏交易。第三方项目Nuitka提供了一个激进的解决方案。它将Python程序编

ChatGPT 目前彻底改变了开发代码的方式,然而,大多数软件开发人员和数据专家仍然没有使用 ChatGPT 来改进和简化他们的工作。这就是为什么我在这里概述 5 个不同的功能,以提高我们的日常工作速度和质量。我们可以在日常工作中使用它们。现在,我们一起来了解一下吧。注意:切勿在 ChatGPT 中使用关键代码或信息。01.生成项目代码的框架从头开始构建新项目时,ChatGPT 是我的秘密武器。只需几个提示,它就可以生成我需要的代码框架,包括我选择的技术、框架和版本。它不仅为我节省了至少一个小时

今天这篇文章的重点是使用 ChatGPT API 创建私人语音 Chatbot Web 应用程序。目的是探索和发现人工智能的更多潜在用例和商业机会。我将逐步指导您完成开发过程,以确保您理解并可以复制自己的过程。为什么需要不是每个人都欢迎基于打字的服务,想象一下仍在学习写作技巧的孩子或无法在屏幕上正确看到单词的老年人。基于语音的 AI Chatbot 是解决这个问题的方法,就像它如何帮助我的孩子要求他的语音 Chatbot 给他读睡前故事一样。鉴于现有可用的助手选项,例如,苹果的 Siri 和亚马

测试时自适应(Test-TimeAdaptation,TTA)方法在测试阶段指导模型进行快速无监督/自监督学习,是当前用于提升深度模型分布外泛化能力的一种强有效工具。然而在动态开放场景中,稳定性不足仍是现有TTA方法的一大短板,严重阻碍了其实际部署。为此,来自华南理工大学、腾讯AILab及新加坡国立大学的研究团队,从统一的角度对现有TTA方法在动态场景下不稳定原因进行分析,指出依赖于Batch的归一化层是导致不稳定的关键原因之一,另外测试数据流中某些具有噪声/大规模梯度的样本

哈喽,大家好。之前给大家分享过摔倒识别、打架识别,今天以摔倒识别为例,我们看看能不能完全交给ChatGPT来做。让ChatGPT来做这件事,最核心的是如何向ChatGPT提问,把问题一股脑的直接丢给ChatGPT,如:用 Python 写个摔倒检测代码 是不可取的, 而是要像挤牙膏一样,一点一点引导ChatGPT得到准确的答案,从而才能真正让ChatGPT提高我们解决问题的效率。今天分享的摔倒识别案例,与ChatGPT对话的思路清晰,代码可用度高,按照GPT返回的结果完全可以开

自 2020 年以来,内容开发领域已经感受到人工智能工具的存在。1.Jasper AI网址:https://www.jasper.ai在可用的 AI 文案写作工具中,Jasper 作为那些寻求通过内容生成赚钱的人来讲,它是经济实惠且高效的选择之一。该工具精通短格式和长格式内容均能完成。Jasper 拥有一系列功能,包括无需切换到模板即可快速生成内容的命令、用于创建文章的高效长格式编辑器,以及包含有助于创建各种类型内容的向导的内容工作流,例如,博客文章、销售文案和重写。Jasper Chat 是该

1970年,机器人专家森政弘(MasahiroMori)首次描述了「恐怖谷」的影响,这一概念对机器人领域产生了巨大影响。「恐怖谷」效应描述了当人类看到类似人类的物体,特别是机器人时所表现出的积极和消极反应。恐怖谷效应理论认为,机器人的外观和动作越像人,我们对它的同理心就越强。然而,在某些时候,机器人或虚拟人物变得过于逼真,但又不那么像人时,我们大脑的视觉处理系统就会被混淆。最终,我们会深深地陷入一种对机器人非常消极的情绪状态里。森政弘的假设指出:由于机器人与人类在外表、动作上相似,所以人类亦会对


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境