[發明專利]一種檢測游戲服務器多線程使用同一虛擬機的方法有效
| 申請號: | 201811097328.4 | 申請日: | 2018-09-19 |
| 公開(公告)號: | CN109445877B | 公開(公告)日: | 2022-03-18 |
| 發明(設計)人: | 劉馬良;劉美智;孫國軍;張健;李邦戈 | 申請(專利權)人: | 珠海金山網絡游戲科技有限公司;珠海西山居移動游戲科技有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448;G06F11/30;G06F11/34 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 俞梁清 |
| 地址: | 519000 廣東省珠海市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 檢測 游戲 服務器 多線程 使用 同一 虛擬機 方法 | ||
本發明涉及一種檢測游戲服務器多線程使用同一虛擬機的方法,包括以下步驟:S1,對游戲服務器進程虛擬機提供的接口函數執行HOOK操作;S2,HOOK操作完成后記錄系統信息并生成相應查找表;S3,再次調用接口函數時,系統檢索查找表進行對比分析并生成記錄文件;S4,上傳記錄文件至人工后臺。本發明可以在不修改服務器代碼的前提下完成對多線程使用同個LUA虛擬機問題的檢測工作,并且同時生成核心轉儲文件,工作人員基于核心轉儲文件即可快速發現問題,排除故障,在游戲正式上線前盡可能規避此類問題造成服務器宕機事故的出現,在維系玩家游戲體驗的同時提高了經濟效益。
技術領域
本發明涉及一種檢測游戲服務器多線程使用同一虛擬機的方法,屬于游戲服務器領域。
背景技術
目前LUA開發語言應用場景較為廣泛,部分游戲服務器也支持LUA語言。因為游戲服務器業務邏輯比較復雜,所以多會采用多線程架構的模式,而在LUA語言環境中,如果一個LUA虛擬機同時被兩個或兩個以上線程占用且同時執行LUA代碼,會導致服務器出現未定義行為,進而引起游戲服務器的崩潰。目前業界在服務器測試階段缺少對該類問題的有效檢測手段,現有技術方案需要對服務器代碼進行修改或添加,這就使得服務器維護難度上升,而游戲在上線后也容易發生服務器宕機等問題,嚴重影響了玩家的游戲體驗,進而產生較大的經濟損失。
發明內容
針對現有技術的不足,本發明提供了一種檢測游戲服務器多線程使用同一虛擬機的方法,所采用的技術方案包括以下步驟:
S1,對游戲服務器進程虛擬機提供的接口函數執行HOOK操作;
S2,HOOK操作完成后記錄系統信息并生成相應查找表;
S3,再次調用接口函數時,系統檢索查找表進行對比分析并生成記錄文件;
S4,上傳記錄文件至人工后臺。
進一步,所述HOOK操作包括對系統內特定事件進行監控,如果監控到特定事件發生時,向監控程序發送通知。
進一步,所述系統信息包括虛擬機地址以及使用該虛擬機的線程ID。
進一步,所述查找表用于存儲鍵值對,其中,所述鍵值用于提供索引。
進一步,所述步驟S3具體包括以下步驟:
S31,服務器再次調用接口函數時,根據虛擬機地址在查找表內檢索對應的線程ID;
S32,將檢索出的線程ID與當前使用虛擬機的線程ID進行匹配;
S33,如匹配結果相同,服務器正常運行;
S34,如匹配結果不同,服務器停止運行并執行核心轉儲操作。
進一步,所述核心轉儲操作包括在進程收到信號后終止時,將終止時刻的系統狀態信息生成對應的記錄文件。
進一步,所述記錄文件內包括但不限于進程地址空間內容及進程狀態等信息。
本發明的有益效果為:本技術方案在不修改服務器代碼的前提下,完成對多線程使用同個LUA虛擬機問題的檢測工作,并且同時生成核心轉儲文件,工作人員可以通過核心轉儲文件即可收集出現問題的第一現場信息,分析解決服務器隱藏風險,在游戲上線前盡可能規避此類問題造成服務器宕機的發生,保證了游戲的正常運行,在維系玩家游戲體驗的同時提高了經濟效益。
附圖說明
圖1所示為根據本發明的總體流程圖;
圖2所示為根據本發明實施例的流程圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海金山網絡游戲科技有限公司;珠海西山居移動游戲科技有限公司,未經珠海金山網絡游戲科技有限公司;珠海西山居移動游戲科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811097328.4/2.html,轉載請聲明來源鉆瓜專利網。





