NSQ基准测试

553 阅读2分钟

应用服务器(阿里云 8CPU 8G CentOS8):

https://nsq.io/deployment/installing.html
wget https://s3.amazonaws.com/bitly-downloads/nsq/nsq-1.2.0.linux-amd64.go1.12.9.tar.gz
tar -zxvf nsq-1.2.0.linux-amd64.go1.12.9.tar.gz
cd nsq-1.2.0.linux-amd64.go1.12.9/bin


./nsqlookupd &
./nsqd --lookupd-tcp-address=127.0.0.1:4160 -tcp-address=0.0.0.0:4150 -http-address=0.0.0.0:4151 -broadcast-address=39.100.58.10 &
./nsqadmin --lookupd-http-address=127.0.0.1:4161 &

测试:curl -d "msg" http://39.100.58.10:4151/pub?topic=message_topic

集群:
./nsqlookupd -http-address=0.0.0.0:4161 -tcp-address=0.0.0.0:4160 &
./nsqd --lookupd-tcp-address=172.16.58.88:4160 -tcp-address=0.0.0.0:4150 -http-address=0.0.0.0:4151 -broadcast-address=172.16.58.88 &
./nsqd --lookupd-tcp-address=172.16.58.88:4160 -tcp-address=0.0.0.0:4150 -http-address=0.0.0.0:4151 -broadcast-address=172.16.58.89 &
./nsqd --lookupd-tcp-address=172.16.58.88:4160 -tcp-address=0.0.0.0:4150 -http-address=0.0.0.0:4151 -broadcast-address=172.16.58.90 &

压测Golang脚本

1次请求发送1个消息:

wrk -t8 -c200 -d10s --latency http://172.16.58.73:8080/send1
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.98ms    1.04ms  32.61ms   92.41%
    Req/Sec     6.35k   253.26     7.83k    88.71%
  Latency Distribution
     50%    3.68ms
     75%    4.27ms
     90%    4.87ms
     99%    7.39ms
  509543 requests in 10.10s, 65.60MB read
Requests/sec:  50450.60

1次请求发送同一topic的2个消息:

wrk -t8 -c200 -d10s --latency http://172.16.58.73:8080/send2
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     7.84ms    2.23ms  52.98ms   93.74%
    Req/Sec     3.24k   260.78     4.99k    91.90%
  Latency Distribution
     50%    7.29ms
     75%    8.21ms
     90%    9.10ms
     99%   16.41ms
  258357 requests in 10.10s, 33.26MB read
Requests/sec:  25580.60

1次请求发送两个topic的2个消息:

wrk -t8 -c200 -d10s --latency http://172.16.58.73:8080/send2Topic
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     8.36ms    4.95ms 219.51ms   92.31%
    Req/Sec     3.07k   251.73     5.79k    88.18%
  Latency Distribution
     50%    7.48ms
     75%    8.22ms
     90%   10.53ms
     99%   18.47ms
  245349 requests in 10.10s, 31.59MB read
Requests/sec:  24290.47

发送异步消息没有回调

wrk -t8 -c200 -d10s --latency http://172.16.58.80:8080/sendAsync
not connected todo
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    49.08ms  156.20ms   1.07s    93.91%
    Req/Sec    10.00k     5.12k   58.22k    63.05%
  Latency Distribution
     50%    1.68ms
     75%   13.16ms
     90%   76.63ms
     99%  891.79ms
  724888 requests in 10.10s, 93.31MB read
  Non-2xx or 3xx responses: 387
Requests/sec:  71785.07

发送异步消息有回调

wrk -t8 -c200 -d10s --latency http://172.16.58.80:8080/sendAsyncWait
not connected todo
Running 10s test @ http://172.16.58.80:8080/sendAsyncWait
Running 10s test @ http://172.16.58.80:8080/sendAsyncWait
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    54.29ms  157.35ms   1.09s    93.01%
    Req/Sec     9.40k     4.86k   18.24k    65.86%
  Latency Distribution
     50%    1.98ms
     75%   15.46ms
     90%  108.45ms
     99%  884.02ms
  657550 requests in 10.02s, 84.62MB read
  Non-2xx or 3xx responses: 895
Requests/sec:  65654.45

发送异步消息 (两个NSQ主机 两个测试机)

wrk -t8 -c200 -d20s --latency http://172.16.58.87:8080/send2Host
Running 20s test @ http://172.16.58.87:8080/send2Host
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.71ms    4.01ms 210.88ms   95.37%
    Req/Sec     7.12k     0.94k   14.55k    94.88%
  Latency Distribution
     50%    3.39ms
     75%    4.99ms
     90%    6.62ms
     99%    9.96ms
  1134177 requests in 20.01s, 146.02MB read
Requests/sec:  56678.66
Transfer/sec:      7.30MB

wrk -t8 -c200 -d20s --latency http://172.16.58.87:8080/send2Host
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.71ms    4.67ms 213.97ms   97.29%
    Req/Sec     7.22k     1.19k   23.30k    95.95%
  Latency Distribution
     50%    3.35ms
     75%    4.93ms
     90%    6.57ms
     99%    9.91ms
  1152705 requests in 20.10s, 148.41MB read
Requests/sec:  57349.90

发送异步消息 (三个NSQ主机 两个测试机)

wrk -t8 -c200 -d20s --latency http://172.16.58.89:8080/send3Host
  8 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.10ms    6.45ms 214.89ms   99.02%
    Req/Sec     9.43k   776.21    17.09k    89.76%
  Latency Distribution
     50%    2.45ms
     75%    4.04ms
     90%    5.66ms
     99%    9.51ms
  1504262 requests in 20.10s, 193.67MB read
Requests/sec:  74838.16

wrk -t8 -c200 -d20s --latency http://172.16.58.87:8080/send3Host
Running 20s test @ http://172.16.58.87:8080/send2Host
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     2.76ms    2.18ms  20.10ms   74.63%
    Req/Sec     9.94k     1.05k   31.20k    89.64%
  Latency Distribution
     50%    2.26ms
     75%    3.98ms
     90%    5.62ms
     99%    9.74ms
  1585561 requests in 20.10s, 204.13MB read
Requests/sec:  78889.30