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!