发表于: 2018-01-03 11:21:56
2 469
一、 今天完成的事情
完成步骤一、二
代码地址:https://github.com/hdonghong/codetask/tree/master/task4/tilesdemo
一、下载JMeter,压测自己的JSP,查看TPS数据,调整并发数,压到程序挂掉为止。
①认识Jmeter
The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.
②下载
下载:http://jmeter.apache.org/download_jmeter.cgi
启动:
③压测JSP
添加一个线程组:
设置线程属性:
线程组添加http请求:
添加“查看结果树”来查看测试结果:
开始测试并查看结果:
调整并发数,压到程序挂掉为止,将原本50个线程增加到200,成功挂了:
二、加上Memcache,在新建数据的时候同时维护好缓存(没有新建数据接口就自己加上,可以分成是压测JSP和Json接口两种方式) ,确定数据没问题,重新压测服务器,测出90%的线在哪里.
①认识Memcached
Free & open source, high-performance, distributed memory object caching system。
Memcache好比一张只拥有两个字段的数据库表,这两个字段分别是key和value。
适用场景:
②Windows上安装Memcached服务端
下载windows版本:http://www.runoob.com/memcached/window-install-memcached.html(这里我选择64位系统 1.4.4版本。)
下载完成后解压双击memcached.exe启动
③使用Telnet管理Memcaced
使用Telnet连接Windows下装有memcache的服务器(默认11211端口)
按下“ ctrl+] ”,再按下回车,可开始输入命令缓存数据
输入命令缓存数据
输入quit断开连接
④Spring整合Memcached
使用xmemcached,引入其依赖。(关于xmemcached可参考其官方文档:https://github.com/killme2008/xmemcached/wiki)
Spring中管理xmemcached
service层中注入xMemcached的依赖,编写相关代码(详细源码参见源码中task4下tilesdemo/pers.hdh.service.impl.ApplicantServiceImpl.findAll( ))
运行中的异常:
原因:无序列化类无法被持久化到缓存中
解决:将需要存储的Model类实现Seriliazable接口(这里是tilesdemo/pers.hdh.model.Applicant类)
通过telnet获取到key值证明数据成功存储到Memcached中(但是出现乱码)
⑤加上Memcache重新压测Jsp对比之前没有缓存的数据
实验:使用Jmeter在1秒内200线程无限制访问同一请求持续30秒
需要知识:Jmeter的聚合报告
结果:
结论:后者数据各方面明显地优于前者,说明使用缓存后性能得到明显提升。
⑥压测Json接口
pom.xml中添加对json支持的依赖:
代码中提供json接口:
设置Jmeter,发送Json数据需要设置信息头:
压测对比:
结论:
对于json接口,可以看到使用缓存后性能远超不使用缓存的时候。
二、 明天计划的事情
三、 遇到的问题
拖到现在才交,原本昨晚要交的,结果校园网络又炸了,尴尬。。。
四、 收获
评论