CN109445877B - 一种检测游戏服务器多线程使用同一虚拟机的方法 - Google Patents

一种检测游戏服务器多线程使用同一虚拟机的方法 Download PDF

Info

Publication number
CN109445877B
CN109445877B CN201811097328.4A CN201811097328A CN109445877B CN 109445877 B CN109445877 B CN 109445877B CN 201811097328 A CN201811097328 A CN 201811097328A CN 109445877 B CN109445877 B CN 109445877B
Authority
CN
China
Prior art keywords
virtual machine
server
lookup table
game
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811097328.4A
Other languages
English (en)
Other versions
CN109445877A (zh
Inventor
刘马良
刘美智
孙国军
张健
李邦戈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Xishanju Digital Technology Co ltd
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Seasun Mobile Game Technology Co ltd
Zhuhai Kingsoft Online Game Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Seasun Mobile Game Technology Co ltd, Zhuhai Kingsoft Online Game Technology Co Ltd filed Critical Zhuhai Seasun Mobile Game Technology Co ltd
Priority to CN201811097328.4A priority Critical patent/CN109445877B/zh
Publication of CN109445877A publication Critical patent/CN109445877A/zh
Application granted granted Critical
Publication of CN109445877B publication Critical patent/CN109445877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种检测游戏服务器多线程使用同一虚拟机的方法,包括以下步骤:S1,对游戏服务器进程虚拟机提供的接口函数执行HOOK操作;S2,HOOK操作完成后记录系统信息并生成相应查找表;S3,再次调用接口函数时,系统检索查找表进行对比分析并生成记录文件;S4,上传记录文件至人工后台。本发明可以在不修改服务器代码的前提下完成对多线程使用同个LUA虚拟机问题的检测工作,并且同时生成核心转储文件,工作人员基于核心转储文件即可快速发现问题,排除故障,在游戏正式上线前尽可能规避此类问题造成服务器宕机事故的出现,在维系玩家游戏体验的同时提高了经济效益。

Description

一种检测游戏服务器多线程使用同一虚拟机的方法
技术领域
本发明涉及一种检测游戏服务器多线程使用同一虚拟机的方法,属于游戏服务器领域。
背景技术
目前LUA开发语言应用场景较为广泛,部分游戏服务器也支持LUA语言。因为游戏服务器业务逻辑比较复杂,所以多会采用多线程架构的模式,而在LUA语言环境中,如果一个LUA虚拟机同时被两个或两个以上线程占用且同时执行LUA代码,会导致服务器出现未定义行为,进而引起游戏服务器的崩溃。目前业界在服务器测试阶段缺少对该类问题的有效检测手段,现有技术方案需要对服务器代码进行修改或添加,这就使得服务器维护难度上升,而游戏在上线后也容易发生服务器宕机等问题,严重影响了玩家的游戏体验,进而产生较大的经济损失。
发明内容
针对现有技术的不足,本发明提供了一种检测游戏服务器多线程使用同一虚拟机的方法,所采用的技术方案包括以下步骤:
S1,对游戏服务器进程虚拟机提供的接口函数执行HOOK操作;
S2,HOOK操作完成后记录系统信息并生成相应查找表;
S3,再次调用接口函数时,系统检索查找表进行对比分析并生成记录文件;
S4,上传记录文件至人工后台。
进一步,所述HOOK操作包括对系统内特定事件进行监控,如果监控到特定事件发生时,向监控程序发送通知。
进一步,所述系统信息包括虚拟机地址以及使用该虚拟机的线程ID。
进一步,所述查找表用于存储键值对,其中,所述键值用于提供索引。
进一步,所述步骤S3具体包括以下步骤:
S31,服务器再次调用接口函数时,根据虚拟机地址在查找表内检索对应的线程ID;
S32,将检索出的线程ID与当前使用虚拟机的线程ID进行匹配;
S33,如匹配结果相同,服务器正常运行;
S34,如匹配结果不同,服务器停止运行并执行核心转储操作。
进一步,所述核心转储操作包括在进程收到信号后终止时,将终止时刻的系统状态信息生成对应的记录文件。
进一步,所述记录文件内包括但不限于进程地址空间内容及进程状态等信息。
本发明的有益效果为:本技术方案在不修改服务器代码的前提下,完成对多线程使用同个LUA虚拟机问题的检测工作,并且同时生成核心转储文件,工作人员可以通过核心转储文件即可收集出现问题的第一现场信息,分析解决服务器隐藏风险,在游戏上线前尽可能规避此类问题造成服务器宕机的发生,保证了游戏的正常运行,在维系玩家游戏体验的同时提高了经济效益。
附图说明
图1所示为根据本发明的总体流程图;
图2所示为根据本发明实施例的流程图。
具体实施方式
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
需要说明的是,如无特殊声明,在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。
应当理解,本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
接下来结合附图对本发明的具体实施例作进一步说明,参照图1所示根据本发明的总体流程图,在本申请的一个或多个实施例中,基于上述系统执行以下方法步骤:
S1,对游戏服务器进程虚拟机提供的接口函数执行HOOK操作,所述HOOK操作包括对系统内特定事件进行监控,如果监控到特定事件发生时,向监控程序发送通知;
S2,HOOK操作完成后记录系统信息并生成相应查找表,所述系统信息包括虚拟机地址以及使用该虚拟机的线程ID;
S3,再次调用接口函数时,系统检索查找表进行对比分析并生成记录文件,所述查找表用于存储键值对,其中,所述键值用于提供索引;
S4,上传记录文件至人工后台。
参照图2所示为步骤S3具体包括以下步骤:
S31,服务器再次调用接口函数时,根据虚拟机地址在查找表内检索对应的线程ID;
S32,将检索出的线程ID与当前使用虚拟机的线程ID进行匹配;
S33,如匹配结果相同,服务器正常运行;
S34,如匹配结果不同,说明目前服务器内存在多线程使用同一虚拟机的问题,此时执行核心转储操作,服务器收到终止信号后停止工作,将包括但不限于进程地址空间内容、进程状态等信息生成一个记录文件。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

Claims (6)

1.一种检测游戏服务器多线程使用同一虚拟机的方法,其特征在于,所述方法包括以下步骤:
S1,对游戏服务器进程虚拟机提供的接口函数执行HOOK操作;
S2,HOOK操作完成后记录系统信息并生成相应查找表;
S3,服务器再次调用接口函数时,根据虚拟机地址在查找表内检索对应的线程ID;将检索出的线程ID与当前使用虚拟机的线程ID进行匹配;如匹配结果相同,服务器正常运行;如匹配结果不同,服务器停止运行并执行核心转储操作;
S4,上传记录文件至人工后台。
2.根据权利要求1所述的检测游戏服务器多线程使用同一虚拟机的方法,其特征在于,所述HOOK操作包括对系统内特定事件进行监控,如果监控到特定事件发生时,向监控程序发送通知。
3.根据权利要求1所述的检测游戏服务器多线程使用同一虚拟机的方法,其特征在于,所述系统信息包括虚拟机地址以及使用该虚拟机的线程ID。
4.根据权利要求1所述的检测游戏服务器多线程使用同一虚拟机的方法,其特征在于,所述查找表用于存储键值对,其中,所述键值用于提供索引。
5.根据权利要求1所述的检测游戏服务器多线程使用同一虚拟机的方法,其特征在于,所述核心转储操作包括在进程收到信号后终止时,将终止时刻的系统状态信息生成对应的记录文件。
6.根据权利要求5所述的检测游戏服务器多线程使用同一虚拟机的方法,其特征在于,所述记录文件内包括但不限于进程地址空间内容及进程状态等信息。
CN201811097328.4A 2018-09-19 2018-09-19 一种检测游戏服务器多线程使用同一虚拟机的方法 Active CN109445877B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811097328.4A CN109445877B (zh) 2018-09-19 2018-09-19 一种检测游戏服务器多线程使用同一虚拟机的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811097328.4A CN109445877B (zh) 2018-09-19 2018-09-19 一种检测游戏服务器多线程使用同一虚拟机的方法

Publications (2)

Publication Number Publication Date
CN109445877A CN109445877A (zh) 2019-03-08
CN109445877B true CN109445877B (zh) 2022-03-18

Family

ID=65530535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811097328.4A Active CN109445877B (zh) 2018-09-19 2018-09-19 一种检测游戏服务器多线程使用同一虚拟机的方法

Country Status (1)

Country Link
CN (1) CN109445877B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563000B (zh) * 2020-04-28 2023-08-18 深圳市震有软件科技有限公司 一种文件生成方法、智能终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876918A (zh) * 2009-11-27 2010-11-03 北京航空航天大学 虚拟机客户操作系统同步任务感知方法
CN102750475A (zh) * 2012-06-07 2012-10-24 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
CN106055490A (zh) * 2015-04-09 2016-10-26 想象技术有限公司 在多线程处理器中的高速缓存器操作

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2266026A4 (en) * 2008-03-11 2012-01-11 Univ Washington MULTITRAITEMENT DETERMINISTIC EFFECTIVE
CN105068916B (zh) * 2015-08-28 2017-12-08 福建六壬网安股份有限公司 一种基于内核hook的进程行为监控方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876918A (zh) * 2009-11-27 2010-11-03 北京航空航天大学 虚拟机客户操作系统同步任务感知方法
CN102750475A (zh) * 2012-06-07 2012-10-24 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
CN106055490A (zh) * 2015-04-09 2016-10-26 想象技术有限公司 在多线程处理器中的高速缓存器操作

Also Published As

Publication number Publication date
CN109445877A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
US10268564B2 (en) Dynamic tracing using ranking and rating
KR101519845B1 (ko) 안티디버깅 방법
CN105404581B (zh) 一种数据库的评测方法和装置
US10474565B2 (en) Root cause analysis of non-deterministic tests
US8862941B2 (en) Methods and apparatus for remediation execution
US10860465B2 (en) Automatically rerunning test executions
CN108197032B (zh) Ios应用的主线程卡顿监测方法、介质、设备及系统
CN107957712B (zh) 测试过程控制系统的工程工具和方法
JP2008129714A (ja) 異常検知方法、異常検知装置及び異常検知用プログラム並びに学習モデル生成方法
US8752023B2 (en) System, method and program product for executing a debugger
CN107451040A (zh) 故障原因的定位方法、装置及计算机可读存储介质
US20150006961A1 (en) Capturing trace information using annotated trace output
US9824000B1 (en) Testing calling code dynamically with random error injection based on user-specified configuration
US20200089594A1 (en) Artificial intelligence for load testing
CN113792341A (zh) 应用程序的隐私合规自动化检测方法、装置、设备及介质
CN109445877B (zh) 一种检测游戏服务器多线程使用同一虚拟机的方法
US8850407B2 (en) Test script generation
US9069895B2 (en) Analyzing concurrent debugging sessions
US20190129781A1 (en) Event investigation assist method and event investigation assist device
CN114416589A (zh) 网络靶场综合检测方法、装置、设备及可读存储介质
CN114184885A (zh) 一种故障检测方法、装置及存储介质
US10255128B2 (en) Root cause candidate determination in multiple process systems
JP5453871B2 (ja) イベント判別装置、イベント判別プログラム、イベント判別方法
CN107102938A (zh) 测试脚本的更新方法及装置
JP2008262473A (ja) 設備保全管理システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Patentee after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Patentee after: Zhuhai Xishanju Digital Technology Co.,Ltd.

Address before: 519000 building 3, Jinshan Software Park, 325 Qiandao Ring Road, Xiangzhou District, Zhuhai City, Guangdong Province

Patentee before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

Patentee before: ZHUHAI SEASUN MOBILE GAME TECHNOLOGY Co.,Ltd.