Help needed to set up a WebRTC media server on a physical server

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Eduar Tua

New Member
Apr 14, 2023
3
0
1
Hello everyone,

I am new to physical servers and would appreciate your help in setting up a WebRTC media server on a Dell Poweredge R730 server that I recently purchased on Ebay. I am planning to use this server as a lab server to build my POC.

Here are my requirements:

  • I need to run a WebRTC application that will handle p2p connections.
  • One end of the WebRTC agents will be connected through the server via PCI-E/USB Host Controllers.
  • Every PCIE Slot used will handle around 100 PCM Audio signals, at a very low bit rate and not simultaneously.
  • I'm planning to have a server with at least 7 or 8 PCI-E Slots.
  • The server doesn't need virtualization as this will be just a standalone WebRTC media server. (I'm not 100% sure about this)
Since I am new to physical servers, any recommendations on how to start this project would be greatly appreciated. Specifically, I would like to know what software I need to install on the server to run the WebRTC application and how to configure the PCI-E/USB Host Controllers.

Imagine that you were to run this kind of application. What kind of servers (brand/model) would you buy?

Also, if you could recommend any servers for a production environment that would meet my requirements, that would be amazing.

Thank you in advance for your help. I look forward to your recommendations.
 

DavidWJohnston

Active Member
Sep 30, 2020
242
191
43
The scope of this question is very large - But I will try to say something useful:

- What software do you need to enable WebRTC? Deciding this is part of the software development process. You need to match up your specific requirements (more granular than what's in the post) with available packages/platforms and decide what to develop your application on. The software developers you have available to you, and their language preferences may also matter.

To determine the production hardware requirements with any degree of accuracy, you will need to do a test. When doing your POC for performance estimation, the size of your POC server isn't important - What you do is host as many sessions as you can, and keep adding sessions until the performance is no longer acceptable. Then you use that result to scale-up resources to match what you anticipate will be your production workload, plus a safety margin.

For instance, if your POC is able to host 10 sessions per CPU core with acceptable performance, and your estimated production workload is 1500 sessions, then you need about 150 cores (of similar performance) worth of servers as a starting point. Some resources do not scale linearly, so do enough testing before buying all your prod hardware.

The brand/model of server is hard to say at this early stage. PCIe slots are not all created equal, they have different bus sizes and speeds (ex. Gen3/4 x16/8/4, etc) - After your POC experiment, you will know better how many slots and what cards and bus sizes you need, which can help decide the make and model of server.

Saying "very low bitrate" is not equivalent to "so low it doesn't matter" - It needs to be benchmarked and measured, because it depends a lot what you are doing with those streams in your particular application. Ex: audio filters, volume normalization, equalization, mixing, encoding to different formats, re-transmitting, buffering, etc, all have a huge impact on the resources needed - And all of these things depend on what exactly your application is doing. Only after understanding this can you pick out makes and models of servers.

Good luck with the project.
 

Eduar Tua

New Member
Apr 14, 2023
3
0
1
Hey @DavidWJohnston thanks for your input. You've made me realize that my question has no much sense to have it at this very early stage where I'm still building the POC. Some points to note are:

- Audio won't be processed, that is the signal will be streamed as it is.
- This is pure Go WebRTC application.

I'll work hard the next few months to get an initial sense of what the worlkload will be and some preliminary benchmarks.

Overall, it's important to approach this project with a systematic and iterative approach, starting with small-scale testing and gradually scaling up as I gather more data and refine the hardware and software requirements.
 

Eduar Tua

New Member
Apr 14, 2023
3
0
1
I'll be reporting back when I have more information.

BTW can you point me out resources to learn about RAID and what I really need to set up my initial server?