I ran some informal tests last night and the results seem a bit different, although not vastly so. But at least my results move me out of panic mode. Here's what I did:
- spun up an ubuntu 14.04 512mb 1 CPU server on Digital Ocean. That's their cheapest $5/month server. This server is for the mosquitto broker.
- set the hard and soft open file limits to something ridiculously high
- Installed Mosquitto. Configuration:
- TLS/SSL connections only and w/ insecure certificate (domain name mismatch. I'm just testing.)
- authentication via prefix ID
- log type: all
- spun up 5 ubuntu 14.04 512mb 1 CPU servers on Digital Ocean. These are for the load testing.
- Each of the load testing servers spun up 1700 clients, each client somewhat emulating our hardware i.e. each client:
- had keepalive set to 60 seconds
- subscribed to a topic with 5 other clients
- subscribed to its own unique topic
- published a short message (just a number) to a topic shared by 5 peer clients every 3 to 6 seconds
- everything was done at QoS 0
- So that's a total of 5*1700 = 8500 clients, each publishing every 3 to 6 seconds to 5 other clients, all on one Mosquitto broker.
The results were that the number of clients connected held solidly at 8501 (8500 + the subscriber telling me the # of clients connected) overnight. Mosquitto was hovering between 80 and 100% cpu usage throughout.
When I added another 1700 clients using a 6th server things started breaking down.
So that's not amazing results but better than a meltdown at 3800 clients.
I never got the SSL errors that originally led me to start this thread but I forgot to check for those errors when I spun up the 6th server, so I will run the test again and check for that.
John