im-cloud <> goim 分布式中间件并发压测对比

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

  • goim (bilibili出品,经过B站生产验证 百万级消息秒级推送)
  • im-cloud(借鉴goim 使用swoole原生实现 经过自己验证。。。)

硬件环境

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

你可能感兴趣的:(swoole,golang,coroutine,middleware)