发表于: 2017-11-19 16:24:26

1 612


今天完成的事情:

      今天把memcached的项目部署上远程压测,收获颇丰

第一次压测发现没有多少区别,于是看log日志,发现全是调用数据库。


后面发现要把memcached中的缓存序列化成流来存储和传输,于是改写Impl中的方法


测试能成功取出缓存

开始压测

       先来看没有缓存墙的压测

接下来是有memcached墙的压测

图形分析,可以看到请求时间变化,服务器分钟处理量,基本都是越到后面压力越大的上升曲线,吞吐量反之


我们再来让性能进一步提升,加入两个web容器,设置反向代理

先多加入一个tomcat,8088端口

接着nginx,conf设置upstream


完成之后把同样的项目war部署到第二个tomcat中


开始压测


最后发现不知道负载均衡成功没有,就往nginx的日志中加入$upstream_addr

这样日志输出中就会加上请求落在哪个web容器地址,


日志结果

明天计划的事情:

       redis走起

遇到的问题:

       都已解决,缓存一直为null卡了我一天半

收获: 

      首先重点:Memcached有独立的服务器端组件,是独立于应用系统的,从客户端(应用系统)保存对象到memcached是必须通过网络传输,而网络传入都是2进制数据,所以必须经过序列化,否则无法存储到Memcached服务器端的缓存中。于是将需要缓存的数据对象序列化处理,到要调用的时候再反序列化出来就可以了。

       然后缓存墙真的很有用,很强,让我的项目性能提升很大。深度了解需要看里面的内存分配机制 lru删除机制啊。。感觉东西很多,以后再补吧

       

       jmeter压测工具提供的数据能让我们了解web的强度等等,通过分析可以考虑哪些地方需要提高,怎么提高,这里说下90%线:

       LoadRunner中的90%响应时间是什么意思?这个值在进行性能分析时有什么作用?本文争取用最简洁的文字来解答这个问题,并引申出“描述性统计”方法在性能测试结果分析中的应用。

       为什么要有90%用户响应时间?因为在评估一次测试的结果时,仅仅有平均事务响应时间是不够的。为什么这么说?你可以试着想想,是否平均事务响应时间满足了性能需求就表示系统的性能已经满足了绝大多数用户的要求?

假如有两组测试结果,响应时间分别是 {1,3,5,10,16} 和 {5,6,7,8,9},它们的平均值都是7,你认为哪次测试的结果更理想?

假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?

 

       nginx配合多个tomcat可以有效分散请求,达到负载均衡,对web性能进一步提升,通过我的web项目最大的提升应该就是并发的时候最大响应速度大大减少了


禅道

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



返回列表 返回列表
评论

    分享到