发表于: 2017-11-20 22:24:20

1 630


今日完成的事情:

今天首先把昨天那个添加缓存报错的问题解决了。

错误原因是:

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



返回列表 返回列表
评论

    分享到