当前位置: 首页 > news >正文

freeswitch的一个性能问题

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

在fs的使用过程中,会遇到各种各样的问题,各种问题中,性能问题是最头疼的。

最近在测试某些场景的时候,压测会造成fs的内存占用持续升高,并在达到某个临界点的时候击溃fs的端口服务,导致全部sip呼叫响应503。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

起因

在问题发生后,通过对fs的模块、配置等进行排查,确定了几个方向。

方向1,日志写缓存。

方向2,呼叫session处理线程池。

方向3,端口启动数目。

经过测试和复现,方向锁定3端口启动数目。

测试方案

首先,在fs的conf/sip_profiles目录下生成1200个external****.xml文件,每个文件使用不同的端口号。

external9200.xml

<profile name="external9200">

<param name="sip-port" value="9200"/>

启动fs,使用sipp进行压测(脚本参见之前的文章)。

测试结果

启动fs后,没有呼叫的时候,已经占用了3.6G(46%)的内存。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

20596 root      -2 -10   17.1g   3.6g   8252 S  97.3 46.5   1:26.05 freeswitch

使用sipp-auto.py脚本进行并发测试。

测试呼叫跑满1小时。

20596 root      -2 -10   18.5g   5.2g   3308 S 121.6 68.6  15:11.83 freeswitch

测试呼叫经过3个小时。

20596 root      -2 -10   21.3g   5.4g   3168 S 231.5 70.4 772:38.37 freeswitch

从top的显示中可以看到fs的内存占用持续升高。

总结

fs启动打开的端口超过一定数目(1000)之后,会有内存占用过大和内存持续升高的问题。

在删除多余的端口资源后,测试恢复正常。

具体原因需要对sofia模块代码走读确定。

空空如常

求真得真

http://www.lryc.cn/news/233721.html

相关文章:

  • 各机构如何加强网络渗透、“渗透”防御
  • Docker命令 常用中间件运维部署,方便构建自己服务
  • Android——gradle构建知识片-散装版
  • 3.3 Windows驱动开发:内核MDL读写进程内存
  • 开源与闭源:驾驭大模型未来的关键决断
  • 面向对象成员之属性
  • 第六十二周周报
  • 【机器学习】 特征工程:特征预处理,归一化、标准化、处理缺失值
  • 【深度学习实验】网络优化与正则化(七):超参数优化方法——网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索
  • 简单漂亮的首页
  • SSM项目初始化流程与操作概念解释-SpringBoot简化版
  • Angular 路由无缝导航的实现与应用(六)
  • quickapp_快应用_tabBar
  • PCL_点云分割_基于法线微分分割
  • 计算机毕业论文内容参考|基于深度学习的交通标识智能识别系统的设计与维护
  • SELinux零知识学习十六、SELinux策略语言之类型强制(1)
  • 轻量封装WebGPU渲染系统示例<34>-数据驱动之Json构建场景
  • 全局异常拦截和Spring Security认证异常的拦截的顺序
  • Hive Lateral View explode列为空时导致数据异常丢失
  • 音频类型转换工具-可执行文件exe/dmg制作
  • 【Proteus仿真】【51单片机】公交车报站系统
  • C++--STL总结
  • Python----图像的手绘效果
  • Android13集成paho.mqtt.android启动异常
  • STM框架之按键扫描新思路
  • Linux服务器挂载另一台服务器的文件夹(mount)
  • 剑指offer --- 用两个栈实现队列的先进先出特性
  • 流媒体协议
  • ClickHouse的分片和副本
  • C语言编程陷阱(五)