发表于: 2017-11-20 22:24:20
1 629
今日完成的事情:
今天首先把昨天那个添加缓存报错的问题解决了。
错误原因是:
logger.info("userMemcached中的值为:"+memcachedClient.get("id:"+id).toString());
日志打印时的错误。
memcachedClient根据key值取值,当key值不存在时,取得的值就是null,然后null.toString(),就报空指针异常。
把这个问题解决过之后,就把任务部署到服务器上面,进行压测。
首先时线程20,循环10:
然后是线程50,循环20:
根据这两份聚合报告看出来,我的这个接口,在线程50,循环20的时候,90%就超过200了。两次压测的吞吐量都在100以上。
然后把缓存去掉,接着压测:
首先时线程20,循环10:
然后是线程50,循环20:
在这里可以看到,在20线程, 循环10次的时候。有缓存少了50毫秒左右,有比较明显的作用,但是在50线程,20循环,有缓存却更慢了。不知道为什么,请教师兄,师兄对我说,有许多因素都会影响缓存。然后吃饭的时候请教大佬,大佬说:数据库的数据量对缓存也有影响。
但是我总结这两天的学习,觉得缓存是在内存中的,数据库存储在硬盘中,不管数据库数量大小,缓存一定非常有优势。我明天再分析一下我的这个结果。看看是不是我的配置文件写错了,还是程序中写错了。
接着,就是nginx负载均衡。
首先装了另外一个tomcat,端口号是8082:
然后更改nginx配置文件:
其实按照教程做,很简单。weight是权重,数字越大访问几率越大。
然后还是配置文件:
可以在nginx日志里面看到访问的端口号:
数据量足够大的情况下,访问8082端口的几率就大。
然后继续进行压测:
20线程,10循环:
接着50线程,20循环:
两次结果都不是很理想。比着从数据库直接取值还要慢,这里是有缓存的。而且还是两台tomcat,明天要分析一下。
明日计划的事情:
明天对memcached的一些分析学习一下,然后分析一下我的数据看看是哪里出了毛病。然后学习redis。
遇到的问题:
对memcached的简单运用掌握了,但是我反复压测,就是得不到理想的数据。我的数据库里面只有一条数据,不知道这个对测试结果有没有大的影响。
收获:
今天完成的事情还是比较多的。首先把昨天缓存运用失败解决,其次进行了压测,然后nginx负载均衡,配置两台tomcat。
任务开始时间:2017/11/17
预计完成时间:2017/11/24
延期:无
禅道:http://task.ptteng.com/zentao/my-task.html
评论