Max EasyRTC / WebRTC Load [Discussion]

204 views
Skip to first unread message

Benjamin Schroeder

unread,
Oct 9, 2015, 9:03:38 PM10/9/15
to EasyRTC

I guess this is more of a discussion then a "My Install doesn't work Halp!" thread.


I've been hacking away on EasyRTC for awhile now and I am hoping Eric, or Rod can throw their opinions this way...


Lets say for Example you have EasyRTC installed on a AWS EC2 Basic Instance (Because I do). Running AWS's CentOS Linux... and no Load Balancers or, AWS Elastic Beanstalk or, ElastiCashe...  The basic AWS EC2 instance is, much like the Linode Basic, or Digital Ocean Basic server...


What is the max load EasyRTC can handle... or would it be based on the Metal of the server that would dictate the max load, or does the server not really have much effect, and max load is based on the Individual connection speed of the end connected user, being an internet provider issue?


Can EasyRTC / WebRTC handle a 200 person group Video chat?   How would a EasyRTC install handle a 200+ person group Video chat?




Thanks,  






Eric Davies

unread,
Oct 10, 2015, 1:49:09 AM10/10/15
to EasyRTC
Because the easyrtc server only sends a few messages, it can support quite a few peers. A few thousand shouldn't be a problem.  That said:
 I believe Rod says don't want more than 50 peers in a room because every time some joins/leaves/or changes their published room state (room api fields, presence/status), messages would get sent out to everybody else in that room. In short, having lots of peers in a room doesn't scale ideally. But it's really going to depend on how many messages get caused by your application of course. You might want to try doing some bench marking.

Of course, you are limited in how many peers a single peer can be sharing media streams with, but that isn't a limitation on the server side, that would be the client side.

Benjamin Schroeder

unread,
Oct 12, 2015, 1:03:36 PM10/12/15
to EasyRTC

Hello Eric,

Thank you for the reply.
Obviously I'd never run a room with 200+ or even 50+ video streams... just the layout in design would be silly.

Thanks again for your input.



Christopher Joy

unread,
Jun 1, 2017, 8:24:27 AM6/1/17
to EasyRTC
@Benjamin Schroeder

Mr. Schroeder, I have a few questions/requests, since I've been trying in vain to get an EasyRTC server going on AWS.  Granted, I was trying in Windows 2016 instance, so kind of an apples and oranges thing.  Ok, first, a question:

"Running AWS's CentOS Linux... and no Load Balancers or, AWS Elastic Beanstalk or, ElastiCashe"

If you're running it this way, do you have your own SSL certificate? Otherwise, how are you getting SSL so you can use https?

Do you have an AMI image I can use to get started with?  Just the basic server running EasyRTC with the demos running from remote clients?  Preferably within the free tier so I can work on it without being charged?

I basically have a site where instructors will Webcast, so 1 to many, in low res, and then a student can request tutoring which would be 1 to 1 in higher resolution.  I have not been able to get EasyRTC to work outside of localhost, mostly because I haven't gotten SSL certification working.  I'm going to put Windows Server to bed, and go back to Linux.  If you have an image, walkthrough, tutorial, any help, I'd appreciate it.  I suppose I could actually pay you (a little) if you could make an image for me, or give you credentials to help me get my site working.  Please let me know.

Chris Joy
(tanoshimi200 for gmail or kodeslicer for Hotmail)

Benjamin Schroeder

unread,
Jun 4, 2017, 3:09:36 AM6/4/17
to EasyRTC
Hello Christopher, @christopher Joy

I've in the past tried to run EasyRTC on AWS however, I've found AWS to be too expensive.
Something like Linode, or Digital Ocean seemed to fit the bill, and billing situation. 
However you can keep your existing AWS install with Windows if you use a CNAME within your DNS.
Run your site off port :80 and EasyRTC off :8443 ... :8443 will be important later.

Ok so, if you keep your existing install fine, but I don't know anything about Windows so. eh.

If you opt for a Linux on Linode or DO install Ubunutu.  

Lets go.

On Linode or DO do your basic LEMP install
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04

Then without SSL/ TLS on your primary domain install Lets Encrypt for free.

After these steps, witch are production ready you should have a domain with SSL/TLS on a better host then AWS.
AWS is fine but you won't have to deal with their cost, and BS ... EC2, Elastic Beanstalk and Easy Street are fine, but lets get real, it's not easy, or fun to use. 

OK.

At this point you should be able to hit, https://domain.com if you can lets go on.

now sign up for XirSys.  
Choose the FREE plan.
And
Sign up
it's also free, but not required.

Then SSH to your web directory and get the XirSys branch of the EasyRTC project. https://github.com/xirsys/easyrtc
SSH to the server, then to the directory you want to run EasyRTC from.
Then do.
If you don't have git, then do "sudo apt-get install git"

Their project has the SSL/ TLS and STUN / TURN or ICE connections built in. 
I recommend using :8443 as your SSL/ TLS port as you can use it with https://www.cloudflare.com.
If you choose not to use CF, still use :8443.

With this basic set up, i've been able to run 35 interactive users.
With that said, it's not about the backend solution, but rather the PC used. 
The PC's are custom built machines, With Intel i7 7700k CPU's with over 32mb of RAM and big GPU's ... and top Comcast/Xfinity internet.connections.
This server setup can handle over 200 connections, but the end user machine is the limiting factor.








Reply all
Reply to author
Forward
0 new messages