Ho bisogno di creare una server farm in grado di gestire oltre 5 milioni di connessioni, più di 5 milioni di argomenti (uno per client), elaborare 300k messaggi al secondo.Connessioni MQTT massime
Ho provato a vedere quali vari broker di messaggi erano in grado, quindi attualmente sto utilizzando due istanze RHEL EC2 (r3.4xlarge) per creare molte risorse disponibili. Quindi non hai bisogno di cercarlo, ha 16vCPU, 122 GB di RAM. Non sono affatto vicino a questo limite di utilizzo.
Non riesco a superare il limite di connessioni 600k. Dal momento che non sembra esserci alcuna limitazione O/S (molta RAM/CPU/ecc.) Sul client o sul server, cosa mi limita?
Ho modificato /etc/security/limits.conf come segue:
* soft nofile 20000000
* hard nofile 20000000
* soft nproc 20000000
* hard nproc 20000000
root soft nofile 20000000
root hard nofile 20000000
Ho modificato /etc/sysctl.conf come segue:
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
Per Apollo: export APOLLO_ULIMIT = 20000000
Per ActiveMQ:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS -Dorg.apache.activemq.UseDedicatedTaskRunner=false"
ACTIVEMQ_OPTS_MEMORY="-Xms50G -Xmx115G"
ho creato 20 indirizzi privati aggiuntivi per eth0 sul client, quindi assegnato: ip addr aggiungere 11.22.33.44/24 dev eth0
Sono pienamente consapevole dei limiti delle porte 65k ed è per questo che ho fatto quanto sopra.
- Per ActiveMQ ho avuto modo di: 574309
- Per Apollo ho avuto modo di: 592891
- Per Coniglio ho avuto modo di 90k, ma la registrazione era terribile e non riusciva a capire cosa fare per andare più in alto anche se io sappia che è possibile.
- Per Hive ho raggiunto il limite di prova di 1000. In attesa di una licenza
- IBM vuole scambiare il costo della mia casa per usarli - nah!
Non posso davvero dire come aumentare il throughput. Tuttavia, checkout http://kafka.apache.org/. Non sono sicuro del supporto MQTT, ma sembra in grado di raggiungere i client di throughput/# estremo. –
hai provato il mosquitto? (http://mosquitto.org/) –
Trying Hive, Apollo, Mosquito, Active, Rabbit, zanzare – redboy