Fresswitch的性能分析

本文分析了Freeswitch在高并发环境下的性能表现,发现数据库操作是主要瓶颈。通过更换数据库、数据库放入内存、使用Mysql连接池等措施,尝试优化性能,但效果不明显。关闭数据库(nosql启动)显著提升了性能,确认数据库性能是关键因素。寻求更多优化数据库性能以提升Freeswitch caps的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 主要表现

众所周知,Freeswitch(FS)相比Asterisk有着较高的性能优势,最近也在尝试使用FS来测试它的性能优势到底在哪。使用之后,FS的性能并没有达到预期的要求。

1.1 测试环境

FS(版本1.6.20)安装在centos6.5系统上, FS配置了30000用户, 使用Sipp进行测试

1.2 caps不高

缓慢提高Sipp每秒发往FS的包的数量, 当caps提高到30以上时,会出现FS来不及处理Sipp发送的包,导致Sipp收不到响应而重传包。

1.3 原因分析

添加log和代码阅读, 发现FS数据库操作需要20ms时间。 而且一个线程操作数据库时, 会加锁导致后面的线程必须等之前的线程操作完数据库才可以继续运行下去。caps提高后, 后面的线程会被挂起, caps只有保持30以下,才不会出现这种问题。

二. 主要措施

初步原因是因为数据库性能不高导致,所以针对这一问题,进行了数据库的优化。

2.1 更换数据库

FS默认的数据库是sqlite,sqlite并不适合高并发的情况下,所以将FS的数据库替换为Mysql。 替换之后,caps并没有提升。

2.2 数据库放内存

将数据库放到内存里,caps也没有提升

2.3 Mysql连接池

优化了FS连接Mysql方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值