[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] broadcast/transport/rtp/recv rtpreceiver.cpp, 1.3,
From:       ckarusala () helixcommunity ! org
Date:       2011-07-20 0:57:06
Message-ID: 201107200057.p6K0v9di006918 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/broadcast/transport/rtp/recv
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv23210

Modified Files:
      Tag: SERVER_14_2
	rtpreceiver.cpp 
Log Message:

Synopsis
========
This CR fixes RTP live CPU load issue with high multicast inbound.


Branch : SERVER_14_2_RN, HEAD
Suggested Reviewer : Dean


Description:
==========
A1 Telecom has deployed 14.2 with 120 RTP live feeds sent to the 
server over multicast. And they are seeing considerably higher CPU 
usage (50%+) on the RTP live thread when compared to a similar amount 
of load with RBS (12%). They are also seeing QoS issues playing back 
the RTP live.


They use the same port numbers in all the SDP files but with unique 
multi-cast destination address in each of the SDP files. Looking at 
the netstat output from the customer's machine showed that there are 
mutliple binds happening to the same port pairs. The reason is in 
multicast case, the RTP live plugin binds to HXR_INADDR_ANY instead 
of the specific IP it is supposed to receive packets on. I suspect 
this is causing packets from all the feeds to be read by all the 
objects handling the individual feeds and get rejected at a higher 
level after the socket reads.


Changed the socket bind to the specific IP as read from the SDP file. 
Provided a private build with this fix to the customer and they have 
reported that the CPU usage has gone down from 50% to 12% with this fix.


Files Modified
==========
server/broadcast/transport/rtp/recv/rtpreceiver.cpp


Testing Performed
=================
Unit Tests:
- Customer has deployed the plugin with the fix and reported that CPU 
usage has gone down from 50% to 12%.


Integration Tests:
- None.


Leak Tests:
- None.


Performance Tests:
- None


Platforms Tested: linux-rhel5-x86_64
Build Verified: linux-rhel5-x86_64


QA Hints
=======
Please setup few multicast RTP live feeds to the server and make sure 
that playback works fine with all of them over RTSP unicast.


Thanks,
Chytanya




Index: rtpreceiver.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/rtpreceiver.cpp,v
retrieving revision 1.3
retrieving revision 1.3.24.1
diff -u -d -r1.3 -r1.3.24.1
--- rtpreceiver.cpp	8 Apr 2009 14:30:09 -0000	1.3
+++ rtpreceiver.cpp	20 Jul 2011 00:57:03 -0000	1.3.24.1
@@ -177,7 +177,7 @@
  
         if (m_bMulticast)
         {
-            hresult = m_pSocket->Bind(HXR_INADDR_ANY, m_nLocalPort);
+            hresult = m_pSocket->Bind(m_ulLocalAddr, m_nLocalPort);
             if (SUCCEEDED(hresult))
             {
                 hresult = m_pSocket->JoinMulticastGroup(m_ulLocalAddr,


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic