CPU utilization by webrtcbin plugin

Pradeep Acharya pradeep.acharya1008 at gmail.com
Thu Aug 4 13:36:02 UTC 2022


 Hi,
This is a query related to CPU utilization and any optimization can be done
to reduce the CPU utilization.i've a media server that connects to web app
applications running in the browser  . The media server uses webrtc bin
plugin .
I use a single socket to transmit and receive audio/video .  I've attached
the png files extracted from the Dot file. Below is configuration details
of the server used

Num of CPU cores: 8
Model: Intel(R) Xeon(R) CPU  X5650  @ 2.67GHz
Audio codec: opus
video codec : VP8
video encoding by clients: 640 x480 @ ~ 500 kbps

The server does not decode or encode the RTP but just forward from one
client to another. When I execute the top command, I find that the cpu % is
around 14 to 16 % just for 2 clients . The cpu utilization goes up higher
and higher as the number of clients connected to the server increases. For
8 participants it goes beyond 400% , distributed among the cores. output of
the top command

2329570 root     -11   0 4074924  73708  18920 S   2.0   1.3   0:01.80
queue1:src
2331060 root     -11   0 4074924  73708  18920 S   1.7   1.3   0:01.45
nicesrc1:src
2329568 root     -11   0 4074924  73708  18920 S   1.3   1.3   0:05.39
nicesrc0:src
2329569 root     -11   0 4074924  73708  18920 S   1.3   1.3   0:04.39
queue0:src
2331061 root     -11   0 4074924  73708  18920 S   1.3   1.3   0:01.38
queue2:src
2331062 root     -11   0 4074924  73708  18920 S   1.0   1.3   0:01.41
queue3:src
2329567 root     -11   0 4074924  73708  18920 S   0.7   1.3   0:01.64
rtpsession-rtcp
2329583 root     -11   0 4074924  73708  18920 S   0.7   1.3   0:00.94
rtpjitterbuffer
2331058 root     -11   0 4074924  73708  18920 S   0.7   1.3   0:00.39
appsrc_Audio_36
2331059 root     -11   0 4074924  73708  18920 S   0.7   1.3   0:00.64
rtpsession-rtcp
2331079 root     -11   0 4074924  73708  18920 S   0.7   1.3   0:00.42
rtpjitterbuffer
2331080 root     -11   0 4074924  73708  18920 S   0.7   1.3   0:00.38
rtpjitterbuffer
2329580 root     -11   0 4074924  73708  18920 S   0.3   1.3   0:00.08 timer
2329582 root     -11   0 4074924  73708  18920 S   0.3   1.3   0:01.42
rtpjitterbuffer
2329584 root     -11   0 4074924  73708  18920 S   0.3   1.3   0:00.51
rtpjitterbuffer
2331070 root     -11   0 4074924  73708  18920 S   0.3   1.3   0:00.40
appsrc_Audio_13
2331084 root     -11   0 4074924  73708  18920 S   0.3   1.3   0:00.20
rtpjitterbuffer

>From the above, I see that nicesrc plugin takes around 2 % of cpu of one
client  I think this plugin receives packets and puts them to queue. Should
this thread take 2 % cpu to receive RTP packets from socket and put them to
queue ?
other elements like nicesink, rtpjitterbuffer ,appsrc thread consume CPU.
Features like do-nack and TWCC are enabled for video

1. Is there any benchmark of CPU utilization that the webrtcbin plugin
should take for a 2 way TX and RX of audio,video RTP packets @ 500 kbps ?
2. ARe there any element property config changes that need to be done to
reduce CPU utilization ?
3. How to proceed to reduce cpu utilization ? Any suggestions that help me
in figuring out are welcome


Thanks
Pradeep
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220804/016307f4/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: webrtc_2013589.png
Type: image/png
Size: 438876 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220804/016307f4/attachment-0001.png>


More information about the gstreamer-devel mailing list