发表于: 2017-10-17 14:37:02

2 749


今天完成的事情:

1.生成压测报告

压测机器配置:阿里云全民云计算单核内存1GB入门级

网络:专线1M

测试端口:

JSP:

JSON:


压测时间:7:30~8:30

WEB配置:单tomcat,直接访问8080端口,缓存测量时只打开需要测量的缓存软件

响应时间(90line)200ms500ms
类型并发数吞吐量并发数吞吐量
接口JSPJSONJSPJSONJSPJSONJSPJSON
无缓存835130196459597~102240~260
memcached838154286~30047140100~108230~250
redis835153295~30045140103~107236~250


压测时间:9:30~10:30

WEB配置:双tomcat,分别开放8080、8081端口,使用nginx负载均衡直接接入localhost,缓存情况同上

响应时间

(90line)

200ms500ms
类型并发数吞吐量并发数吞吐量
接口JSPJSONJSPJSONJSPJSONJSPJSON
无缓存1534110~120240~2503854105~120225~230
memcached1534102~115230~2403878105~115245~250
redis1540105~120240~2503784110~120245~250


压测总结:

①分布式缓存:

通过外网进行访问缓存会大幅度降低网站的响应时间,若要使用分布式缓存,要在局域网中进行


②压测时间段:

早上7:30网络情况很好,因此压测中的响应时间相对较短,而到了10:00之后响应时间相对较长,到了晚上7:00人们上网最频繁的时候,响应非常的慢,即使隔几分钟使用相同的配置压测,得出的数据也完全不同,可见网络的堵塞情况对网站的响应时间有很大的影响


③服务器的硬件性能:

在200ms时,负载均衡的并发数比单WEB的多;但是在500ms时,负载均衡的效果反而变差了。在不访问网站的情况下查看服务器内存,发现两个tomcat和其他软件已经占了一半的内存(如下图),稍微访问下网站,服务器的内存容量就用光了,性能反而会下降


④接口的对比:

在传递同样的数据的情况下,JSON可承担的并发数是JSON的2~3倍,吞吐量是2倍左右;并且在本次压测中,JSP的性能几乎不受缓存影响,而JSON则有一个小幅度的性能提升。如果在要求性能的前提下,传递同样的数据可以达到一样的效果,优先使用JSON


⑤memcached和redis的对比:

使用受硬件性能影响最小的单WEB的压测对比:从总体上看,在单WEB中memcached的性能比redis的性能稍好,查阅资料,结论是在memcached在小型服务器中性能占优


2.模拟缓存穿透:

由于没写选择数据库数据的接口,因此模拟缓存穿透直接在后台代码中进行。


memcached


使用Jmeter访问,查看日志:

缓存被穿透,大量数据直接访问数据库

应对缓存穿透的情况,当缓存和数据库中都没取到数据时,设置一个短时间的缓存


效果:

避免了穿过缓存直接访问数据库的情况


明天计划的事情:

1.开始任务7

2.准备小课堂


遇到的问题:

解决缓存穿透问题的时候,写的代码不生效

解决方法:前面设置的缓存没有清空,导致代码不产生效果,flush_all就好了


收获:

1.总结压测,对影响网站响应的各个因素有了一个更直接的认识

2.提交任务6


进度:

任务6开始时间:2017.10.08

预计demo时间:2017.10.16

已延期至2017.10.17

于2017.10.17提交任务

禅道

http://task.ptteng.com/zentao/project-task-350.html




返回列表 返回列表
评论

    分享到