CN113672390A - 一种服务器内存回收方法、装置、设备及可读存储介质 - Google Patents

一种服务器内存回收方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN113672390A
CN113672390A CN202110966803.2A CN202110966803A CN113672390A CN 113672390 A CN113672390 A CN 113672390A CN 202110966803 A CN202110966803 A CN 202110966803A CN 113672390 A CN113672390 A CN 113672390A
Authority
CN
China
Prior art keywords
thread
memory
target
running state
server
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.)
Withdrawn
Application number
CN202110966803.2A
Other languages
English (en)
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202110966803.2A priority Critical patent/CN113672390A/zh
Publication of CN113672390A publication Critical patent/CN113672390A/zh
Withdrawn legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种服务器内存回收方法,包括:当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用错误计数模型确定目标虚拟机中CPU占用最高的目标进程;获取目标进程包含的各线程分别对应的运行状态信息;判断是否存在满足预设线程异常判定条件的运行状态信息;若是,则将满足预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对目标线程进行清除操作,以对服务器进行内存回收;其中,错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。本发明实现了服务器内存的自动回收,能够在程序出错时,进行问题快速定位,提升了服务器稳定性。本发明还公开了一种装置、设备及存储介质,具有相应技术效果。

Description

一种服务器内存回收方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种服务器内存回收方法、装置、设备及计算机可读存储介质。
背景技术
随着虚拟化技术的发展,为了对服务器资源更好的利用,通常在服务器中部署虚拟机,如Java虚拟机。虚拟机的运行程序的内存空间是在启动前向服务器主机申请的,虚拟机在程序运行期间不能向它所运行的服务器申请更多的空间。
虽然虚拟机有内存回收机制,但是在服务器运行的过程中,如果用户误操作删掉或者修改了重要文件,一旦程序出现错误,导致在短时间内创建大量线程或者对象时,由于虚拟机本身的垃圾回收机制的滞后和无法判断异常程序的特性,无法解决这种情况造成的虚拟机内存不足。如果想要查看服务运行的详细信息,一般都需要登录到服务器后台,通过控制台命令查看服务器各个参数,需要操作人员已掌握的知识去分析服务器运行的状况。当对服务器进行问题定位时,需要用户对服务器操作技能有较好的了解,要不然当服务器出现问题时都不能直接而快速的找到问题所在,导致问题解决滞后,程序无法正常运行,服务器稳定性差。
综上所述,如何有效地解决服务器运行程序出现错误时,问题解决滞后,程序无法正常运行,服务器稳定性差等问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种服务器内存回收方法,该方法实现了服务器内存的自动回收,能够在程序出错时,进行问题快速定位,提升了服务器稳定性;本发明的另一目的是提供一种服务器内存回收装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种服务器内存回收方法,包括:
当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定所述目标虚拟机中CPU占用最高的目标进程;
获取所述目标进程包含的各线程分别对应的运行状态信息;
判断是否存在满足预设线程异常判定条件的运行状态信息;
若是,则将满足所述预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对所述目标线程进行清除操作,以对所述服务器进行内存回收;
其中,所述错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
在本发明的一种具体实施方式中,判断是否存在满足预设线程异常判定条件的运行状态信息,包括:
分别从各所述运行状态信息中筛选得到线程等待时长;
判断是否存在超出预设时长的线程等待时长;
将满足所述预设线程异常判定条件的运行状态信息对应对的线程确定为目标线程,包括:
将线程等待时长超出所述预设时长的运行状态信息对应的线程确定为目标线程。
在本发明的一种具体实施方式中,判断是否存在满足预设线程异常判定条件的运行状态信息,包括:
分别从各所述运行状态信息中筛选得到线程等待时长;
判断是否存在超出预设时长的线程等待时长;
将满足所述预设线程异常判定条件的运行状态信息对应对的线程确定为目标线程,包括:
将线程等待时长超出所述预设时长的运行状态信息对应的线程确定为目标线程。
在本发明的一种具体实施方式中,获取所述目标进程包含的各线程分别对应的运行状态信息,包括:
确定所述目标进程的目标进程标识信息;
根据所述目标进程标识信息查找所述目标进程包含的各所述线程;
获取各所述线程分别对应的运行状态信息。
在本发明的一种具体实施方式中,根据所述目标进程标识信息查找所述目标进程包含的各所述线程,包括:
查找所述目标进程标识信息对应的各目标线程标识信息;其中,所述目标进程标识信息与所述目标线程标识信息为一对多的对应关系;
查找各所述目标线程标识信息分别对应的线程。
一种服务器内存回收装置,包括:
进程确定模块,用于当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定所述目标虚拟机中CPU占用最高的目标进程;
运行状态获取模块,用于获取所述目标进程包含的各线程分别对应的运行状态信息;
线程异常判断模块,用于判断是否存在满足预设线程异常判定条件的运行状态信息;
内存回收模块,用于当确定存在满足预设线程异常判定条件的运行状态信息时,将满足所述预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对所述目标线程进行清除操作,以对所述服务器进行内存回收;
其中,所述错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
在本发明的一种具体实施方式中,所述线程异常判断模块包括:
信息筛选子模块,用于分别从各所述运行状态信息中筛选得到线程等待时长;
线程异常判断子模块,用于判断是否存在超出预设时长的线程等待时长;
所述内存回收模块包括线程确定子模块,所述线程确定子模块具体为将线程等待时长超出所述预设时长的运行状态信息对应的线程确定为目标线程的模块。
在本发明的一种具体实施方式中,还包括:
内存监测模块,用于在确定存在满足预设线程异常判定条件的运行状态信息之后,对所述目标线程进行清除操作之前,利用所述错误计数模型对所述目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果;
内存异常判断模块,用于判断所述内存监测结果是否满足预设内存异常判定条件;
内存回收模块具体为在确定所述内存监测结否满足预设内存异常判定条件时,对所述目标线程进行清除操作的模块。
一种服务器内存回收设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述服务器内存回收方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述服务器内存回收方法的步骤。
本发明所提供的服务器内存回收方法,当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定目标虚拟机中CPU占用最高的目标进程;获取目标进程包含的各线程分别对应的运行状态信息;判断是否存在满足预设线程异常判定条件的运行状态信息;若是,则将满足预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对目标线程进行清除操作,以对服务器进行内存回收;其中,错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
由上述技术方案可知,通过利用常见虚拟机错误和用户自定义错误预先训练得到错误计数模型,由于当虚拟机中存在常见虚拟机错误或用户自定义错误时,会导致虚拟机中出现CPU占用明显升高的进程,因此当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用错误计数模型确定目标虚拟机中CPU占用最高的目标进程。预先设置线程异常判定条件,当确定目标进程中存在满足预设线程异常判定条件的目标线程时,对该线程进行清除,从而实现了服务器内存的自动回收,能够在程序出错时,进行问题快速定位,为服务器程序运行提供良好的运行环境,提升了服务器稳定性。
相应的,本发明还提供了与上述服务器内存回收方法相对应的服务器内存回收装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中服务器内存回收方法的一种实施流程图;
图2为本发明实施例中服务器内存回收方法的另一种实施流程图;
图3为本发明实施例中一种服务器内存回收装置的结构框图;
图4为本发明实施例中一种服务器内存回收设备的结构框图;
图5为本实施例提供的一种服务器内存回收设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1为本发明实施例中服务器内存回收方法的一种实施流程图,该方法可以包括以下步骤:
S101:当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定目标虚拟机中CPU占用最高的目标进程。
其中,错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
预先利用常见虚拟机错误和用户自定义错误进行模型训练,得到错误计数模型,错误计数模型能够在虚拟机中存在常见虚拟机错误或用户自定义错误时,对虚拟机中出现CPU占用明显升高的进程进行检测。在服务器运行过程中,对服务器中预先部署的各虚拟机的内存占用情况进行检测,当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定目标虚拟机中CPU占用最高的目标进程。
S102:获取目标进程包含的各线程分别对应的运行状态信息。
由于一个进程通常包含多个线程,在利用错误计数模型确定出目标虚拟机中CPU占用最高的目标进程之后,获取目标进程包含的各线程分别对应的运行状态信息。在获取到各线程分别对应的运行状态信息之后,还可以根据实时数据分析,提供运行状态信分析统计接口,如restful接口,可提供给web页面使用,达到实时监控服务器运行详细状况的目的,让一般的运维人员也能通过web页面直观的看到并看懂服务器运行状况。
S103:判断是否存在满足预设线程异常判定条件的运行状态信息,若是,则执行步骤S104,若否,则不做处理。
预先设置对线程是否异常进行判定的线程异常判定条件,在获取到目标进程包含的各线程分别对应的运行状态信息之后,判断是否存在满足预设线程异常判定条件的运行状态信息,若是,则说明确实存在异常线程,执行步骤S104,若否,则说明不存在异常线程,不做处理。
预设线程异常判定条件可以为线程等待时间超出预先设置的线程等待时长。
S104:将满足预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对目标线程进行清除操作,以对服务器进行内存回收。
线程异常会引起服务器内存消耗较多,在确定存在满足预设线程异常判定条件的运行状态信息之后,说明确实存在异常线程,将满足预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对目标线程进行清除操作,从而实现对服务器内存的回收。
预先设置对虚拟机进行自动化监控的监控程序,并利用常见虚拟机错误和用户自定义错误预先训练得到错误计数模型,将错误计数模型作为一个单独的服务部署,通过结合用户自定义错误进行错误计数模型训练,使得错误计数模型更能适应用户的实际业务场景。当服务器中存在内存占用率高于预设值的目标虚拟机时,利用错误计数模型自动定位到标虚拟机中CPU占用最高的目标进程,并自动查找目标线程中的异常线程,及时对异常线程进行清除,让Java虚拟机内存在一个正常范围内,保证Java虚拟机的正常运行,从而提供稳定的服务。进而使得服务器内存得到释放,从而为服务器程序运行提供良好的运行环境,提升了服务器稳定性。
由上述技术方案可知,通过利用常见虚拟机错误和用户自定义错误预先训练得到错误计数模型,由于当虚拟机中存在常见虚拟机错误或用户自定义错误时,会导致虚拟机中出现CPU占用明显升高的进程,因此当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用错误计数模型确定目标虚拟机中CPU占用最高的目标进程。预先设置线程异常判定条件,当确定目标进程中存在满足预设线程异常判定条件的目标线程时,对该线程进行清除,从而实现了服务器内存的自动回收,能够在程序出错时,进行问题快速定位,为服务器程序运行提供良好的运行环境,提升了服务器稳定性。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
参见图2,图2为本发明实施例中服务器内存回收方法的另一种实施流程图,该方法可以包括以下步骤:
S201:当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定目标虚拟机中CPU占用最高的目标进程。
其中,错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
在对服务器中各虚拟机的内存占用率进行检测时,如,当服务器所在系统为linux系统时,可以通过top命令监控linux的系统状况,并实时显示系统中各个虚拟机内存资源的占用情况。
S202:确定目标进程的目标进程标识信息。
虚拟机中的每个进程均存在自身特有的进程标识信息(process id),在利用错误计数模型确定出目标虚拟机中CPU占用最高的目标进程之后,确定目标进程的目标进程标识信息。
S203:根据目标进程标识信息查找目标进程包含的各线程。
预先设置进程标识信息与进程包含的各线程之间的对应关系,在确定出目标虚拟机中CPU占用最高的目标进程的目标进程标识信息之后,根据目标进程标识信息查找目标进程包含的各线程。
在本发明的一种具体实施方式中,步骤S203可以包括以下步骤:
步骤一:查找目标进程标识信息对应的各目标线程标识信息;
其中,目标进程标识信息与目标线程标识信息为一对多的对应关系;
步骤二:查找各目标线程标识信息分别对应的线程。
为方便描述,可以将上述两个步骤结合起来进行说明。
预先设置进程标识信息与进程包含的各线程的线程标识信息之间的对应关系,在确定出目标虚拟机中CPU占用最高的目标进程的目标进程标识信息之后,查找目标进程标识信息对应的各目标线程标识信息,再查找各目标线程标识信息分别对应的线程,从而实现了对CPU占用最高的目标进程包含的各线程的自动查找。
S204:获取各线程分别对应的运行状态信息。
S205:分别从各运行状态信息中筛选得到线程等待时长。
线程的运行状态信息中包含线程等待时长、运行时长等,在获取到各线程分别对应的运行状态信息之后,分别从各运行状态信息中筛选得到线程等待时长。
S206:判断是否存在超出预设时长的线程等待时长,若是,则执行步骤S207,若否,则不做处理。
在分别从各运行状态信息中筛选得到线程等待时长之后,判断是否存在超出预设时长的线程等待时长,若是,则说明该线程一直占用系统内存而不进行其他工作,很可能存在异常线程,执行步骤S207,若否,则说明不存在异常线程,不做处理。
S207:利用错误计数模型对目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果。
虚拟机需要分配内存的主要区域是栈内存和堆内存,错误程序大量创建java对象时会导致堆内存短时间扩张,或是创建大量线程就会去申请栈内存,导致栈内存飙升。当确定存在超出预设时长的线程等待时长时,说明该线程一直占用系统内存而不进行其他工作,很可能存在异常线程,利用错误计数模型对目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果。
S208:判断内存监测结果是否满足预设内存异常判定条件,若是,则执行步骤S209,若否,则不做处理。
预先设置对虚拟机的堆内存和栈内存是否异常进行判定的内存判定条件,在利用错误计数模型对目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果之后,判断内存监测结果是否满足预设内存异常判定条件,如通过错误计数模型实时监测栈内存与堆内存,发现是否存在短时间异常飙升的内存,若是,则说明确实存在异常线程,执行步骤S209,若否,则说明当前不存在异常线程,不做处理。
预设内存异常判定条件可以为内存占用率超出预先设置的内存占用率。
S209:将线程等待时长超出预设时长的运行状态信息对应的线程确定为目标线程。
在确定内存监测结果满足预设内存异常判定条件之后,说明确实存在异常线程,将线程等待时长超出预设时长的运行状态信息对应的线程确定为目标线程,从而分析统计出导致内存飙升的线程。通过结合内存监测避免了单凭线程分析来归类异常线程可能存在的误判,较大地提高了异常线程判别的准确性。
S210:对目标线程进行清除操作,以对服务器进行内存回收。
相应于上面的方法实施例,本发明还提供了一种服务器内存回收装置,下文描述的服务器内存回收装置与上文描述的服务器内存回收方法可相互对应参照。
参见图3,图3为本发明实施例中一种服务器内存回收装置的结构框图,该装置可以包括:
进程确定模块31,用于当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定目标虚拟机中CPU占用最高的目标进程;
运行状态获取模块32,用于获取目标进程包含的各线程分别对应的运行状态信息;
线程异常判断模块33,用于判断是否存在满足预设线程异常判定条件的运行状态信息;
内存回收模块34,用于当确定存在满足预设线程异常判定条件的运行状态信息时,将满足预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对目标线程进行清除操作,以对服务器进行内存回收;
其中,错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
由上述技术方案可知,通过利用常见虚拟机错误和用户自定义错误预先训练得到错误计数模型,由于当虚拟机中存在常见虚拟机错误或用户自定义错误时,会导致虚拟机中出现CPU占用明显升高的进程,因此当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用错误计数模型确定目标虚拟机中CPU占用最高的目标进程。预先设置线程异常判定条件,当确定目标进程中存在满足预设线程异常判定条件的目标线程时,对该线程进行清除,从而实现了服务器内存的自动回收,能够在程序出错时,进行问题快速定位,为服务器程序运行提供良好的运行环境,提升了服务器稳定性。
在本发明的一种具体实施方式中,线程异常判断模块33包括:
信息筛选子模块,用于分别从各运行状态信息中筛选得到线程等待时长;
线程异常判断子模块,用于判断是否存在超出预设时长的线程等待时长;
内存回收模块34包括线程确定子模块,线程确定子模块具体为将线程等待时长超出预设时长的运行状态信息对应的线程确定为目标线程的模块。
在本发明的一种具体实施方式中,该装置还可以包括:
内存监测模块,用于在确定存在满足预设线程异常判定条件的运行状态信息之后,对目标线程进行清除操作之前,利用错误计数模型对目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果;
内存异常判断模块,用于判断内存监测结果是否满足预设内存异常判定条件;
内存回收模块34具体为在确定内存监测结否满足预设内存异常判定条件时,对目标线程进行清除操作的模块。
在本发明的一种具体实施方式中,运行状态获取模块32包括:
进程标识确定子模块,用于确定目标进程的目标进程标识信息;
线程查找子模块,用于根据目标进程标识信息查找目标进程包含的各线程;
运行状态获取子模块,用于获取各线程分别对应的运行状态信息。
在本发明的一种具体实施方式中,线程查找子模块包括:
线程标识查找单元,用于查找目标进程标识信息对应的各目标线程标识信息;其中,目标进程标识信息与目标线程标识信息为一对多的对应关系;
线程查找单元,用于查找各目标线程标识信息分别对应的线程。
相应于上面的方法实施例,参见图4,图4为本发明所提供的服务器内存回收设备的示意图,该设备可以包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的服务器内存回收方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种服务器内存回收设备的具体结构示意图,该服务器内存回收设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在服务器内存回收设备301上执行存储器332中的一系列指令操作。
服务器内存回收设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的服务器内存回收方法中的步骤可以由服务器内存回收设备的结构实现。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定目标虚拟机中CPU占用最高的目标进程;获取目标进程包含的各线程分别对应的运行状态信息;判断是否存在满足预设线程异常判定条件的运行状态信息;若是,则将满足预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对目标线程进行清除操作,以对服务器进行内存回收;其中,错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种服务器内存回收方法,其特征在于,包括:
当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定所述目标虚拟机中CPU占用最高的目标进程;
获取所述目标进程包含的各线程分别对应的运行状态信息;
判断是否存在满足预设线程异常判定条件的运行状态信息;
若是,则将满足所述预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对所述目标线程进行清除操作,以对所述服务器进行内存回收;
其中,所述错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
2.根据权利要求1所述的服务器内存回收方法,其特征在于,判断是否存在满足预设线程异常判定条件的运行状态信息,包括:
分别从各所述运行状态信息中筛选得到线程等待时长;
判断是否存在超出预设时长的线程等待时长;
将满足所述预设线程异常判定条件的运行状态信息对应对的线程确定为目标线程,包括:
将线程等待时长超出所述预设时长的运行状态信息对应的线程确定为目标线程。
3.根据权利要求1或2所述的服务器内存回收方法,其特征在于,在确定存在满足预设线程异常判定条件的运行状态信息之后,对所述目标线程进行清除操作之前,还包括:
利用所述错误计数模型对所述目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果;
判断所述内存监测结果是否满足预设内存异常判定条件;
若是,则执行所述对所述目标线程进行清除操作的步骤。
4.根据权利要求1所述的服务器内存回收方法,其特征在于,获取所述目标进程包含的各线程分别对应的运行状态信息,包括:
确定所述目标进程的目标进程标识信息;
根据所述目标进程标识信息查找所述目标进程包含的各所述线程;
获取各所述线程分别对应的运行状态信息。
5.根据权利要求4所述的服务器内存回收方法,其特征在于,根据所述目标进程标识信息查找所述目标进程包含的各所述线程,包括:
查找所述目标进程标识信息对应的各目标线程标识信息;其中,所述目标进程标识信息与所述目标线程标识信息为一对多的对应关系;
查找各所述目标线程标识信息分别对应的线程。
6.一种服务器内存回收装置,其特征在于,包括:
进程确定模块,用于当检测到服务器中存在内存占用率高于预设值的目标虚拟机时,利用预训练的错误计数模型确定所述目标虚拟机中CPU占用最高的目标进程;
运行状态获取模块,用于获取所述目标进程包含的各线程分别对应的运行状态信息;
线程异常判断模块,用于判断是否存在满足预设线程异常判定条件的运行状态信息;
内存回收模块,用于当确定存在满足预设线程异常判定条件的运行状态信息时,将满足所述预设线程异常判定条件的运行状态信息对应的线程确定为目标线程,对所述目标线程进行清除操作,以对所述服务器进行内存回收;
其中,所述错误计数模型为通过利用常见虚拟机错误和用户自定义错误进行训练得到。
7.根据权利要求6所述的服务器内存回收装置,其特征在于,所述线程异常判断模块包括:
信息筛选子模块,用于分别从各所述运行状态信息中筛选得到线程等待时长;
线程异常判断子模块,用于判断是否存在超出预设时长的线程等待时长;
所述内存回收模块包括线程确定子模块,所述线程确定子模块具体为将线程等待时长超出所述预设时长的运行状态信息对应的线程确定为目标线程的模块。
8.根据权利要求6或7所述的服务器内存回收装置,其特征在于,还包括:
内存监测模块,用于在确定存在满足预设线程异常判定条件的运行状态信息之后,对所述目标线程进行清除操作之前,利用所述错误计数模型对所述目标虚拟机的堆内存和各栈内存进行监测,得到内存监测结果;
内存异常判断模块,用于判断所述内存监测结果是否满足预设内存异常判定条件;
内存回收模块具体为在确定所述内存监测结否满足预设内存异常判定条件时,对所述目标线程进行清除操作的模块。
9.一种服务器内存回收设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述服务器内存回收方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述服务器内存回收方法的步骤。
CN202110966803.2A 2021-08-23 2021-08-23 一种服务器内存回收方法、装置、设备及可读存储介质 Withdrawn CN113672390A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110966803.2A CN113672390A (zh) 2021-08-23 2021-08-23 一种服务器内存回收方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110966803.2A CN113672390A (zh) 2021-08-23 2021-08-23 一种服务器内存回收方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN113672390A true CN113672390A (zh) 2021-11-19

Family

ID=78544997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110966803.2A Withdrawn CN113672390A (zh) 2021-08-23 2021-08-23 一种服务器内存回收方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113672390A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110032449A (ko) * 2009-09-23 2011-03-30 한국전자통신연구원 행위기반 탐지 장치 및 방법
CN105718303A (zh) * 2016-01-20 2016-06-29 国家电网公司 虚拟机异常检测方法、装置及系统
CN107861878A (zh) * 2017-11-22 2018-03-30 泰康保险集团股份有限公司 Java应用程序性能问题定位的方法、装置和设备
CN108073441A (zh) * 2016-11-14 2018-05-25 阿里巴巴集团控股有限公司 一种虚拟机内存监管方法与设备
CN113157401A (zh) * 2021-05-21 2021-07-23 深圳前海微众银行股份有限公司 一种Java虚拟机管理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110032449A (ko) * 2009-09-23 2011-03-30 한국전자통신연구원 행위기반 탐지 장치 및 방법
CN105718303A (zh) * 2016-01-20 2016-06-29 国家电网公司 虚拟机异常检测方法、装置及系统
CN108073441A (zh) * 2016-11-14 2018-05-25 阿里巴巴集团控股有限公司 一种虚拟机内存监管方法与设备
CN107861878A (zh) * 2017-11-22 2018-03-30 泰康保险集团股份有限公司 Java应用程序性能问题定位的方法、装置和设备
CN113157401A (zh) * 2021-05-21 2021-07-23 深圳前海微众银行股份有限公司 一种Java虚拟机管理方法及装置

Similar Documents

Publication Publication Date Title
US20170132063A1 (en) Information system fault scenario information collecting method and system
US20160041848A1 (en) Methods and Apparatuses for Determining a Leak of Resource and Predicting Usage Condition of Resource
EP3591485B1 (en) Method and device for monitoring for equipment failure
CN105955876B (zh) 一种数据监控处理方法以及装置
CN108287769B (zh) 一种信息处理方法及装置
CN101373450B (zh) 处理cpu异常的方法及系统
CN112529223A (zh) 一种设备故障报修方法、装置、服务器及储存介质
CN112115031A (zh) 集群状态监控方法及装置
CN114706708B (zh) 一种用于Linux操作系统的故障分析方法及系统
CN109344046B (zh) 一种数据处理方法、装置、介质及电子设备
CN114756406A (zh) 应用程序崩溃的处理方法、装置及电子设备
CN110674008B (zh) Ssd的问题盘日志信息收集方法、装置、设备及介质
CN113672390A (zh) 一种服务器内存回收方法、装置、设备及可读存储介质
CN111526038B (zh) 业务请求分发方法、装置、计算机设备及可读存储介质
CN111478792B (zh) 一种割接信息处理方法、系统及装置
CN112269697A (zh) 一种设备存储性能测试方法、系统及相关装置
CN116723085A (zh) 服务冲突的处理方法、装置、存储介质及电子装置
CN111124818A (zh) 一种扩展器Expander的监控方法、装置及设备
CN113472881B (zh) 在线终端设备的统计方法和装置
CN110647419A (zh) 一种故障检测的方法、装置、计算机存储介质及终端
CN111092954B (zh) 一种生成微服务的方法和装置及电子设备
CN113127294A (zh) 一种服务器故障定位方法、装置、设备及可读存储介质
CN113435503A (zh) 数据处理方法及装置、存储介质和服务器
CN114064387A (zh) 日志监控方法、系统、装置及计算机可读存储介质
CN105681064A (zh) 一种信息处理的方法及装置

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20211119