防止内存耗尽的方法及装置的制造方法

文档序号:9810583阅读:224来源:国知局
防止内存耗尽的方法及装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,尤其涉及一种防止内存耗尽的方法及装置。
【背景技术】
[0002]随着网络技术的快速发展,基于浏览器和服务器结构的系统越来越来流行。该系统将功能实现的核心部分集中在服务器中完成,简化了系统的开发、维护和使用。终端上只需安装一个浏览器,服务器中安装SQL Server (Structured Query Language,结构化查询语言)、甲骨文(Oracle)、MYSQL等数据库,浏览器通过服务器同数据库进行数据交互。
[0003]通常情况下,在浏览器通过服务器同数据库进行数据交互的过程中,为了使得用户可以查看对应的查询结果,服务器需要将满足查询条件的查询结果从数据库中加载到服务器中的内存中,当查询结果包含较多数据时,会占用较多的内存资源。然而,由于服务器中的内存有限,如果不能及时释放查询结果所占的内存,随着查询操作的增加,服务器中的内存会耗尽,从而出现运行缓慢,甚至卡机的情况。

【发明内容】

[0004]本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005]为此,本申请的第一个目的在于提出一种防止内存耗尽的方法,该方法可可及时向管理人员发送释放内存的报警信息,方便管理人员及时释放,避免应用服务器出现内存耗尽的情况,进而可提高服务器的稳定性和健壮性。
[0006]本申请的第二个目的在于提出一种防止内存耗尽的装置。
[0007]为达上述目的,本申请第一方面实施例提出了一种防止内存耗尽的方法,包括:当监控到查询数据库的操作时,拦截所述查询数据库的操作;以及针对每次拦截行为,判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得所述预设对象中元素的大小,并根据预定标准和获得的所述预设对象中元素的大小确定对应监控对象的级别,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息。
[0008]本申请实施例的防止内存耗尽的方法,拦截查询数据库的操作,并针对每次拦截行为,判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得预设对象中元素的大小,并根据预定标准和获得的预设对象中元素的大小确定对应监控对象的级另IJ,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息,以使管理人员根据报警信息及时释放内存,避免应用服务器出现内存耗尽的情况,进而可提高服务器的稳定性和健壮性。
[0009]为达上述目的,本申请第二方面实施例提出了一种防止内存耗尽的装置,包括:拦截模块,用于当监控到查询数据库的操作时,拦截所述查询数据库的操作;以及处理模块,用于针对每次拦截行为,判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得所述预设对象中元素的大小,并根据预定标准和获得的所述预设对象中元素的大小确定对应监控对象的级别,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息。
[0010]本申请实施例的防止内存耗尽的装置,通过拦截模块拦截查询数据库的操作,针对每次拦截行为,处理模块判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得预设对象中元素的大小,并根据预定标准和获得的预设对象中元素的大小确定对应监控对象的级别,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息,以使管理人员根据报警信息及时释放内存,避免应用服务器出现内存耗尽的情况,进而可提高服务器的稳定性和健壮性。
【附图说明】
[0011]图1是本申请一个实施例的防止内存耗尽的方法的流程图。
[0012]图2是本申请一个实施例的防止内存耗尽的装置的结构示意图。
[0013]图3是本申请另一个实施例的防止内存耗尽的装置的结构示意图。
【具体实施方式】
[0014]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0015]下面参考附图描述本申请实施例的防止内存耗尽的方法及装置。
[0016]图1是本申请一个实施例的防止内存耗尽的方法的流程图,如图1所示,该防止内存耗尽的方法包括:
[0017]S101,当监控到查询数据库的操作时,拦截所述查询数据库的操作。
[0018]在该实施例中,首先,基于切面编程创建一个拦截函数,其中,该拦截函数主要用于拦截应用服务器向数据库发送的查询操作。然后,对应用服务器向数据库发送的查询操作进行监控,当监控到应用服务器向数据库发送的查询操作时,通过拦截函数拦截查询数据库的操作。
[0019]S102,针对每次拦截行为,判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得预设对象中元素的大小,并根据预定标准和获得的预设对象中元素的大小确定对应监控对象的级别,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息。
[0020]当通过拦截函数获得查询数据库操作后,可判断所拦截的查询操作的返回结果是否为预设对象,其中,上述预设对象可以包括集合,上述集合可以是set (集)、list (列表)和map (映射)等。当上述查询操作的返回结果是预设对象例如集合时,可以获得预设对象中元素的大小,然后基于预定标准确定预设对象所对应的监控对象的级别,在确定对应监控对象的级别后,可打印相应级别的监控对象。其中,上述监控对象可以包括但不限于日
O
[0021]例如,预设标准为:预设对象中元素的大小小于或者等于lk,对应的日志的级别为DEBUG级别;预设对象中元素的大小大于lk,且小于或者等于5k,对应的日志的级别为INFO级别;预设对象中元素的大小大于5k,且小于或者等于1M,对应的日志的级别为WARN级别;预设对象中元素的大小大于1M,对应的日志的级别为ERROR级别。若确定预设对象中元素的大小为25k,根据预设标准可以确定该预设对象对应的日志的级别为WARN级别,可输出WARN级别的日志。
[0022]在该实施例中,当所拦截的查询操作的返回结果不是预设对象时,可以查看返回结果对应的对象属性中是否包含预设对象,若包含预设对象,则获得该预设对象中元素的大小。
[0023]例如,当拦截函数所拦截的查询操作的返回结果不是集合,而是一般对象时,可查看对象对应的属性中是否包含集合,若包含集合,则获得集合中元素的大小,并根据预定标准和获得的集合中元素的大小确定对应集合的日志的级别。
[0024]在打印相应级别的日志的过程中,监控平台收集不同级别的日志,并对不同级别的日志进行统计,如果对应级别的日志的数量超过对应的阈值,则监控平台可通过邮件和/或短信的方式向相关人员发送不同级别的报警信息。相关人员在接收监控平台发送的报警信息后,可根据报警信息及时释放应用服务器中的内存。
[0025]例如,假定监控平台中设置INFO级别的日志对应的阈值为30000个,WARN级别的日志对应的阈值为10000个。如果监控平台监控到INFO级别的日志的数量超过了 30000个,或者WARN级别的日志数量超过10000个,此时,监控平台可以通过短信或者邮件的方式向管理人员发送报警信息,管理人员在接收监控平台发送的报警信息后,可及时释放内存,避免应用服务器出现内存耗尽的情况,进而可提高应用服务器的稳定性和健壮性。
[0026]本申请实施例的防止内存耗尽的方法,拦截查询数据库的操作,并针对每次拦截行为,判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得预设对象中元素的大小,并根据预定标准和获得的预设对象中元素的大小确定对应监控对象的级另IJ,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息,以使管理人员根据报警信息及时释放内存,避免应用服务器出现内存耗尽的情况,进而可提高服务器的稳定性和健壮性。
[0027]为了实现上述实施例,本申请还提出一种防止内存耗尽的装置。
[0028]图2是本申请一个实施例的防止内存耗尽的装置的结构示意图,如图2所示,该装置包括:拦截模块100和处理模块200,其中:
[0029]拦截模块100用于当监控到查询数据库的操作时,拦截查询数据库的操作;以及处理模块200用于针对每次拦截行为,判断所拦截的查询操作的返回结果是否为预设对象,若为预设对象,则获得预设对象中元素的大小,并根据预定标准和获得的预设对象中元素的大小确定对应监控对象的级别,以使监控平台对收集到的不同级别的监控对象进行统计,当不同级别的监控对象数量达到对应的阈值时,发送释放内存的报警信息。
[0030]其中,上述预设对象可以包括集合。上述集合可以是set (集)、list (列表)和map(映射)等,上述监控对象可以包括但不限于日志。
[0031]具体地,当处理模块200确定查询操作的返回结果是预设对象例如集合时,可以获得预设对象中元素的大小,然后基于预定标准确定预设对象所对应的日志的级别,并在确定对应日志的级别后,打印相应级别的日志。
[0032]例如,预设标准为:预设对象中元素的大小小于或者等于lk,对应的日志的级别为DEBUG级别;预设对象中元素的大小大于lk,且小于或者等于5k,对应的日志的级别为INFO级别;预设对象中元素的大小大于5k,且小于或者等于1M,对应的日志的级别为WARN级别;预设对象中元素的大小大于1M,对应的日志的级别为E
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1