最大连接数测试
介绍 NAT 网关的性能测试方法及结果。
测试环境
本次测试采用 DevOps 环境。环境信息如下:
配置节点 | 说明 | 数量 | 节点配置 |
---|---|---|---|
vg 节点 |
virtual gateway,虚拟网关节点 |
2 |
CPU 4核,内存 8G |
hyper 节点 |
用于安置云服务器以及 NFV 主机的节点 |
8 |
CPU 4核,内存 12G,硬盘 200G |
测试方法
-
部署 DevOps 测试环境。
-
在网络服务 > VPC 网络页面,创建两个超大型规格的 VPC 网络并添加私有网络 (Vxnet) ,分别用于部署客户端和服务端。
如下图,
natgw_test
用于绑定 NAT 网关,server_vpc
用于部署服务端。 -
在 VPC 网络
natgw_test
下创建 4 个客户端主机(client);在 VPC 网络server_vpc
创建 8 个服务端主机(server)。 -
在运维与管理 > 标签页面,创建两组标签
client_tag
和server_tag
,分别绑定 client 和 server。 -
在网络服务 > 公网 IP 页面,申请 8 个公网 IP,并分别绑定到 8 个 server 主机。
-
在网络服务 > NAT 网关 页面,创建 NAT 网关并绑定 VPC 网络
natgw_test
。创建完成后,添加 client 所属私有网络的 SNAT 规则,公网 IP 选择 NAT 网关的全部公网 IP。 -
点击应用修改更新 NAT 网关。
-
登录一个 webservice 节点,将测试脚本 natgw.py 上传到节点,然后运行如下命令执行启动测试脚本。
python natgw.py -c tag-6ldhogun -s tag-sb0te7z9
注意 1.每个 client 脚本中固定可以新建 25,000 个长连接,如果需要增大测试连接数,需要增加 client 数量。
2.一次测试结束之后需要等 server 连接全部销毁,才能启动下一次测试,要不然服务端会起不来,具体可以登录到服务端执行
netstat -anp | grep 8080 | wc -l
, 知道输出为0即可开始下一轮测试3.每轮测试持续时间大概 20-30 分钟,需要人工执行 stop 命令结束。
-
运行如下命令停止测试脚本。
python natgw.py -c tag-6ldhogun -s tag-sb0te7z9 -a stop
-
将连接数统计脚本 cal.py 上传到节点,然后运行如下命令统计当前连接数。
python cal.py -n nfv-r1fiaiqz
说明 -
若执行 cal.py 脚本报错,需要手动登录到 NAT 网关节点,执行
conntrack -L | grep EST | wc -l
观察当前连接数,测试开始之后,连接数会逐渐增加,直到达到 NAT 网关规格上限。 -
每个 NAT 节点规格上限 = 规格数 / 节点数。
-
测试结果
根据脚本统计,测试结果如下:
NAT 网关规格 | 测试结果 |
---|---|
小型 |
10,000 |
中型 |
49,988 |
大型 |
200,000 |