[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,1.4
From: ckarusala () helixcommunity ! org
Date: 2011-07-20 0:56:29
Message-ID: 201107200056.p6K0ugDj006884 () 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-serv23176
Modified Files:
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.4
diff -u -d -r1.3 -r1.4
--- rtpreceiver.cpp 8 Apr 2009 14:30:09 -0000 1.3
+++ rtpreceiver.cpp 20 Jul 2011 00:56:26 -0000 1.4
@@ -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