吴伟贤のBlog

Feed Rss

freeswitch 优化db

07.21.2013, freeswitch, by .

来自群 freeswitch-cn

昆山+戴晓亮(272966) 14:13:51
今天没事做给大家讲一下fs的优化
fs运行的时候会生成一些db文件,是sqlite的,因为sqlite在高并发的状态下不行
我以前是直接把这些文件放在ramdisk下面的,这样的确能够提高稳定性的,
但是在超过200以上的并发,系统有时会出问题的
所以我就把这些文件放在mysql里面跑 毕竟mysql不会出现锁的状态的
http://wiki.freeswitch.org/wiki/Using_ODBC_in_the_core
按照上面做就可以了 ubuntu安装unixODBC的路径和说明里面的不一样的,自己修改一下
然后我就把core fifo internal 这些都跑在了mysql (我的fs自己优化了一下 所以就这3个需要数据库,默认会有很多需要的)
最后给大家一个提示,这些数据库是用来跑临时数据的,所以只要速度快不需要保存的
所以我就把本来是Innodb的表都改成mysql的内存表了,
结果就是速度奇快,超级稳定
一点小经验大家分享一下

——————————————————————————————————————————————————-

西安-大熊(816078) 14:46:11
其实sql并不是瓶颈,XML dialplan更加需要优化
——————————————————————————————————————————————————-
昆山+戴晓亮(272966) 14:48:55
这个没涉及到dialplan呢
fs在运行的时候会有大量的后台数据,就像session一样的东西,用于记录用户的通道等等信息
这些个数据需要优化的 官方的wiki都说这个要优化
——————————————————————————————————————————————————-
昆山+戴晓亮(272966) 14:50:04
然后才是dialplan的流程优化
——————————————————————————————————————————————————-
西安-大熊(816078) 14:51:26
放在内存盘上就可以了,我觉得用odbc其实也不好
——————————————————————————————————————————————————-
昆山+戴晓亮(272966) 14:55:52
sqlite有死锁的问题 你怎么解决
mysql如果不通了 那么其他业务也做不了了
所以mysql一定通着的
通着就要利用一下啊 mysql的内存表速度比memcache的速度还快
而且不会死锁 这个是最稳定的方法了
我已经实在想不出有更好的办法了
有好方法赐教
如果不用mysql当然是最好了

评论已关闭。