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

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

一直以来,对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。

 

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

 

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


 

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

 

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

 

 

 

 

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
12天前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
1月前
|
安全 网络安全 数据安全/隐私保护
解决SSH测试连接GitHub时出现“connection closed by remote host”的问题。
然后使用 `ssh -T git@ssh.github.com`来测试连接。
297 0
|
5月前
|
弹性计算 负载均衡 网络协议
阿里云SLB深度解析:从流量分发到架构优化的技术实践
本文深入探讨了阿里云负载均衡服务(SLB)的核心技术与应用场景,从流量分配到架构创新全面解析其价值。SLB不仅是简单的流量分发工具,更是支撑高并发、保障系统稳定性的智能中枢。文章涵盖四层与七层负载均衡原理、弹性伸缩引擎、智能DNS解析等核心技术,并结合电商大促、微服务灰度发布等实战场景提供实施指南。同时,针对性能调优与安全防护,分享连接复用优化、DDoS防御及零信任架构集成的实践经验,助力企业构建面向未来的弹性架构。
487 76
|
6月前
|
druid Java 数据库连接
【YashanDB 知识库】druid 连接池做断网测试,无法自动重新连接
【YashanDB 知识库】druid 连接池做断网测试,无法自动重新连接
|
6月前
|
负载均衡 容灾 Cloud Native
云原生应用网关进阶:阿里云网络ALB Ingress 全面增强
云原生应用网关进阶:阿里云网络ALB Ingress 全面增强
164 6
|
8月前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
232 35
|
6月前
|
druid Java 数据库连接
【YashanDB知识库】druid连接池做断网测试,无法自动重新连接
【YashanDB知识库】druid连接池做断网测试,无法自动重新连接
|
9月前
|
域名解析 弹性计算 监控
slb测试基本配置检查
slb测试基本配置检查
266 60
|
8月前
|
JavaScript 前端开发 Java
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
117 16
|
6月前
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。

热门文章

最新文章