A few months ago I started a discussion about “Scaling Node.Js On Multi-Core Systems”.
Yesterday I had the chance to measure the server performance again under the heavy load of Licode with the latest release (v2). It was a webinar with one publisher (audio+video) and hundreds of participants running on a dedicated server with 12 x 2Ghz Xeon Intel CPU (15M Cache) and 12GB of RAM. Every thing was fine until the number of participants reached 150 and then lags on audio began then we had to stop the video and continue the webinar with audio only.
Here’s the process status of the server using
htop utility in the pick of the webinar. As you can see the server load is normal but one of the CPUs has the most process on it which means we couldn’t use the whole server capacity.
Here are some questions in my mind:
- Is there any way to use all the CPU power? Honestly 150 is disappointing.
- Is this about erizoJS architecture or libnice as we discussed before?
- If it’s libnice then perhaps upgrading to the latest version can help, no? The current libnice version we are using (1.4) is very old. What is preventing us from upgrading?
- Xeon CPUs benefit from many CPU cores but with a fewer clock rates comparing with Corei7 CPUs which have higher clock rates with less cores and of course with lower price. May be in this case, which most of the process is on one of the CPU cores, using Corei7 CPU provides better performance. What do you think?