1. 程式人生 > >騰訊TEG架構平臺部總監馮亮:遊戲內部雲底層技術揭祕

騰訊TEG架構平臺部總監馮亮:遊戲內部雲底層技術揭祕

在騰訊內部遊戲雲一直是最大的一塊,所以最棘手的問題、最新的技術、最高效的運營體系都會最先出現在遊戲雲上。在今年第二屆的遊戲運營技術論壇上,騰訊TEG架構平臺部系統研發中心總監馮亮為大家揭祕了遊戲內部雲底層技術。馮亮主要負責騰訊內部使用的Linux發行版/核心和虛擬化平臺,致力於打造騰訊內部高效、穩定的IaaS平臺。


騰訊TEG架構平臺部系統研發中心總監馮亮

遊戲內部雲底層的特點和挑戰

騰訊內部遊戲雲是最大的一塊,比重達到百分之七八十,矛盾點基本上全都是針對於遊戲雲而產生的,因此,騰訊內部遊戲雲面臨的六大問題:

  • 裝置量多:騰訊內部遊戲雲佔到裝置總數的70%,包括物理機的數目以及母/子機的數目。裝置多是量變產生質變的過程,包括運營體系、運營能力、整體故障處理、效能都會受到挑戰。
  • 遊戲上下架頻繁:開服、合服是遊戲的最常規運營方式,常規動作一定要自動化、高效率化,這樣運營效率才能得到保障。
  • 利用率波動:利用率指的是裝置的CPU和網絡卡這兩大利用率,利用率本質上是由使用者推動的,玩家不可能7X24小時不間斷遊戲,玩家休息時機器也應該休息。
  • 可用性高:包括子/母機的可用性以及基礎設施的可用性。如果可用率低的話,意味著服務的不同時間就比較差,收入必然會影響。
  • 效能快:伺服器架構更多是希望物盡其用,最大程度地發揮母機效能。
  • 故障處理:硬體隨時會出現問題,處理故障包括故障定位和故障解決。在人力有限的情況下輕重分離,重點業務重點保障,故障處理強調的是敏捷。

遊戲內部雲底層技術架構

遊戲內部雲底層技術架構分三層:第一層是應用,虛擬化平臺門戶;第二層是虛擬化的管控層,細分為三大類:虛擬機器生產類、虛擬機器操作類、虛擬機器管理和查詢類;第三層是伺服器、網路以及儲存資源。


內部雲底層的關鍵技術能力分為五大塊:接入能力、生產能力、排程能力、效能保障、穩定性保障。

  • 生產能力:每臺虛擬子機生產達到10秒以內,每單會有臺數上限,取決於當前物理母機資源。結合KVM/XEN,優化生產效率以及全流程。
  • 排程能力:單機的縮/擴容,提高本機資源利用能力;叢集的資源利用能力,包括冷遷移和熱遷移。
  • 效能保障:生產500臺子機,最佳情況小於30秒,整體平均是分鐘級別;針對網路包量過多進行了SRIOV技術的引入。提高了網絡卡的吞吐,降低了母機CPU的負載;修改了XEN相關程式碼,提高了XEN的VHD磁碟IO吞吐。
  • 穩定性保障:管控平臺通過無狀態加多例項,保證管控層的99.9%;針對虛擬化底層給XEN4.2打了數十個補丁,有來自社群的也有來自內部的;針對KVM上的Windows子機穩定性問題,也針對PV驅動打了不少補丁。

遊戲內部雲底層運營體系

離開運營,技術是不可落地的,一個好的技術和產品是閉環的,同時也需要一個高效的運營體系去支撐,否則技術能力得不到推廣。內部運營總覽分為五塊,監控告警、運維變更、質量管理、資源管理、運營報表。然後是三個平臺,網管平臺、作業平臺、運營管理平臺。

內部雲底層的關鍵運營能力包括資源運營、故障發現、故障處理。

  • 資源運營:伺服器有很完善的體系,能夠自動化地對母機的整個裝置進行管理、監控、預警。
  • 故障發現:5級(使用者、平臺、模組、程序、系統)立體化監控保證故障快速發現並告警。告警方式可以分為郵件、簡訊、微信、電話,根據不同的業務進行輕重分離,不同業務不同告警方式。
  • 故障處理:XEN虛擬化底層,業界首創實現針對XEN的VMM熱補丁機制,XEN母機核心故障可以線上打補丁,不需要重啟。 

遊戲內部雲底層問題分享

遊戲內部雲底層的問題主要集中在虛擬化底層(KVM/XEN)上面:
  1. XEN的xen_spin_unlock未能正確喚醒等待鎖的VCPU,導致domain0卡死。
  2. CFQ排程演算法非同步寫請求被大量同步請求搶佔,非同步寫飢餓。
  3. 子機發送IGMP Query包,觸發Cisco交換機Bug,導致Windows子機丟包。
  4. Blktap驅動在tapdisk程序異常退出時,未清理pending的IO請求導致程序一直處於D狀態,無法恢復。