七种WebSocket框架的性能比较
- - 鸟窝前一篇文章 使用四种框架分别实现百万websocket常连接的服务器介绍了四种websocket框架的测试方法和基本数据. 最近我又使用几个框架实现了websocket push服务器的原型,并专门对这七种实现做了测试. 本文记录了测试结果和一些对结果的分析. 使用三台C3.4xlarge AWS服务器做测试.
前一篇文章 使用四种框架分别实现百万websocket常连接的服务器介绍了四种websocket框架的测试方法和基本数据。 最近我又使用几个框架实现了websocket push服务器的原型,并专门对这七种实现做了测试。 本文记录了测试结果和一些对结果的分析。
这七种框架是:
使用三台C3.4xlarge AWS服务器做测试。 一台作为服务器,两台作为客户端机器, 每台客户端机器启动10个client,一共20个client
C3.4xlarge的配置如下:
型号 | vCPU | 内存 (GiB) | SSD 存储 (GB) |
c3.large | 2 | 3.75 | 2 x 16 |
c3.xlarge | 4 | 7.5 | 2 x 40 |
c3.2xlarge | 8 | 15 | 2 x 80 |
c3.4xlarge | 16 | 30 | 2 x 160 |
c3.8xlarge | 32 | 60 | 2 x 320 |
服务器和客户端机器按照上一篇文章做了基本的优化。
以下是测试的配置数据:
Setup时
Setup完成, 应用Idle时
发送消息时
count = 50000
min = 0
max = 18301
mean = 2446.09
stddev = 3082.11
median = 1214.00
75% <= 3625.00
95% <= 8855.00
98% <= 12069.00
99% <= 13274.00
99.9% <= 18301.00
Setup时
Setup完成, 应用Idle时
发送消息时
count = 50000
min = 49
max = 18949
mean = 10427.00
stddev = 5182.72
median = 10856.00
75% <= 14934.00
95% <= 17949.00
98% <= 18458.00
99% <= 18658.00
99.9% <= 18949.00
Setup时
Setup完成, 应用Idle时
发送消息时
count = 50000
min = 1
max = 11948
mean = 1366.86
stddev = 2007.77
median = 412.00
75% <= 2021.00
95% <= 5838.00
98% <= 7222.00
99% <= 8051.00
99.9% <= 11948.00
Setup时
当建立360,000左右的websocket时, setup非常的慢, gc频繁,无法继续正常建立websocket, 主动终止测试。
Setup时
当建立500,000左右的websocket时, setup非常的慢, gc频繁,无法继续正常建立websocket, 主动终止测试。
Setup时
当建立500,000左右的websocket时, setup非常的慢, gc频繁,无法继续正常建立websocket, 主动终止测试。
Setup时
Setup完成, 应用Idle时
发送消息时
count = 50000
min = 0
max = 18
mean = 1.27
stddev = 3.08
median = 1.00
75% <= 1.00
95% <= 1.00
98% <= 1.00
99% <= 1.00
99.9% <= 15.00