im-cloud <> goim 分布式中间件并发压测对比
2011 年 11 月 9 日
github: http://github.com/brewlin/im-…
- im-cloud 基于swoole 原生协程构建分布式推送中间件
- im-cloud 分布式中间件的安装部署
-
im-cloud goim 分布式中间件并发压测对比
- im-cloud分布式中间件分析(一)-通讯协议
- im-cloud分布式中间件分析(二)-cloud节点实现
- im-cloud分布式中间件分析(三)-job节点实现
- im-cloud分布式中间件分析(四)-logic节点实现
系统环境
此次测试环境为 window8.1 启动 virtualbox虚拟机部署的ubuntu14
-
goim无需担心进程配置,im-cloud测试时候需要根据机器配置做更改
worker进程和task进程最好和cpu核心数
保持一致,太大会使性能大大降低
测评对象 goim
im-cloud
百万级消息秒级推
硬件环境
CPU: 4 核cpu MEM: 2G 内存 System: Ubunutu 14.04 (64bit)
软件环境
单节点启动 im-cloud: cloud(2 个worker进程 2个子进程) job( 2 个worker进程 2个task进程 1个子进程) logic(2个worker进程 2个task进程 1个子进程) goim : comet(单进程) job(单进程) logic(单进程)
评测结果
c : concurrent 并发请求 n : number 总请求数 ----------------------------------- c:500 | n:2000 | n:5000 | n:20000 im-cloud: 6300 6082 3815 goim : 5377 5540 5894 ----------------------------------- c:1000 | n:20000 im-cloud: 5014 goim : 5950 -----------------------------------
@Concurrent:500 @Number:2000
im-cloud
整体高达6300qps goim
整体高达 5300qps
im-cloud
Server Software: swoole-http-server Server Hostname: 127.0.0.1 Server Port: 9600 Concurrency Level: 500 Time taken for tests: 0.321 seconds Complete requests: 2000 Failed requests: 0 Total transferred: 354000 bytes Total body sent: 374000 HTML transferred: 58000 bytes Requests per second: 6239.74 [#/sec] (mean) Time per request: 80.131 [ms] (mean) Time per request: 0.160 [ms] (mean, across all concurrent requests) Transfer rate: 1078.55 [Kbytes/sec] received 1139.48 kb/s sent 2218.03 kb/s total Connection Times (ms) min mean[+/-sd] median max Connect: 10 22 5.0 21 35 Processing: 6 33 11.3 30 74 Waiting: 4 25 10.1 24 68 Total: 31 54 11.1 54 98
goim
Document Path: /goim/push/mids?mids=123&operation=1000 Document Length: 23 bytes Concurrency Level: 500 Time taken for tests: 0.372 seconds Complete requests: 2000 Failed requests: 0 Total transferred: 292000 bytes Total body sent: 356000 HTML transferred: 46000 bytes Requests per second: 5377.91 [#/sec] (mean) Time per request: 92.973 [ms] (mean) Time per request: 0.186 [ms] (mean, across all concurrent requests) Transfer rate: 766.77 [Kbytes/sec] received 934.83 kb/s sent 1701.60 kb/s total Connection Times (ms) min mean[+/-sd] median max Connect: 0 14 11.8 11 46 Processing: 17 65 27.7 62 149 Waiting: 16 59 24.1 57 136 Total: 31 79 22.0 75 162
@Concurrent:500 @Number:5000
5000的请求下 im-cloud
高达6100qps
im-cloud
Server Software: swoole-http-server Server Hostname: 127.0.0.1 Server Port: 9600 Document Path: /im/push/mids?mids=123&operation=9&msg=push_mids Document Length: 29 bytes Concurrency Level: 500 Time taken for tests: 0.822 seconds Complete requests: 5000 Failed requests: 0 Total transferred: 885000 bytes Total body sent: 935000 HTML transferred: 145000 bytes Requests per second: 6082.98 [#/sec] (mean) Time per request: 82.196 [ms] (mean) Time per request: 0.164 [ms] (mean, across all concurrent requests) Transfer rate: 1051.45 [Kbytes/sec] received 1110.86 kb/s sent 2162.31 kb/s total
goim
Document Path: /goim/push/mids?mids=123&operation=1000 Document Length: 23 bytes Concurrency Level: 500 Time taken for tests: 0.907 seconds Complete requests: 5000 Failed requests: 0 Total transferred: 730000 bytes Total body sent: 890000 HTML transferred: 115000 bytes Requests per second: 5514.84 [#/sec] (mean) Time per request: 90.664 [ms] (mean) Time per request: 0.181 [ms] (mean, across all concurrent requests) Transfer rate: 786.30 [Kbytes/sec] received 958.63 kb/s sent 1744.93 kb/s total Connection Times (ms) min mean[+/-sd] median max Connect: 0 18 13.4 16 54 Processing: 20 64 25.0 63 143 Waiting: 17 55 20.5 54 117 Total: 35 82 21.3 80 161
@Concurrent:500 @Number:20000
请求20000 并发500
goim
Document Path: /goim/push/mids?mids=123&operation=1000 Document Length: 23 bytes Concurrency Level: 500 Time taken for tests: 3.393 seconds Complete requests: 20000 Failed requests: 0 Total transferred: 2920000 bytes Total body sent: 3560000 HTML transferred: 460000 bytes Requests per second: 5894.30 [#/sec] (mean) Time per request: 84.828 [ms] (mean) Time per request: 0.170 [ms] (mean, across all concurrent requests) Transfer rate: 840.40 [Kbytes/sec] received 1024.60 kb/s sent 1864.99 kb/s total Connection Times (ms) min mean[+/-sd] median max Connect: 0 30 129.4 10 1025 Processing: 10 50 19.2 47 128 Waiting: 6 42 16.1 40 125 Total: 16 80 131.8 60 1100
im-cloud
Server Software: swoole-http-server Server Hostname: 127.0.0.1 Server Port: 9600 Document Path: /im/push/mids?mids=123&operation=9&msg=push_mids Document Length: 29 bytes Concurrency Level: 500 Time taken for tests: 5.242 seconds Complete requests: 20000 Failed requests: 0 Total transferred: 3540000 bytes Total body sent: 3740000 HTML transferred: 580000 bytes Requests per second: 3815.33 [#/sec] (mean) Time per request: 131.050 [ms] (mean) Time per request: 0.262 [ms] (mean, across all concurrent requests) Transfer rate: 659.49 [Kbytes/sec] received 696.75 kb/s sent 1356.23 kb/s total
@Concurrent:1000 @Number:20000
请求20000 并发1000
goim
Document Path: /goim/push/mids?mids=123&operation=1000 Document Length: 23 bytes Concurrency Level: 1000 Time taken for tests: 3.361 seconds Complete requests: 20000 Failed requests: 0 Total transferred: 2920000 bytes Total body sent: 3560000 HTML transferred: 460000 bytes Requests per second: 5950.20 [#/sec] (mean) Time per request: 168.061 [ms] (mean) Time per request: 0.168 [ms] (mean, across all concurrent requests) Transfer rate: 848.37 [Kbytes/sec] received 1034.31 kb/s sent 1882.68 kb/s total
im-cloud
Server Software: swoole-http-server Server Hostname: 127.0.0.1 Server Port: 9600 Document Path: /im/push/mids?mids=123&operation=9&msg=push_mids Document Length: 29 bytes Concurrency Level: 500 Time taken for tests: 3.988 seconds Complete requests: 20000 Failed requests: 0 Total transferred: 3540000 bytes Total body sent: 3740000 HTML transferred: 580000 bytes Requests per second: 5014.66 [#/sec] (mean) Time per request: 99.708 [ms] (mean) Time per request: 0.199 [ms] (mean, across all concurrent requests) Transfer rate: 866.79 [Kbytes/sec] received 915.76 kb/s sent 1782.56 kb/s total