关于freeswitch报错:AUDIO RTP REPORTS ERROR: [Socket Error!]的问题记录

背景:

最近在压测freeswitch时,发现压测并发总是上不去,刚压到100并发多一点就开始报错了,报错内容是:AUDIO RTP REPORTS ERROR: [Socket Error!],由于fs的环境不是本人搭的,不清楚他们在搭建环境的时候进行了那些操作,然而网上的查到的别人相同报错导致的原因与我的情况完全不同,特此记录一下备忘,同时也希望能帮助有缘人吧;

排查过程:

        发现并发上不去,100并发多一点就开始返回488[INCOMPATIBLE_DESTINATION],这个code就表示协商过程失败了,那就直接看日志吧,通过日志可以醒目的看到有报错,内容如下:

2023-08-18 17:26:18.280568 [ERR] switch_rtp.c:4416 Error Starting timer [soft] 160 bytes per 20ms, async RTP disabled
2023-08-18 17:26:18.280568 [ERR] switch_core_media.c:9679 AUDIO RTP REPORTS ERROR: [Socket Error!]
2023-08-18 17:26:18.280568 [NOTICE] switch_core_media.c:9680 Hangup sofia/external/0000000000@10.75.27.208 [CS_EXECUTE] [INCOMPATIBLE_DESTINATION]

        不难看出,罪魁祸首就是这个socket error了,那么到底是什么原因导致的这个错误呢,既然是socket问题,那就先看看是否limits上限了吧,继续往下看:

[root@freeswitch-02 ~]# pidof freeswitch
21837
[root@freeswitch-02 ~]# cat /proc/21837/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            245760               8388608              bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             unlimited            unlimited            processes
Max open files            1024                 1024                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       15061                15061                signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     unlimited            unlimited
Max realtime timeout      unlimited            unlimited            us

        先找到fs的进程id,再通过进程id查看limits,通过这里可以看到Max open files 为 1024,这个数据略低,但是似乎还算正常,但是再通过lsof查看fs的文件打开情况:

[root@freeswitch-02 ~]# lsof -p 21837|wc
    921    2082   24310

        这里是fs完全空闲状态的时候,就已经打开了921个fd,也不知道fs在干啥,所以问题根源就在这里了,在完全空闲的时候就已经占用了921个,当电话打起来1024很快就打满,找到了问题根源,解决起来就easy了,将limits限制放大即可:

[root@freeswitch-02 ~]# echo ulimit -n 65525 >>/etc/profile
[root@freeswitch-02 ~]# source /etc/profile

注意:操作完了以后记得重启fs

        操作完之后再看Max open files ,已经改为65535,如下:

[root@freeswitch-02 ~]# cat /proc/22217/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            245760               8388608              bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             unlimited            unlimited            processes
Max open files            65535                65535                files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       15061                15061                signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     unlimited            unlimited
Max realtime timeout      unlimited            unlimited            us

        ok,此时再次压测,已经不再报AUDIO RTP REPORTS ERROR: [Socket Error!]的错误!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值