View a markdown version of this page

GAMEREL03-BP01 監控遊戲伺服器中斷,並使用資料改善託管架構以達到可靠性目標 - 遊戲產業鏡頭

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

GAMEREL03-BP01 監控遊戲伺服器中斷,並使用資料改善託管架構以達到可靠性目標

監控遊戲伺服器指標,以及故障或效能降低的影響,例如負載下延遲增加,隨著時間的推移對玩家行為的影響,以便您可以調整遊戲伺服器託管策略,以滿足遊戲的可靠性需求。要降級的遊戲伺服器基礎設施如果會影響玩家,或當伺服器上沒有託管的作用中玩家工作階段時,應該立即從服務中移除。

未建立此最佳實務時的曝險等級:

實作指引

對於將遊戲託管為 REST APIs的情況,系統可靠性可以像傳統 Web 應用程式架構一樣進行管理,其中流量可以在多個伺服器之間以分散式方式進行負載平衡,以降低伺服器故障的風險。

對於即時同步遊戲,遊戲工作階段通常託管在虛擬機器或遊戲伺服器執行個體上執行的遊戲伺服器程序上,因為遊戲狀態需要以高效能的方式維護,並複寫到連線的遊戲用戶端。此實作表示玩家的體驗與託管其遊戲工作階段的遊戲伺服器程序的效能和可靠性緊密結合。這種類型的架構使得管理遊戲伺服器的可靠性比傳統方法更複雜。

若要減輕遊戲伺服器故障的影響,請將您的遊戲設定為持續執行玩家遊戲狀態的非同步更新至高可用性快取或資料庫,例如 Amazon ElastiCache (Redis OSS) 或 Amazon MemoryDB。如果發生伺服器故障,可從外部資料存放區擷取玩家上次儲存的遊戲狀態,並在新的遊戲伺服器執行個體上還原其工作階段。

不過,這種方法會增加額外的成本和複雜性來管理此外部狀態,並可能不適用於快速步調或競爭性遊戲,其中狀態變更如此頻繁,而且在如此顯著的規模下發生,導致即使是高效能的記憶體內快取資料存放區,也會導致複寫延遲,這對於從中還原工作階段來說太重要,無法派上用場。對於這種性質的遊戲,最佳方法是接受伺服器遺失,並將玩家送回遊戲大廳以尋找另一個工作階段,或者您可以自動將其重新導向至另一個遊戲工作階段。

盡可能多地擷取造成伺服器中斷的有用日誌資料,以便稍後調查問題。Amazon GameLift 提供 偵錯機群問題的指引,並提供 遠端存取 Amazon GameLift 機群執行個體 的能力。

實作步驟

  • 監控遊戲伺服器指標是否有效能降級,並視需要移除或取代降級的伺服器,以維護可靠性。

  • 在可行的情況下,使用 Amazon ElastiCache 或 MemoryDB 進行非同步遊戲狀態更新,以便在伺服器故障後啟用工作階段復原。

  • 擷取伺服器中斷的詳細日誌資料以進行調查和偵錯,利用 Amazon GameLift 等工具進行機群監控和遠端存取。