Skip to content

Latest commit

 

History

History
106 lines (59 loc) · 3.26 KB

digitalocean-fanout.md

File metadata and controls

106 lines (59 loc) · 3.26 KB

Report from Digitalocean managed Kubernetes cluster.

Cluster size: 3 Nodes CPU Optimized droplet - 8 vCPU 16 GB RAM

Estimated droplet cost's for cluster: $480/month

Mainflux services scaled to 3 instances:

  • Mqtt adapter
  • Authn
  • Things
  • Redis-things
  • Envoy
  • Nats

Fan-out Scenario

Publisher pool: 1

Subscriber pool: 1000

Test durition: 5min

RPS: 1

QoS Level: 2

In Fan-out test 1000 clients subscribe to same Mainflux channel and one publisher send one message every second over that channel to them. Both publisher and subcribers are connected with QoS 2, which is the safest and most demanding quality of service level that guarantees that each message is received exactly once by the intended recipients by using a four-part handshake.

No message loss was detected.

NOTE: Graphs Time unit is microsecond.

DO fan-out 1k QoS 2 Total connections

We see total number of connections during test is constant


DO fan-out 1k QoS 2 Total messages

We see total number of consumed messages is exactly 1000 times higher than the sent ones


DO fan-out 1k QoS 2 Publish to Pubrec latency

*Pub to Pubrec latency in microseconds (100k microseconds are 100 milliseconds) *


Useful facts:

  • 95% of clients had latency up to 12ms
  • Max latency was up to 29ms

DO fan-out 1k QoS 2 Pub to Sub latency

*Pub to sub latency in microseconds (100k microseconds are 100 milliseconds) *


Useful facts:

  • 95% of clients had latency up to 130ms
  • Max latency was up to 207ms

Results metrics DO fan-out 1k QoS 2 Publish reveived ACK latency

Results metrics are generated by mzbench tool


Kubernetes Cluster resources insights

DO fan-out 1k QoS 2 - CPU usage on namespace

Kubernetes CPU usage in whole Mainflux namespace during testing


DO fan-out 1k QoS 2 - Memory usage on namespace

Kubernetes Memory usage in whole Mainflux namespace during testing


DO fan-out 1k QoS 2 - CPU usage on MQTT statefulset

Kubernetes CPU usage in MQTT statefulset during testing


DO fan-out 1k QoS 2 - Memory usage on MQTT statefulset

Kubernetes Memory usage in MQTT statefulset during testing


DO fan-out 1k QoS 2 - Networking on MQTT statefulset

Kubernetes Network receive/transmit bandwidth in MQTT statefulset during testing