Conexões MQTT máximas

Preciso criar um farm de servidores que possa lidar com mais de 5 milhões de conexões, mais de 5 milhões de tópicos (um por cliente) e processar 300 mil mensagens / s.

Tentei ver o que vários intermediários de mensagens eram capazes e, atualmente, estou usando duas instâncias do RHEL EC2 (r3.4xlarge) para disponibilizar muitos recursos. Então você não precisa procurar, ele tem 16vCPU, 122GB RAM. Não estou nem perto desse limite de uso.

Não consigo passar o limite de conexões de 600k. Como não parece haver nenhuma limitação de O / S (muita RAM / CPU / etc.) No cliente nem no servidor, o que está me limitando?

Eu editei o /etc/security/limits.conf da seguinte maneira:

* soft  nofile  20000000
* hard  nofile  20000000

* soft  nproc  20000000
* hard  nproc  20000000

root  soft  nofile 20000000
root  hard  nofile 20000000

Eu editei o /etc/sysctl.conf da seguinte maneira:

net.ipv4.ip_local_port_range = 1024 65535  
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_mem = 5242880  5242880 5242880 
net.ipv4.tcp_tw_recycle = 1 
fs.file-max = 20000000 
fs.nr_open = 20000000 
net.ipv4.tcp_syncookies = 0

net.ipv4.tcp_max_syn_backlog = 10000 
net.ipv4.tcp_synack_retries = 3 
net.core.somaxconn=65536 
net.core.netdev_max_backlog=100000 
net.core.optmem_max = 20480000

Para Apollo: exportar APOLLO_ULIMIT = 20000000

Para o ActiveMQ:

ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS -Dorg.apache.activemq.UseDedicatedTaskRunner=false"
ACTIVEMQ_OPTS_MEMORY="-Xms50G -Xmx115G"

Criei 20 endereços privados adicionais para eth0 no cliente e os atribuí: ip addr add 11.22.33.44/24 dev eth0

Estou ciente dos limites da porta de 65k e foi por isso que fiz isso acima.

Para o ActiveMQ, cheguei a: 574309Para a Apollo, cheguei a: 592891Para Rabbit, cheguei aos 90k, mas o registro foi péssimo e não consegui descobrir o que fazer para subir mais, embora eu saiba que é possível.Para o Hive, cheguei ao limite de teste de 1000. Aguardando uma licençaA IBM quer negociar o custo da minha casa para usá-los - nah!