发表于: 2017-11-16 19:12:09

1 896


今天完成的事情

配置负载均衡,完成压测

在官网下载nginx的windows版,解压,点击nginx.exe直接启动

在浏览器中可以查看是否启动成功

配置负载均衡

负载均衡通常是指,将请求/数据分摊到多个操作单元上执行

在nginx的解压目录中,找到conf文件夹,打开nginx.conf,在http块中,添加以下语句:

 upstream localhost{
        server  服务器1ip:端口   ;
        server 服务器2ip:端口 ;
    }

在server块中添加以下语句:

        listen       端口;
        server_name  访问路径;

表示nginx会代理服务器1和服务器2的请求,只需要访问路径,请求会轮次发送到服务器1和服务器2。


在服务器上安装memcache和redis,在ubuntu下的命令很简单:

sudo apt-get install memcached

sudo apt-get install redis-server

部署项目到服务器,进行测试


以下都是开启负载均衡的情况,本地服务器一台,远程服务器一台,由于远程服务器性能低下,配置两者的权重比为9比1,考察90%line在500以下时的数据

压测JSP,不使用缓存:

并发200,TPS320

中间出现断崖式下跌,推测是由于云服务器可接受的请求数量有限,需要排队等待,积累到一定量的时候,当本地服务器对现有请求处理完毕时,远程服务器上的大量请求还处于等待状态,会瞬间拉低tps,之后,本地服务器又接收到请求,与远程服务器同时进行处理,又会将tps提高。

压测JSP,memcache缓存

并发280,TPS428

压测JSP,redis缓存

并发300,TPS459

压测JSON,不使用缓存:

并发210,TPS320

压测JSON,memcache缓存:

并发280,TPS383

压测JSON,redis缓存:

并发300,500TPS:


之后测试宕机情况下的数据

以90%line超过4000或者是出现失败请求来作为宕机标准

压测JSP,不使用缓存:、

压测JSP,memcache缓存:

压测JSP,redsi缓存:

压测JSON,不使用缓存:

压测JSON,memcache缓存:

压测JSON,redis缓存:


以下是压测报告:


模拟缓存穿透的情况

如果查询一个数据库中并不存在的值,由于缓存中没有,所以会到数据库中去取,由于数据库中也没有,则会返回空,也就不会将查询结构写入缓存,这样一来,每次这样的查询都会直接到数据库中去查询,当这种操作大量并发时,就会大大增加数据库的负担

在缓存穿透的情况下进行压测:

并发200,TPS902


提交任务六

任务小结

任务六需要了解JMeter的操作,需要下载一些插件,方便生成视图

需要学习memcache和redis,都是一种缓存系统,将数据存入内存中,减少响应时间,提高吞吐量,其缺点时缓存穿透,脏数据等

需要了解线程和并发的概念,知道单线程和多线程的区别

需要了解nginx配置负载均衡


明天的计划

开始任务七


遇到的问题


收获

了解了性能优化的重要


返回列表 返回列表
评论

    分享到