Max MQTT-Verbindungen

Ich muss eine Serverfarm erstellen, die mehr als 5 Millionen Verbindungen, mehr als 5 Millionen Themen (eines pro Client) und 300.000 Nachrichten pro Sekunde verarbeiten kann.

Ich habe versucht herauszufinden, welche verschiedenen Nachrichtenbroker in der Lage sind. Daher verwende ich derzeit zwei RHEL EC2-Instanzen (r3.4xlarge), um viele Ressourcen verfügbar zu machen. Sie müssen es also nicht nachschlagen, es hat 16vCPU, 122GB RAM. Ich bin bei weitem nicht in der Nähe dieser Nutzungsbeschränkung.

Ich kann das 600k-Verbindungslimit nicht überschreiten. Da es anscheinend weder auf dem Client noch auf dem Server eine Betriebssystembeschränkung (viel RAM / CPU / etc.) Gibt, was schränkt mich ein?

Ich habe /etc/security/limits.conf wie folgt bearbeitet:

* soft  nofile  20000000
* hard  nofile  20000000

* soft  nproc  20000000
* hard  nproc  20000000

root  soft  nofile 20000000
root  hard  nofile 20000000

Ich habe /etc/sysctl.conf wie folgt bearbeitet:

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

Für Apollo: exportiere APOLLO_ULIMIT = 20000000

Für ActiveMQ:

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

Ich habe 20 zusätzliche private Adressen für eth0 auf dem Client erstellt und diese dann zugewiesen: ip addr add 11.22.33.44/24 dev eth0

Ich bin mir der 65k-Portgrenzen voll bewusst, weshalb ich die obigen Schritte ausgeführt habe.

Für ActiveMQ habe ich: 574309Für Apollo habe ich: 592891Für Rabbit habe ich 90k erreicht, aber die Protokollierung war schrecklich und ich konnte nicht herausfinden, was ich tun sollte, um höher zu fahren, obwohl ich weiß, dass es möglich ist.Für Hive habe ich das Probelimit von 1000 erreicht. Warten auf eine LizenzIBM möchte die Kosten meines Hauses tauschen, um sie zu nutzen - nah!