发表于: 2021-09-24 22:20:28
1 1104
一,今天完成的事情
任务六。
1, 要求里面没一定要求badboy录制。但是指导的gif中有。badboy和JMeter配合良好,可以用badboy模拟测试行为,生成.jmx文件,保存后能在JMeter中使用。还能验证参数等。
2,数据穿透缓存,大量读取数据库不存在的值。我没用特别的方式,如果发现是null,也给个key存入redis,可以存真的null,也可以存特殊文字,或者某个属性,比如名字为“null”。约定不存在,避免访问关系数据库。代码在上一天的日报已经展示。
3,redis可以添加密码。还是在/usr/local/redis/redis-5.0.10 ,redis.conf 里面的密码默认是没有。或者config set requirepass。Linux上的东西,尤其有时候看版本选择设置方式。
4,完成任务六要求中的:部署两台WEB,使用Nginx的Upstream来做负载。Nginx配置好一个流量入口,通过负载均衡分发到不同的端口。就是从默认的 :80端口访问,Nginx分发,就是负载。
我在之前的任务部署过Resin, Tomcat, Jetty 3个服务器。目前一般是用Resin。另外两个中我准备用Tomcat。之前特意把3台服务器的端口设置成不同的,所以端口设置不再重复。
对于Tomcat,我把前一天测试的包放入webapps,这个文件夹在我的 /usr/local/myTomcat/apache-tomcat-9.0.45/webapps ,一般Linux上访问Tomcat可以这么访问。Resin的访问设置我确实比较喜欢。
5,我先配置Nginx的负载均衡部分,再启动Tomcat,测试是否能访问。倾向测试有Redis的时候到底是不是单台web服务器,如果同一台Linux云服务器,部署2台不同的web服务器,到底有什么不同。网络吞吐也是瓶颈。
在我的/usr/local/nginx/conf 查看nginx.conf配置文件。如果需要指向多台服务器就要用到 ngx_ http_ upstream_ module。负载均衡及故障转移等重要功能,和反向代理提供这些功能就在这里。
我的Nginx端口在80,准备配置到端口8070的Resin和端口8080的Tomcat上。在http段加入代码。我的http是17行开始。
以前单台服务器就有代码。因为这些代码,让我的服务器访问8070Resin这台单台服务器。
upstream的两台服务器,不设置权重,两台都一样。其它也不设置。给这个upstrem起名twoservers。upstream部分一定写在server外。而且最好不要用下划线起名,不要是two_servers,又和版本有关,8以上的Nginx容易出错。
其它的,在有8070的注释,然后找twservers这个名字。
保存重启nginx。upstream 和 proxy_pass 后面填写的域名必须一致,才能启用需要用的那个。
换个方式重启。/usr/local/nginx/sbin/nginx -s reload
6,当然Tomcat也启动一下。首先看看是否能正常访问Tomcat。
/usr/local/myTomcat/apache-tomcat-9.0.45/bin/startup.sh
结果:
访问一下想被压力测试的json带redis接口。
8080端口Tomcat成功
测试一下就从80端口进Nginx负载。成功
7,接下来就是JMeter测试,看看两台web服务器是不是更好了
10个1s生成完美。
1000个10s
一个云Linux,多了Tomcat,总体运行速度下降。
TOP命令,云Linux的CPU压力很大。
二,今天问题
测试是一个大方向。
提交任务六。
三,今天的收获
Nginx的Upstream来做负载两台或者以上服务器。
因为Nginx,平均分配到Resin,Tomcat都在一台Linux云上,使用Nginx upstream到这两台web服务器,反而表现不容易好。
验收标准的系统可以在500MS返回时的TPS:这次和上次的截图告知我们,如果只有一台Resin作WEB效率,能在100出头TPS。
四,明天的计划
任务6 深度思考,总结。任务六补遗。
评论