发表于: 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配置负载均衡
明天的计划
开始任务七
遇到的问题
无
收获
了解了性能优化的重要
评论