day92-性能压测-优化-中间件对性能的影响

1.目的

了解中间件对请求的性能的影响

2.流程知晓

首先要清楚我们访问首页,获取首页数据的流程

因为我们添加了本机映射 如下,访问 http://gulimall.com/ 就等于访问了 虚拟机192.168.56.10的80端口 ,我们之前在nginx又添加了 虚拟机80端口监听

负载均衡到上游服务器-》网关 ,然后网关主机路由到商品服务的首页,详细步骤参考链接

https://blog.csdn.net/JavaCoder_juejue/article/details/112858021?spm=1001.2014.3001.5501

3.压力测试nginx

(1)添加线程组

一秒50个线程,一直访问

 (2)添加http请求

与添加监听器内的

结果树,汇总报告,聚合报告

 (3)docker stats 查看cpu使用率,内存使用,最大内存,内存使用率,网络io等参数变化 并且每秒会动态刷新

启动线程组后,某时刻

可以看出nginx是cpu密集型的,接收多个线程的请求来处理就行了,而不需要创建对象,所以占内存少,但是在处理请求以及处理请求后不同线程之间的切换及返回结果

需要占cpu,所以是cpu密集型

关闭测试,看到有些异常,没关系,那是某些请求还没处理完,关闭连接导致的

根据聚合报告

创建表格来整理Nginx压测显示的性能相关信息

 

4.压力测试网关

http://localhost:88/

请求访问到了网关,只是没首页,所以404,可以以此压力测试

 启动后打jvisualvm,可以看到占用内存不多,算是cpu密集型,跟nginx差不多

再看垃圾回收部分,因为伊甸园区很小,所以频繁发生minor gc ,此时在想,调大伊甸园区内存大小可以减少minor gc次数从而提升吞吐量

根据聚合报告,填写表格数据

可以看出我们这些中间件单独的效率都挺高的

 

5.压测简单服务

创建一个简单的方法,单纯返回一个字符串

测试访问成功

根据聚合报告 添加表格数据

发现性能也还是不错滴

6.压测网关+简单服务

添加路由

访问测试成功

压测,可以看到吞吐量有明显降低

添加到表格

分析下原因,假设一个请求原本浏览器直接到服务10ms,现在要先到网关用10ms,相关于多了一倍时间,那么吞吐量自然也要下去一倍,

那么该怎样优化呢?

1.提升中间件的吞吐量

2.提升传输效率,比如买更好的网线,网卡,使用效率更高的传输协议

7.压测全链路(也就是nginx+gateway+简单服务)

为啥下面这个请求能测试,这里不多说,看了前面的就懂

压测

根据报告添加表格数据

可以看到吞吐量又下去很多

上面还只是测试的简单请求,后面会测试实际业务请求并给出优化方案

猜你喜欢

转载自blog.csdn.net/JavaCoder_juejue/article/details/113576966