一分钟了解阿里云产品:性能测试通过SLB保持百万级TCP连接C1M

一直以来,对SLB的转发性能到底如何比较好奇。于是,最近开了一个测试用的SLB来玩玩C1M,即我们能不能通过一个SLB来保持1百万个TCP长连接?

 

 

我的测试配置如下:

 

  • 1个内网SLB,端口配置8000->8001, TCP按最小连接数转发。
  • 3个后端server ECS,配置4核4G ram。
  • 17个client ECS,配置1核2G ram。
  • server是一个简单的echo service, client每秒向SLB发起500个TCP连接请求,建连后每隔20秒向server发送一个"hello"字符串,server收到后将"hello"发回。连接一旦建立,双方都不close, 会被一直保持住。
  • server和client均使用Erlang实现。

 

 

配置完成让我们来说说测试步骤和测试结果:

 

首先在3个ECS上启动listen在8001端口的server。

然后在17个client ECS上分别启动client,每个client通过SLB的8000端口和后端server建立60000个TCP连接 (尽量用完64k个端口)。

 

测试结果见图,稳定保持百万级TCP连接, 下图只显示了960k (由于SLB的监控数据更新得太慢,我们没有等到它刷新完毕)。最终的峰值是17*60=1020k。

 7c323bf364287f0a8b89f2584e4c53ab269737da

3台后端服务器上分别保持了360k, 300k和360k连接。之所以不平均是因为我们一开始想试试只用两台4核4G的ECS能不能hold住C1M,走到720k的时候发现内存不够用了,于是新加入了第三台。由于使用的最小连接数转发,新增的300k连接都全部被分到了这个新加入的节点上。从下图可以看到4核CPU处理C360k无压力,但4G内存已接近oom。

 237e5acd4c99c9f511421bd94ee061a13a571eee

17台测试客户端各自的统计数据 (其中8台,其余的类似)。

723afe95eb2cd4844e8aba2c936061b16759ebe6

 

综上可以得出结论:我们可以通过一个SLB来保持1百万(甚至更多的)TCP长连接。

 

如果您想仔细研究负载均衡这方面问题,请访问:https://bbs.aliyun.com/read/228428.html

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值