sippy / rtpproxy

The RTPproxy is a high-performance software proxy for RTP streams that can work together with Sippy B2BUA, Kamailio, OpenSIPS and SER.
http://rtpproxy.org
BSD 2-Clause "Simplified" License
404 stars 114 forks source link

Issues with RTPProxy process #125

Open ergyspapa opened 2 years ago

ergyspapa commented 2 years ago

Dear team, I have installed rtpproxy on Centos7 and I am using it with Sippy B2BUA as proxy. I am currently facing some issues as during calls I am getting No Online Rtp Proxy is found. I checked the rtpproxy process and it is running without any issues. I also activated debug to check for any errors but can find anything as no error is showing. I am currently testing it with 500cps and 5000 concurrent calls to check the full load. Rtpproxy and Sippy B2BUA are running in different dedicated machines. I have also run rtpproxy with root user and ulimit is rised at 40000. Also need to mention that after some minutes of high load the calls are stopped and then they start again for a few minutes and they go down again. The only doubt that I see is that the process of rtpproxy is not going over 100% on single core. I would really appreciate some help or tips that what I am doing wrong.

Rtpproxy version is: 2.2 from git. Udp ports are: 5000:50000 No firewall is running during tests. Servers are both: E5 - dedicated with ssd and 64Gb or Ram.

sobomax commented 1 year ago

Ergys, for the target amount of the traffic you'd need 4-5 rtpproxy instances running in parallel to handle properly. Our rule of thumb is about 1,000-1,500 of sessions per instance. Each instance is able to utilize ~2-3 cores, so this would ensure the load is well balanced across the machine. If the RTPProxy would be controlled by Kamailio then there is already feature allowing you to load balance across multiple instances by listing individual sockets in the configuration parameters, in case if you want to use B2BUA then there is go-rtp_cluster middleware module allowing to do the same.

mrsanvicente commented 4 months ago

Hello @sobomax / all, what´s the recommended way to setup multiple rtpproxys? I have configured multiple but they point to the same binary rtpprxy. and at some point all rtpproxy services fails at once.

Thank you

sobomax commented 4 months ago

hey @mrsanvicente there are plenty ways to do it. You can create bunch of .service files with slightly varying parameters (i.e. rtpproxy.1.service, rtpproxy.2.service, etc etc). Or you just create a wrapper script that starts takes common arguments and starts many copies under the hood and hook it up to your existing startup script. You should be careful they don't clash over the same resource (i.e. TCP or UDP port or socket name) but other than that should work.

sobomax commented 4 months ago

You should also check usual things like ulimit -n (limit on the number of open descriptors) and use -L flag. As well as global system limits (if any).

To get more clue you can check system logs to see why the session creation fails, running rtpproxy with the "-d info" is usually recommended.

Here is what we typically use here:

/usr/local/bin/rtpproxy -F -L 19999 -u rtpproxy:voip -d info -p /var/run/rtpproxy1.pid -s cunix:/var/run/rtpproxy1.sock -m 10000 -M 64999 --nice -20 /usr/local/bin/rtpproxy -F -L 19999 -u rtpproxy:voip -d info -p /var/run/rtpproxy2.pid -s cunix:/var/run/rtpproxy2.sock -m 10000 -M 64999 --nice -20 /usr/local/bin/rtpproxy -F -L 19999 -u rtpproxy:voip -d info -p /var/run/rtpproxy3.pid -s cunix:/var/run/rtpproxy3.sock -m 10000 -M 64999 --nice -20 /usr/local/bin/rtpproxy -F -L 19999 -u rtpproxy:voip -d info -p /var/run/rtpproxy4.pid -s cunix:/var/run/rtpproxy4.sock -m 10000 -M 64999 --nice -20

-Max

On Wed, Mar 6, 2024 at 8:38 PM mrsanvicente @.***> wrote:

Thanks for your inputs @Maxim Sobolev @.***> ,

Actually it looks i am following your steps. And at the end each service points to

ExecStart=/usr/local/bin/rtpproxy -p /var/run/rtpproxy1.pid $OPTIONS.

The issue, ( i am also using the rtp_cluster), at some point, aroud 400 calls within 9 rtpproxys services, i get the following error:

ERROR:rtpproxy:force_rtp_proxy_body: no available proxies.. (note, all dialogs are closing fine, i mean, the udp ports are not increasing to leave no available ports).

Thanks

On Wed, Mar 6, 2024 at 5:12 PM Maksym Sobolyev @.***> wrote:

hey @mrsanvicente https://github.com/mrsanvicente there are plenty ways to do it. You can create bunch of .service files with slightly varying parameters (i.e. rtpproxy.1.service, rtpproxy.2.service, etc etc). Or you just create a wrapper script that starts takes common arguments and starts many copies under the hood and hook it up to your existing startup script. You should be careful they don't clash over the same resource (i.e. TCP or UDP port or socket name) but other than that should work.

— Reply to this email directly, view it on GitHub https://github.com/sippy/rtpproxy/issues/125#issuecomment-1982012163, or unsubscribe < https://github.com/notifications/unsubscribe-auth/ABM4J25Q275QMNQUWVR63ALYW6PEBAVCNFSM5PPPK6OKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJYGIYDCMRRGYZQ>

. You are receiving this because you were mentioned.Message ID: @.***>

-- Mario San Vicente Cheers!

— Reply to this email directly, view it on GitHub https://github.com/sippy/rtpproxy/issues/125#issuecomment-1982333408, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABVMJXD54GAG6MY5ARZ26TYW7VNHAVCNFSM5PPPK6OKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJYGIZTGMZUGA4A . You are receiving this because you were mentioned.Message ID: @.***>

-- Maksym Sobolyev Sippy Software, Inc. Internet Telephony (VoIP) Experts Tel (Canada): +1-778-783-0474 Tel (Toll-Free): +1-855-747-7779 Fax: +1-866-857-6942 Web: http://www.sippysoft.com MSN: @.*** Skype: SippySoft

sobomax commented 4 months ago

@mrsanvicente we've been running such configuration in production since 2016-2017, doing 20k+ RTP sessions across 5 nodes, each running 4 RTP proxies. ScreenShot267

mrsanvicente commented 4 months ago

Thank you as always for you kind help @Sobomax!SaludosmrsanvicenteOn 7 Mar 2024, at 12:07, Maksym Sobolyev @.***> wrote: @mrsanvicente we've been running such configuration in production since 2016-2017, doing 20k+ RTP sessions across 5 nodes, each running 4 RTP proxies. ScreenShot267.png (view on web)

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

mrsanvicente commented 4 months ago

Hello @sobomaxThat is a great performance.  Thanks for sharing!!!  SaludosMario San VicenteOn 7 Mar 2024, at 13:01, mrsanvicente @.> wrote:Thank you as always for you kind help @Sobomax!SaludosmrsanvicenteOn 7 Mar 2024, at 12:07, Maksym Sobolyev @.> wrote: @mrsanvicente we've been running such configuration in production since 2016-2017, doing 20k+ RTP sessions across 5 nodes, each running 4 RTP proxies. ScreenShot267.png (view on web)

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>