Usage Limits & Recommendations
Currently, customers in HotMic are set up with their own environments, configured to their own scaling needs.
File | Recommendation | Limit |
---|---|---|
Profile Picture | png/jpg of approximately 256x256 (between 200 and 500 pixels across) | 1028x1028, smaller is better |
Thumbnail, Break Slate, End Slate Picture | png/jpg of 1280x720 | Files will be resized to these dimensions |
*All limits can be increased by talking to our team.
Constraint | Limit |
---|---|
Max Simultaneous Live Streams | 10* |
Max Simultaneous VOD Streams | No Limit |
Max Viewers Per Stream | 250,000* |
Max Simultaneous Viewers Across All Live and VOD Streams | 250,000* |
Max Hosts Per Stream | 6 (or 5 + media sharing)* |
For additional usage, please contact us.
All limits can be increased by talking to our team.
Constraint | Limit |
---|---|
Host Machine | We recommend a PC, Mac, or Linux machine roughly equivalent to a 2018 Macbook Air.
Performance is likely to be good on even lower-powered devices, although we don't recommend it. Successful tests have been made on machines including low-powered 2018 Chromebooks and laptops running with GPU disabled. |
Minimum download speed | minimum dedicated 1mb/s down |
Minimum upload speed | minimum dedicated 1mb/s up |
Microphones |
|
Browser | Chrome or Edge |
As each customer for HotMic has primarily dedicated resources, we know how our default configuration will respond under load, and can give you information about the breaking points and effects at scale.
HotMic has conducted and regularly conducts extensive load testing of the HotMic platform. On our default cluster setup, we see normal performance on clusters running up to 480,000 concurrent users joining a stream and interacting with the stream. Our suggestion is to speak to HotMic if you expect traffic to go beyond 250,000 concurrent users across all your streams.
This is the high level structure of HotMic's infrastructure:
- The web browser of the host - This must have minimal requirements to compose the stream on the local device, receive chats and polls. While we have tested in devices as weak as a low powered 2018 chromebook, we recommend something more powerful, such as a recent Macbook air or higher class device (PC, Mac, or Linux). Note that the number of viewers has limited impact on the host machine, for example polls and chats are aggregated and refreshed on intervals in order to maintain performance.
- Stream composer - This is a HotMic server that combines all the elements of the feed and outputs an RTMP. This can handle up to 6 inputted streams: hosts or media playing. This is not affected by viewer behavior.
- RTMP to HLS - Our pipelines constrain the number of simultaneous HLS conversions, and this is by default limited to 10 per account. We can increase this with notice.
- Video CDN - We house videos in Cloudfront, which should handle effectively unlimited scale.
- Users in the SDK join a session - then recieve the video from the CDN, plus chats, polls, and other updates. We recommend contacting us if you plan on having more than 250k simultaneous users so we can help support normal usage patterns. Our standard cluster will start to show significant performance degradation beyond 480,000 but we would increase scale once usage gets beyond 250,000 concurrent users. We requrest 2 week advance notice to scale beyond our standard cluster.
Some specifics on the components:
- The server recieving chats - We have tested up to 10,000 chats per minute. At these levels, the app UI feels overwhelming, but the applications does not break. A typical stream would have <10% of users chatting, so this should support up to 1M concurrent users. Like other limits, this load is the same whether on 1 stream or many streams, the backend poll service incurs the same load.
- Polls - Polls have been tested up to 5,000 polls answered in 1 minute. Beyond that point, and poll delivery will be delayed for processing. A typical stream would have <10% of users answer polls, so this should support up to 500k concurrent users on streams with active polls. Like other limits, this load is the same whether on 1 stream or many streams, the backend poll service incurs the same load.
- The users entering the stream - This is almost always the highest load event on our servers, as users who are notified of a stream typically join within a 5 minute period. We have tested with minimal impact up to 480,000 users joining over 5 minutes. We recommend talking to us if you expect more than 250k maximum concurrent and we stongly discourage any usage over 480k concurrent users unless your cluster has been upgraded to support it.
While we run load tests in conjunction with almost every deployment, here are a sample of recent load test results.
Most Recent Public Load Tests - April 2023
We ran a series of load tests outside our normal deployment proces on April 2023 to find the breaking points for a standard configured instance of HotMic for a customer. In these tests, we found the overall chokehold occurs around 4,500 requests per second. In most cases, more than half the requests for a stream are to join the stream. This ends up meaning in practice that approximately 2,000 concurrent users could join a stream per second. Joining a stream is the event that has the most load on the system. These results matched prior tests.
For a typical stream, we see joins occur around 5 minutes from the time of a given alert. This means the maximum theoretical joins over a 5-minute period would be 600,000 (5 x 60 x 2,000). This limit is across all streams, and is not affected by the number of concurrent streams. In other words, 10,000 viewers simultaneously joining 10 streams would have the same load impact on HotMic as 100,000 viewers simultaneously joining 1 stream.
This can be seen in this graph, which the blue line represents the number of virtual simulated users. Until 500,000 users or so, response times look good. After 500,000 users, we see response times increase towards unacceptable levels and some timeouts occur.