一种内存监控方法及服务器技术

技术编号:12668559 阅读:84 留言:0更新日期:2016-01-07 12:54
本申请涉及一种内存监控方法,由客户端向服务器发送内存监控部署请求,之后,客户端接收所述服务器发送的部署代理数据,并根据所述代理数据中包含的所述服务器为所述客户端生成的部署脚本,下载内存监控代理程序;通过运行所述内存监控程序,对所述内存进行定时采样,以获取所述内存的状态数据;之后,通过命令输出格式将采样到的所述内存的状态数据输出,以生成日志数据;并且将所述日志数据同步至所述服务器,从而使得服务器可以根据所述日志数据生成内存状态趋势报告,并将日志文件与快照文件对比,对系统内存运行作出预警。

【技术实现步骤摘要】

本申请涉及互联网领域,具体涉及到一种内存监控方法及服务器
技术介绍
计算机系统以及一些网络设备的内存不管容量有多大,均是有限的,因此有效的应用这些内存是一个十分重要的问题。互联网中的系统开发者,例如java应用系统开发者在一个新开发的应用系统正式上线之前,都需要先对该系统的内存使用情况进行监控分析,以发现可能存在的问题,防止内存泄露造成的宕机情况。有时候在系统中会出现内存泄露问题,内存泄漏并非指内存在物理上的消失,而是应用程序(即申请和使用内存的实体)在分配某段内存后,由于程序设计上的错误,例如,未设计释放或者是主观认为不必处理等原因,失去了对该段内存的控制,因而造成了内存的浪费。其中,对内存的监控数据通常包括内存区域、内存对象、堆栈和线程信息、java进程句柄情况、系统被调用方法及相应时间以及系统内部方法执行链路以及响应时间等数据,通过对内存进行采样,记录快照并提供快照比较分析,以对系统存在的问题进行定位和预警。现有技术中,存在的几种内存监控组件,例如,java监控和管理控制台(JavaMonitoring and Management Console, Jconsole,)、性能测试监控工具 Nmon 以及 Java 剖析工具(Java profiler, JprofiIe)等工具均可以对内存的使用状态信息进行采集,但是该些组件都不能够提供详细数据,对内存运行数据进行分析。
技术实现思路
本申请的目的是提供一种内存监控方法,以实现通过客户端监控内存运行状态数据,并生成日志文件,由服务器根据日志文件绘制内存运行趋势报告,对内存状态进行分析。为实现上述目的,本申请提供了一种内存监控方法,该方法包括:向服务器发送内存监控部署请求,所述内存监控部署请求用以请求所述服务器为所述客户端部署监控所述客户端运行的应用系统的内存状态;接收所述服务器发送的部署代理数据,所述代理数据中包含所述服务器为所述客户端生成的部署脚本;根据所述部署脚本,下载内存监控代理程序;运行所述内存监控程序,对所述内存进行定时采样,以获取所述内存的状态数据;通过命令输出格式将采样到的所述内存的状态数据输出,以生成日志数据;将所述日志数据同步至所述服务器,以便于所述服务器根据所述日志数据生成内存状态趋势报告。本申请还提供了一种内存监控方法,所述方法包括:接收客户端发送的内存监控部署请求,所述内存监控部署请求用以请求服务器为所述客户端部署监控所述客户端运行的应用系统的内存状态;向所述客户端发送部署代理数据,所述代理数据中包含所述服务器为所述客户端生成的部署脚本,触发所述客户端根据所述部署脚本,下载内存监控代理程序,并根据所述内存监控程序,对所述内存进行定时采样,获取所述内存的状态数据;接收所述客户端发送的日志数据,所述日志数据由所述客户端通过命令输出格式将所述客户端采样到的所述内存的状态数据输出后生成;根据所述日志数据,提取所述日志数据中的所述内存的状态数据;根据所述状态数据,绘制内存状态趋势报告图。本申请还提供了一种内存监控客户端,所述客户端包括:部署请求单元,用于向服务器发送内存监控部署请求,所述内存监控部署请求用以请求所述服务器为所述客户端部署监控所述客户端运行的应用系统的内存状态;接收单元,用于接收所述服务器发送的部署代理数据,所述代理数据中包含所述服务器为所述客户端生成的部署脚本;下载单元,用于根据所述部署脚本,下载内存监控代理程序;运行单元,用于运行所述内存监控程序,对所述内存进行定时采样,以获取所述内存的状态数据;生成单元,用于通过命令输出格式将采样到的所述内存的状态数据输出,以生成日志数据;同步单元,用于将所述日志数据同步至所述服务器,以便于所述服务器根据所述日志数据生成内存状态趋势报告。本申请实施例最后提供了一种内存监控服务器,所述服务器包括:部署请求接收单元,用于接收客户端发送的内存监控部署请求,所述内存监控部署请求用以请求服务器为所述客户端部署监控所述客户端运行的应用系统的内存状态;发送单元,用于向所述客户端发送部署代理数据,所述代理数据中包含所述服务器为所述客户端生成的部署脚本,触发所述客户端根据所述部署脚本,下载内存监控代理程序,并根据所述内存监控程序,对所述内存进行定时采样,获取所述内存的状态数据;日志数据接收单元,用于接收所述客户端发送的日志数据,所述日志数据由所述客户端通过命令输出格式将所述客户端采样到的所述内存的状态数据输出后生成;提取单元,用于根据所述日志数据,提取所述日志数据中的所述内存的状态数据; 报告生成单元,用于根据所述状态数据,绘制内存状态趋势报告图。本申请实施例提供了一种内存监控方法,由客户端向服务器发送内存监控部署请求,之后,客户端接收所述服务器发送的部署代理数据,并根据所述代理数据中包含的所述服务器为所述客户端生成的部署脚本,下载内存监控代理程序;通过运行所述内存监控程序,对所述内存进行定时采样,以获取所述内存的状态数据;之后,通过命令输出格式将采样到的所述内存的状态数据输出,以生成日志数据;并且将所述日志数据同步至所述服务器,从而使得服务器可以根据所述日志数据生成内存状态趋势报告,并将日志文件与快照文件对比,对系统内存运行作出预警。【附图说明】图1是本申请实施例提供的内存监控方法的一种应用系统架构图;图2为本申请实施例提供的内存监控方法的一种实施例的流程图;图3为本申请实施例提供的内存监控方法的一种实施例的交互图;图4为本申请实施例提供的内存监控方法的一种实施例的流程图;图5是本申请实施例提供的一种内存监控客户端的一种实施例的结构图;图6是本申请实施例提供的一种内存监控服务器的一种实施例的结构图;图7是本申请实施例生成的一种趋势报告图;图8是本申请实施例生成的另一种趋势报告图;图9是本申请实施例的一种使用状态设置报告图;图10是本申请实施例的一种使用状态数据分析图;图11是本申请实施例的一种使用状态数据分析图;图12是本申请实施例的一种使用状态数据分析图。【具体实施方式】下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。图1为本申请实施例提供的内存监控方法的应用架构图,其中包括客户端10和服务器20,所述客户端10上可以运行诸如JAVA系统、系统分析工具、浏览器等工具,所述服务器可以执行分析功能,服务器20与客户端10通过网络或者其他通讯链路连接,实现数据传输。JAVA系统开发人员开发好JAVA应用程序之后,需要对运行该Java系统的系统内存状态进行监控,以避免JAVA系统原因造成的内存泄露等问题。图2是本申请实施例提供的内存监控方法的流程图,该实施例中执行主体为客户端,该客户端中运行JAVA系统,特别是Java虚拟机(Java Virtual Machine, JVM)。可以进一步结合图3所示的交互状态,对本申请实施例做更进一步阐述。由图2可见,该实施例中的方法可以包括:步骤201,向服务器发送内存监控部署请求,所述内存监控部署请求用以请求所述服务器为所述客户端部署监控所述客户端运行的应用系统的内存状态;在该步骤中,用户可以通过客户端上的浏览器,向服务器的WEB层发送内存监控部署请求,请求服务器为客户端部署监控所述客户端运行的应用系统的内存状态;例如,J本文档来自技高网...
一种内存监控方法及服务器

【技术保护点】
一种内存监控方法,其特征在于,包括:向服务器发送内存监控部署请求,所述内存监控部署请求用以请求所述服务器为所述客户端部署监控所述客户端运行的应用系统的内存状态;接收所述服务器发送的部署代理数据,所述部署代理数据中包含所述服务器为所述客户端生成的部署脚本;根据所述部署脚本,下载内存监控代理程序;运行所述内存监控程序,对所述内存进行定时采样,以获取所述内存的状态数据;通过命令输出格式将采样到的所述内存的状态数据输出,以生成日志数据;将所述日志数据同步至所述服务器,以便于所述服务器根据所述日志数据生成内存状态趋势报告。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈祖欢
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1