发表于: 2017-09-24 23:56:54

1 1094


今天完成的任务
1.补充完整后的的service方法
然后把新增对象的方法修改一下:
新的测试类:
测试结果如下:
写的service方法通过单元测试以后就可以运用到控制器里。
再到服务器的Redis上看看,当前保存的数据是什么。可以看到,除了bookList这个被我指定名字的key以外,另外三个key被Redis Template序列化以后存在Redis。
也就是说,使用Redis Template后,就不需要自己手动序列化实体类。
同样的,读取实体对象的时候,不需要反序列化。
2.控制器中添加使用redis的service方法
本地环境测试统过,然后部署到服务器上。


3.服务器环境测试

测试前要保证nginx、jetty、resin、redis端口是打开的。中间我重启过一次redis,导致测试的时候又页面没有数据。带着问题中午睡了一会,醒来突然想明白了,redis还是用的内存,只有把数据持久化、写到硬盘,重启redis数据才不会丢失。后面我重新添加需要的数据,浏览器上显示数据了。另外,昨天配置负载均衡后使用域名访问会出现访问被拦截、提示域名未备案的情况,所以尝试把域名换成服务器的外网IP,这样就没有被拦截。
 
4.压测
1)使用redis
A)压测环境:并发数8,启动时间1s,循环30次
JSP接口的90%Line = 240ms,JSON接口的90%Line = 66ms
B)压测环境:并发数13,启动时间,循环30次——这个是使用memcached是json接口的并发数,来看一下redis的表现如何
跑了4 、 5次,去掉异常,从中截了一个比较合适的结果:
使用redis时的并发数大概在13的样子
2)再把memcached的测试结果贴过来
A)压测环境:并发数为10,启动时间1s,循环次数30。
此时JSP接口的90%Line略超过200ms,而JSON接口的90%Line才40ms。
B)压测环境:并发数为18,启动时间1s,循环次数30。
可以看到JSON接口的90%/95%/99%Line全都比JSP接口的小


5.压测报告
500ms返回时的TPS:
A)redis - 500ms内返回:
JSP - 20并发数 - 1s启动时间 - 30循环 - 51/sec
JSON - 50并发数 -1s启动时间 - 30循环 - 40/sec
B )memcached - 500ms内返回:
JSP - 23并发数 - 1s启动时间 - 30循环 - 60/sec
JSON - 58并发数 -1s启动时间 - 30循环 - 46/sec

把几次压测的结果做一个整合:

结论:
1.有缓存的性能优于无缓存的,无论是并发数还是吞吐量;
2.JSON接口性能优于JSP接口,JSON接口并发数大于JSP接口的,两种接口的吞吐量一样;

3.memcached性能优于redis,无论是并发胡还是吞吐量。


6.模拟缓存穿透

修改service方法,增加对缓存穿透情况的处理。具体内容如下:

然后在控制器方法里模拟缓存穿透:

当访问/queryone这个路径时,会出现缓存穿透的情况,这时,控制台会输出:


7.深度思考

1.为什么要使用memcache?memcashe有什么作用?

在高并发情况下,如果直接从数据库读取数据,会对数据库造成巨大的压力,进而严重影响性能。使用memcache可以把经常被读到的数据暂时放到内存里,用户要读数据的时候,会先从内存里找,这种方案对数据库形成一种保护,而且还能够明显提高性能。

2.什么是负载均衡,为什么要做负载均衡?

负载均衡是反向代理的升级。负载均衡是将多个服务器组合成为一个服务器集群,可以减轻单个服务器的压力,分发请求到其他服务器,以实现均衡负载。负载均衡有多种均衡策略,默认采用的是轮询策略,还可以根据服务器自身的硬件状况调整权重比。另外,还可以使用ip_hash(同一ip固定访问一个服务器,可以实现session,用来做购物车)和url_hash(url绑定固定服务器,当访问该url时,就访问该服务器)策略。当负载均衡服务集群的某一个服务器挂掉后,会自动把原先由该服务器处理的请求分发到其他服务器上。

3.nginx如何实现负载均衡?

负载均衡配置简单。在nginx的配置文件nginx.conf的http块中添加upstream就可以了,具体的负载均衡昨天已经实现了。需要注意的是,要把项目拷贝到每一个参加负载均衡服务器的webapps文件夹下,且保持命名统一(通常使用“ROOT.war”这个名字)


遇到的问题

任务提交审核里还有一个测系统宕机的负载。我没搞清楚,怎样算是宕机?90%Line时间太长(多长)?或者是开始产生错误率?

任务先提交审核,然后明天日报再补这个系统宕机的测试。


明天的计划

1.做老大讲的金融的PPT


进度
提交任务6
任务开始时间 2017.9.17

预计提交时间 2017.9.23

已延期 



返回列表 返回列表
评论

    分享到