转: 页面缓存测试

问题回顾

  由于网站被频繁请求的页面为动态生成WEB页,导致消耗大量系统资源,为了提高用户对此类网页访问的响应时间,采用对其该部分页面使用Cache技术。

  对于这种类型的测试其实很简单,只要求测试人员做到以下两点就完全可以应付:

  1、对Cache在业务中的实现规则有充分了解(具体说来就是,有哪些页面使用了Cache,Cache的有效时间长度为多少,被测服务器端物理内存为多少,分配了多少空间给了Cache)。

  2、理解在测试过程中需要重点关注的相关性能计数器(例如内存)。

  测试第一步,验证

  验证Cache是否存在,是否满足实现规则。例如访问一个已经加有Cache的动态页面,第一次请求的页面响应时间为10秒,第二次为3秒,90 Percent 的响应时间不大于4秒,那么我们暂时可以认为Cache生效。在随后的测试过程中,使用ramp -up 方法对Cache进行测试,看到response time结果大致为,当第一个线程访问该页面时,RPT在一个很高的起点上,因为这时Web 服务器必须访问数据库,并生成页面,再将其存储在缓存中,这个过程消耗了大部分RPT,运行到第二线程时RPT成曲线下降到一个很低的点上,这是因为第二线程直接从内存中的Cache里读到了所需的页,这个点和随后增加的线程几乎在同一水平线上,平稳延续,当场景运行到20分钟左右,正好是到了Cache生命周期结束的时间点上,重复以上描述RPT曲线轨迹。在这里RPT不是随着用户的上升而上升,给人的感觉象是使用了COOKIE。

  测试第二步,并发

  通过设置并发点对同一动态页面的访问,测试Cache是否有等待时间过长的现象。因为第一到达目的地的线程会先到内存中存储它访问完数据库并生成完页面的缓存,这个时候其他线程只有乖乖等待第一线程做完写操作后方可进行读操作,大家知道一个线程在一次操作过程中只允许有写或者是读的权限,两种权限不允许在一个线程内同时进行,如果程序中的线程同步锁处理的不够好,那么可能会导致意外情况发生。例如在多用户同时访问该页面时,可能会出现所有线程请求失败,遇到这种情况,测试人员可以先多尝试用串行或者不加并发点进行测试并得出结论。根据经验遇到这种问题大多数为线程同步机制出现问题所导致。在测试过程中要更多关注WEB SERVER 的内存计数器其中包括(页交换比率\ pages reads\ private byte\ working set )如果缓存命中率底,那么内存页交换和pages reads会很高,如果大用户量访问,内存不能及时释放空间,则 working set和private byte会很高,如果怀疑有memory leak现象,可以把其他相关业务同时加上,把执行场景的时间拉长一些,看对其他业务的影响程度。在这里Cache的命中率是Cache的关键问题,如对以上计数器不是很理解还请查一下相关帮助文件,在这里就不做过多解释了。

  使用Cache的优点

  节省生成页面时所消耗的CPU和内存资源。对于大用户量的访问使RPT一样变的很短。

  对数据库的压力减少是显而易见.我个人觉得这个是最重要优势。

  对于最终用户和服务器之间,用户的请求时间变短了,那么就缩小了服务器的资源浪费。

时间: 2024-10-25 21:00:24

转: 页面缓存测试的相关文章

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度. 一.简单一行指令即可实现 <%@ OutputCache VaryByParam="none" Duration="300" %> 这样整个页面就被缓存了,由于我是首页进行的缓存,没有任何参数所以VaryByParam值设置为none,如果希望通过指定的参数来缓存内容可以设置"id;classid"这种形式,或者干脆就用"*",通过所有参数来

Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin

Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin

页面缓存与不缓存设置

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息,包括浏览器端,中间缓存服务器端(如:squid等),Web服务器端.本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情况. HTTP协议中关于缓存的信息头关键字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等. HTTP1.0中通过Pragma 控制页面缓存,可以设置:Pragma或

缓存插件 EHCache 页面缓存CachingFilter

Ehcache基本用法 CacheManager cacheManager = CacheManager.create(); // 或者 cacheManager = CacheManager.getInstance(); // 或者 cacheManager = CacheManager.create("/config/ehcache.xml"); // 或者 cacheManager = CacheManager.create("http://localhost:8080

MVC3缓存:使用页面缓存

在以前的WebForm的开发中,在页面的头部加上OutputCache即可启用页面缓存,而在MVC3中,使用了Razor模板引擎的话,该如何使用页面缓存呢?如何启用另一个参考的博客地址:http://www.cnblogs.com/luminji/archive/2011/09/14/2174751.html在MVC3中要如果要启用页面缓存,在页面对应的Action前面加上一个OutputCache属性即可. 我们建一个Demo来测试一下,在此Demo中,在View的Home目录下的Index.

Nginx反向代理 负载均衡 页面缓存 URL重写及读写分离

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin

MVC3缓存之一:使用页面缓存

MVC3缓存之一:使用页面缓存 在MVC3中要如果要启用页面缓存,在页面对应的Action前面加上一个OutputCache属性即可. 我们建一个Demo来测试一下,在此Demo中,在View的Home目录下的Index.cshtml中让页面输入当前的时间. [csharp] view plain copy @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>Index</title>

web项目使用ehcache-web进行页面缓存或者文件压缩

一:  小试 EhCache web 用来缓存JSP页面 0) 涉及到的jar包 ehcache-core-2.5.2.jar, ehcache-web-2.0.4.jar 1) web.xml 这里使用了个简单的过滤器来拦截所有的jsp请求 <web-app <filter> <filter-name>PageCacheFilter</filter-name><filter-class>net.sf.ehcache.constructs.web.fi