文档章节

FreeSwitch inbound 模式,CPU过载问题分析解决

attobit
 attobit
发布于 2016/09/30 16:07
字数 304
阅读 425
收藏 0
点赞 0
评论 0

现象:外部程序使用ESL通过inbound模式与FreeSwitch交互,出现FreesSwitch进程CPU过载。      

分析:
通过gdb attach到FreesSwitch进程,查看各线程的backtrace
分析bt结果,看到很多event socket的线程执行到read_packet函数中进行poll操作

        #0  0x00007fe6ba71f043 in poll () from /lib64/libc.so.6
        #1  0x00007fe6bcb539c5 in apr_poll () at poll/unix/poll.c:117
        #2  0x00007fe6bca5e5c3 in switch_poll () at src/switch_apr.c:973
        #3  0x00007fe6b4c1950e in read_packet () at mod_event_socket.c:1449
        #4  0x00007fe6b4c1e8bc in listener_run () at mod_event_socket.c:2667
        #5  0x00007fe6bb0279d1 in start_thread () from /lib64/libpthread.so.0
        #6  0x00007fe6ba72886d in clone () from /lib64/libc.so.6

event socket的线程数等于建立到8021端口的连接数
所以此时有两个问题,1连接数比预想多,2空闲连接poll操作占用CPU。

对于第一个问题,程序bug:
外部程序对于esl的handle没有做重复的初始化,而esl_connect()函数对于handle入参也没有做初始化处理。导致socket没有在esl_disconnect时真正的释放。


对于第二个问题,可以通过如下修改,降低空闲连接占用CPU:
Patch代码:https://freeswitch.org/fisheye/changelog/freeswitch/?cs=e7f05b4

© 著作权归作者所有

共有 人打赏支持
attobit
粉丝 0
博文 6
码字总数 1858
作品 0
深圳
FreeSWITCH 与 Asterisk(译)

Anthony Minssale/文 Seven/译 VoIP通信,与传统的电话技术相比,不仅仅在于绝对的资费优势,更重要的是很容易地通过开发相应的软件,使其与企业的业务逻辑紧密集成。Asterisk作为开源VoIP软...

mickelfeng
2013/03/06
0
0
freeSwitch安装步骤 for CentOS

下载: 下载地址:http://files.freeswitch.org/ 或者直接用git安装。可能会失败 git clone -b v1.2.stable git://git.freeswitch.org/freeswitch.git 安装依赖环境: yum install autoconf......

会哭的鳄鱼
2017/10/24
0
0
freeswitch实战经验1:服务器向成员主动发起会议邀请

接触过freeswitch的童鞋们都知道,freeswitch自动会议室功能,比如大家都拨3000这个号码,就可以进行电话会议功能了。但是,现在有这么一个场景:现在某个主持人想开电话会议,想直接由frees...

BLUE-魏晓峰
2013/06/17
0
0
freeSWITCH编译java esl模块

一、背景 假设源代码路径为/home/freeswitch 二、编译安装libesl.a 1. cd /home/freeswitch(源代码的根目录) 执行./configure,以便生成必要的Makefile文件。 2. cd /home/freeswitch/libs/...

会哭的鳄鱼
2017/10/24
0
0
用freeswitch架设局域网内sip电话

FreeSWITCH 是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。 首先保证已经有lib...

Yisen
2011/06/16
0
0
freeswitch实战经验2:发送短消息

大家都知道通过freeswitch,可以实现用户与用户之间发送短信,那能否做个WEB系统,实现通过服务器向一堆用户发送短信呢? 答案必须是肯定的! 1、还是使用fs_cli,这个东西我不在重复描述,见...

BLUE-魏晓峰
2013/06/18
0
4
用freeswitch架构自己的VOIP网络电话

目标:通过手机拨号的方式,达到手机与手机、手机与电脑之间的语语音或视频通讯,传输数据全部通过互联网。 附加要求:除了实现一对一通话,还必须实现群组呼叫,其中群组呼叫分两种:1、发起...

BLUE-魏晓峰
2013/05/17
0
5
Elastix-2.2 中文版本近期发布

VOIP88开源技术论坛近期将发布Elastix-2.2 中文版本。 在以前的elastix-2.0 的基础上做了进一步的汉化,丰富了更多的汉化 界面,和呼叫中心模块。 VOIP88是一个集asterisk/voip硬件销售与Ela...

VOIP88
2011/12/08
0
0
SIP Trunk / SIP 中继服务

CTS SIP Trunk/SIP中继可以让你现有的IPPBX连接到CTS的平台从而使用VOIP外线落地。享受拨打全国统一资费0.09元,多路中继号码,可接听电话。如果你已经有了IPPBX系统,使用CTS SIP Trunk企业...

ctsxiyou
2014/02/17
0
0
2014年GDG西安 -- DevFest Season1

今年9月21日,GDG西安组织了第一季以Android Wear为专题的活动,葡萄城则以超一流的办公环境和网络宣传,配合举行了本次活动。下面通过图文方式进行报道,希望未能如期参加的筒子们不要有太多...

葡萄城控件技术团队
2014/09/23
0
19

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部