基于Netty的四层和七层代理性能方面的一些压力测试

本文我们主要是想测试和研究几点:

  • 基于Netty写的最简单的转发HTTP请求的程序,四层和七层性能的差异

  • 三种代理线程模型性能的差异,下文会详细解释三种线程模型

  • 池和非池化ByteBuffer性能的差异

本文测试使用的代码在:github.com/JosephZhu1983/

在代码里我们实现了两套代理程序:

323e4ae6a42973e374b459e9e3ec1ca3.jpeg

测试使用的机器配置是(阿里云ECS):

f832c9eb30ce21ac095e335c1f093946.jpeg

一共三台机器:

  • server 服务器安装了nginx,作为后端

  • client 服务器安装了wrk,作为压测客户端

  • proxy 服务器安装了我们的测试代码(代理)


Nginx后端

nginx 配置的就是默认的测试页(删了点内容,减少内网带宽):

1de03e0b8ca377e5a2c3f917a7be3059.jpeg

直接对着nginx压测下来的qps是26.6万:

4d58a85cbd056730783b03ba0802a2a5.jpeg

有关四层和七层

四层的代理,我们仅仅是使用Netty来转发ByteBuf。 七层的代理,会有更多额外的开销,主要是Http请求的编码解码以及Http请求的聚合,服务端:

b1e239f2b8c93152a4c77d06908f4ae7.jpeg

客户端:

2b57cd0b95e79d3ceac880b88363c210.jpeg

这里我们可以想到,四层代理因为少了Http数据的编解码过程,性能肯定比七层好很多,好多少我们可以看看测试结果。

有关线程模型

我们知道作为一个代理,我们需要开启服务端从上游来获取请求,然后再作为客户端把请

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值