前一篇文章 使用四种框架分别实现百万websocket常连接的服务器 介绍了四种websocket框架的测试方法和基本数据。 最近我又使用几个框架实现了websocket push服务器的原型,并专门对这七种实现做了测试。 本文记录了测试结果和一些对结果的分析。
这七种框架是:
最近用Golang实现了第八种,Go表现还不错。
使用三台C3.4xlarge AWS服务器做测试。 一台作为服务器,两台作为客户端机器, 每台客户端机器启动10个client,一共20个client
C3.4xlarge的配置如下:
服务器和客户端机器按照上一篇文章做了基本的优化。
以下是测试的配置数据:
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
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
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
当建立360,000左右的websocket时, setup非常的慢, gc频繁,无法继续正常建立websocket, 主动终止测试。
当建立500,000左右的websocket时, setup非常的慢, gc频繁,无法继续正常建立websocket, 主动终止测试。
当建立500,000左右的websocket时, setup非常的慢, gc频繁,无法继续正常建立websocket, 主动终止测试。
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
count = 50000
min = 0
max = 35
mean = 1.89
stddev = 1.83
median = 1.00
75% <= 1.00
95% <= 2.00
98% <= 2.00
99% <= 4.00
99.9% <= 34.00