天天看点

页面缓存测试

  问题回顾

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

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

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

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

  测试第一步,验证

  测试第二步,并发

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

  使用cache的优点

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

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

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

====================================分割线================================

最新内容请见作者的github页:http://qaseven.github.io/