52

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

 4 years ago
source link: https://www.tuicool.com/articles/iaqMryV
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK