【技术实现步骤摘要】
基于内存队列的网站动态性能监控方法及系统
本专利技术属于互联网
,涉及对网站系统的监控技术,具体是指网站系统的动态性能监控系统。
技术介绍
现有的网站系统的动态性能监控系统,通常的实现方式为:采集完整的访问请求数据,并存储进数据库或者其他数据文件。在需要展示时,再从数据库或者数据文件中使用SQL方式或者IO流读写方式,获取到想要的数据,再行统计和计算。优点是:1、存入的信息量大,可以获取更多的请求相关数据,可以做更多扩展性的分析。2、数据可以持久化,保存较长的时间。3、获取数据后进行统计类计算相对简单。缺点是:1、数据存储入数据库或者数据文件需要额外依赖(数据库或者数据文件的依赖)。2、监控数据的读写,反应速度较慢,依赖于IO性能,无法满足高并发的需求,监控系统的运行对网站系统运行的直接构成影响。3、监控系统相对重量级,监控系统需要额外部署。4、采用先行记录完整的访问请求数据,然后在性能分析时再从中提取有价值的信息用于分析的方式,监控并记录的包含大量分析计算时不会被使用到的数据,严重浪费了存储资源。同时,监控数据中还包含虽然会被使用但使用频率极低的数据,同样占用大量存储资源。
技术实现思路
针对基于数据库或数据文件存储的网站系统动态性能监控反应慢等问题,本专利技术提出一种新的性能监控方法,基于该监控方法,监控系统即可以满足网站系统性能监控的一般需求,又不依赖数据库或者数据文件运行,反应快速,可以满足网站系统高并发需求。本专利技术提出的具体技术方案是:一种基于内存队列的网站动态性能监控方法,在内存中创建一个定长的监控队列;针对网站系统的每一个访问请求,获取 ...
【技术保护点】
一种基于内存队列的网站动态性能监控方法,其特征在于,在内存中创建一个定长的监控队列;针对网站系统的每一个访问请求,获取监控指标数据,并封装成经定义的数据结构对象,在监控队列中根据FIFO规则保存一定数量的数据结构对象;当请求查看监控数据时,在内存中另外申请一块与监控队列大小相等的内存空间创建计算队列,将当前监控队列中的数据对象复制到计算队列,对计算队列中的数据对象进行处理并输出处理结果。
【技术特征摘要】
1.一种基于内存队列的网站动态性能监控方法,其特征在于,在内存中创建一个定长的监控队列;针对网站系统的每一个访问请求,获取监控指标数据,并封装成经定义的数据结构对象,在监控队列中根据FIFO规则保存一定数量的数据结构对象;当请求查看监控数据时,在内存中另外申请一块与监控队列大小相等的内存空间创建计算队列,将当前监控队列中的数据对象复制到计算队列,对计算队列中的数据对象进行处理并输出处理结果。2.一种基于内存队列的网站动态性能监控系统,其特征在于,该监控系统包括请求触发模块、数据结构化模块、数据存储模块和输出计算模块,所述请求触发模块用于针对每一次访问请求分别在请求开始时和请求即将结束时两次触发性能监控系统,性能监控系统在被触发时临时获取系统控制权,获取请求信息并进行监控记录;当网站系统接收一个新的HTTP请求时,一次触发性能监控系统,性能监控系统暂时获取网站系统控制权,并且记录初始触发的时间,然后性能监控系统获取当前HTTP请求的线程THREAD,并把初始触发时间存入该线程,并向原系统移交控制权,网站系统继续执行;当网站系统完成一个HTTP请求时,二次触发性能监控系统,性能监控系统将暂时获取系统控制权,并且记录二次触发的时间,然后性能监控系统将调用监控主程序,把整个访问请求的信息发送到数据结构化模块,并向原系统移交系统控制权,网站系统继续执行;所述数据结构化模块用于把访问请求的信息中和性能相关的信息抽取出来,并封装成方便进行性能计算和排序的数据结构对象,包括:提取请求资源URI:获取当前HTTP请求中REQUEST域的requestURI值,判断是否携带字符串,如果携带,则去除及以后的字符串,判断是否携带字符串;JSESSIONID,如果携带,则去除;JSESSIONID及以后的字符串,余下的值做为请求资源URI;提取请求参数:获取当前HTTP请求中REQUEST域的queryString值,当queryString不为空,则对其进行URLDecoder编码;提取客户端IP:取当前HTTP请求中REQUEST域的x-forwarded-for值,如果为空,则依次尝试获取如下几个值:Proxy-Client-IP、WL-Proxy-Client-IP、HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、remoteAddr,当获取到一个正确的IP,则停止余下几个值的尝试获取,获取到的Ip做为正确的值;提取请求时间:以初始触发时间为请求时间;提取请求耗费时长:以初始触发时间和二次触发时间两者之间的差值做为请求耗费时长;所述数据结构化模块向内存申请一块空间,创建一个固定数据结构FunItem对象,把从访问请求的信息中提取的请求资源URI、请求参数、客户端IP、请求时间、请求耗费时长数据分别存入该数据对象,并将该数据对象发送给数据存储模块;所述数据存储模块用于在内存中创建并维护一个定长的监控队列,并把结构化的数据对象存储入监控队列中;当存储空间满时,数据存储模块根据队列FIFO原则,提出存入时间最早的数据对象;所述数据存储模块接收到数据...
【专利技术属性】
技术研发人员:韦海强,单培红,尉锦龙,卢会春,林静,王翔,
申请(专利权)人:杭州天翼智慧城市科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。