Astercon2如何比Trixbox提高并发能力(对话)

这是一个对话记录,记录的是一个性能修改地方,实际修改了好几个地方。

Astercon2针对Trixbox的低性能大概设计了几个地方:

1、除了写CDR以外,不对mysql进行其他操作。

2、不对外直接开放AMI端口,而是使用Astercon专门的一个Proxy做转存,AMI太脆弱了。

3、对拨出检测的地方,提供了高性能方案(如下所对话)。

4、减少拨号的extension流程。

5、减少所使用的技术。

 

(2007-12-18 16:10:17)   牛仔很忙(10053660)
astercon2系统 在大并发处理了数据库的缓冲处理。
比如在 一秒有 60 条呼入。这样就会有 60 个 perl连接
到 mysql. 
hoowa(2205096) 17:01:31
刚看到.
hoowa(2205096) 17:01:34
我来解答一下。
牛仔很忙(10053660) 17:01:41

程羡(122157474) 17:01:50
其实还是数据池的好
hoowa(2205096) 17:01:48
根据我的所学有限
hoowa(2205096) 17:01:58
mysql 在astercon2的设计上,只使用cdr库.
hoowa(2205096) 17:02:03
cdr库主要是insert操作.
hoowa(2205096) 17:02:22
这对一个不是深程优化的表来说性能很好
程羡(122157474) 17:02:46
涉及到的内外存的交换
 
牛仔很忙(10053660) 17:02:48
你判断是否有余和路由不是从数据库中去的?
hoowa(2205096) 17:02:52
好我们继续将。2
牛仔很忙(10053660) 17:03:01
费率和余额
hoowa(2205096) 17:03:04
其他部分,最受影响的就是拨号前的检测。
hoowa(2205096) 17:03:18
每次启动perl的时候。perl要建立mysql连接,并且查询多次.
hoowa(2205096) 17:03:52
上周 我的测试情况是.当并发达到80以上,出现平径.这性能差不多比trixbox好那么一点点.
牛仔很忙(10053660) 17:04:10

hoowa(2205096) 17:04:14
php能有 persisent mysql连接技术。
牛仔很忙(10053660) 17:04:29
所以必须解决一个永久连接的问题。,
Seven(304265256) 17:04:29
直接连是最好的。
hoowa(2205096) 17:04:25
原因是php以modules 注册到apache里.
hoowa(2205096) 17:04:40
那么perl也可以.
程羡(122157474) 17:04:45
我在c里直接用mysql的api
 
hoowa(2205096) 17:04:43
不过这不是最好的。
hoowa(2205096) 17:04:58
实际上。如果要用perl最好的方案是fastagi
hoowa(2205096) 17:05:11
perl有一个叫net::server的库系统。
牛仔很忙(10053660) 17:05:19
这样不管多少次查询影响不是很大,如果在加存储过程
就效率更好了。
hoowa(2205096) 17:05:24
他可以让perl轻松产生一个prefork的 tcp or udp server
牛仔很忙(10053660) 17:05:38
这个好
hoowa(2205096) 17:05:43
当perl 启动的时候,预创建数据库连接。
牛仔很忙(10053660) 17:05:57

hoowa(2205096) 17:05:59
而asterisk请求的时候,直接使用这个连接。
牛仔很忙(10053660) 17:06:08

hoowa(2205096) 17:06:12
不过我的合作伙伴GP.Coder用的技术比这个还要好一些。
hoowa(2205096) 17:06:25
他用的数据池
hoowa(2205096) 17:06:32
mysql pool
牛仔很忙(10053660) 17:06:42
最好是数据池。
hoowa(2205096) 17:06:48
他启动的时候,每次用户请求生成一个连接。
hoowa(2205096) 17:06:51
一直到10个.
hoowa(2205096) 17:06:54
就保持住.
hoowa(2205096) 17:07:06
第11个用户,会使用第一个连接.
hoowa(2205096) 17:07:23
10个连接池,asterisk是很难跑满的而且这个是变量可以放大
程羡(122157474) 17:07:31
然后 成批地写到库里
hoowa(2205096) 17:07:36
不是。其实写不占资源。
hoowa(2205096) 17:07:44
最主要占资源的是连接过程。
hoowa(2205096) 17:07:48
其次是select
牛仔很忙(10053660) 17:07:59

hoowa(2205096) 17:08:07
所以.astercon2这部分,已经处理了。
牛仔很忙(10053660) 17:08:22
发布了吗?
hoowa(2205096) 17:08:20
没有.
hoowa(2205096) 17:08:25
还在测试中
牛仔很忙(10053660) 17:08:54
嗯。这个处理了基本上astercon2 就能用了。
牛仔很忙(10053660) 17:08:58
呵呵
hoowa(2205096) 17:08:57
明年我们可能也会考虑做fastagi的.
hoowa(2205096) 17:09:10
毕竟perl的脚本,要更灵活修改.
hoowa(2205096) 17:09:23
象voice应用的这种系统。容易修改是很重要的
牛仔很忙(10053660) 17:09:31
最好是这个。在注意下安全问题。 就很棒了
hoowa(2205096) 17:09:36
fastagi可以做分布式
牛仔很忙(10053660) 17:09:50

hoowa(2205096) 17:09:46
可以把LCR和数据库放一台机器.
hoowa(2205096) 17:09:53
而astercon2放另一台机器
牛仔很忙(10053660) 17:10:19
是啊,这样就不用在为级联犯愁了。
牛仔很忙(10053660) 17:10:54
fastagi 这个perl 好像有天生的优势啊,
hoowa(2205096) 17:11:11
我之前看了一下asterisk::fastagi库.其实他就是使用的net::server
hoowa(2205096) 17:11:22
完全可以抛弃掉他这个破库.他这个库还有警告.
hoowa(2205096) 17:11:34
经常警告("使用未声明变量")
hoowa(2205096) 17:11:42
asterisk::系列的库,都他妈有这毛病
牛仔很忙(10053660) 17:11:49
他是 tcp 通讯。要注意网络重新连接的问题
hoowa(2205096) 17:11:58
要设置在lan
hoowa(2205096) 17:12:03
不然,用这个技术就没用了。
牛仔很忙(10053660) 17:13:19
最好改成 UDP 的。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值