Optimal AWS Instance Type for RabbitMQ MQTT Broker

739 views
Skip to first unread message

Sasson Tzidkiyahu

unread,
Apr 6, 2017, 8:20:26 AM4/6/17
to rabbitmq-users
Hey,
Our use case is a cluster of 3 instances of RabbitMQ Broker that serve around 10000 connections over MQTT. The connections of each client are not stable.
Each client that connects uses the Auth BE plugin when it connect/publish/subscribe.
All MQTT messages are sent with QoS 1.
Our brokers are hosted in AWS.
Our LB strategy's is Round-Robin, since it is the only strategy available by ELB.

I'm trying to figure out what is the optimal AWS instance type to use in our use-case.

I'm considering three options:

C3.XLarge - With 4 Virtual CPUs, Memory 7.5 GB, SSD Storage of 40GB

R4.XLarge - With 4 Virtual CPUs, Memory 30.5 GB, Networking up to 10 Gigabit, EBS Storage linked to IOPS SSD storage.

M4.2XLarge - With 8 Virtual CPUs, Memory 32GB, EBS Dedicated Bandwidth 1000Mbps, EBS will be linked to IOPS SSD Storage

Has someone ever tackled such use case and can share his insights?
Does someone has suggestions of how to monitor IO done by RabbitMQ? We run it over CentOS7. 

Thanks,

Sasson

Karl Nilsson

unread,
Apr 6, 2017, 9:09:58 AM4/6/17
to rabbitm...@googlegroups.com
Hi,

I think investing some time into testing different configurations with some "real-world" example load is probably your best approach. That said here are a couple of links that may get you started:


https://www.rabbitmq.com/networking.html - if connections are transient particularly look at the setting concerning TIME_WAIT. You probably want to enable tcp_tw_reuse and lower tcp_fin_timeout. Only testing will tell though.


Which auth backend are you planning on using? If connections come and go regularly you may want to consider this to reduce the load on the auth server: https://github.com/rabbitmq/rabbitmq-auth-backend-cache

Cheers
Karl

--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-users+unsubscribe@googlegroups.com.
To post to this group, send email to rabbitmq-users@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Karl Nilsson

Staff Software Engineer, Pivotal/RabbitMQ
Reply all
Reply to author
Forward
0 new messages