我正在运行一个使用Asterisk服务器的mVoIP应用程序。目前,我有100多万注册用户。SIP注册在第一时间是完全好的,但最近变得越来越慢。在Asterisk Server上注册需要3到5秒。
Asterisk服务器将用户信息保存在服务器内存中,我在MySQL数据库中进行了索引。以下是一个示例SIP用户信息。你能理解为什么SIP注册很慢吗?非常感谢。
* Name : 1000
Description :
Realtime peer: Yes, cached
Secret : <Set>
MD5Secret : <Not set>
Remote Secret: <Not set>
Context : from-sip
Record On feature : automon
Record Off feature : automon
Subscr.Cont. : <Not set>
Language :
Tonezone : <Not set>
AMA flags : Unknown
Transfer mode: open
CallingPres : Presentation Allowed, Not Screened
Callgroup :
Pickupgroup :
Named Callgr :
Nam. Pickupgr:
MOH Suggest :
Mailbox :
VM Extension : asterisk
LastMsgsSent : 0/0
Call limit : 0
Max forwards : 0
Dynamic : Yes
Callerid : "" <>
MaxCallBR : 384 kbps
Expire : 3212
Insecure : no
Force rport : Yes
Symmetric RTP: No
ACL : No
DirectMedACL : No
T.38 support : No
T.38 EC mode : Unknown
T.38 MaxDtgrm: -1
DirectMedia : No
PromiscRedir : No
User=Phone : No
Video Support: No
Text Support : No
Ign SDP ver : No
Trust RPID : No
Send RPID : No
TrustIDOutbnd: Legacy
Subscriptions: Yes
Overlap dial : Yes
DTMFmode : rfc2833
Timer T1 : 500
Timer B : 32000
ToHost :
Addr->IP : 118.131.206.XXX:58390
Defaddr->IP : (null)
Prim.Transp. : UDP
Allowed.Trsp : UDP
Def. Username: 1000
SIP Options : (none)
Codecs : (ulaw|alaw|opus)
Codec Order : (opus:20,ulaw:20,alaw:20)
Auto-Framing : No
Status : Unmonitored
Useragent : LinphoneAndroid/2.3.2 (belle-sip/1.3.2)
Reg. Contact : sip:1000@XXX.131.206.238:58390
Qualify Freq : 60000 ms
Keepalive : 0 ms
Sess-Timers : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess : 90 secs
RTP Engine : asterisk
Parkinglot :
Use Reason : No
Encryption : No
Asterisk是为小型办公室PBX而设计的。
它从未被声明为100万注册。
星号本身没有什么可更改的,但您可以查看其他旨在解决您的大小/问题的项目。
它们是openser家族(opensips.org/kamailio.org)、OpenSBC等
opensips或kamailio可能可以处理一百万用户(每秒数万个请求)而不会出现任何问题。
此外,还需要考虑故障切换和灾难恢复、负载平衡等。
Asterisk将注册存储在astdb中。迁移的新版本使用sqlite而不是berkeley-db来实现这一点,这可能会提高性能,也可能不会提高性能。https://wiki.asterisk.org/wiki/display/AST/SQLite3+astdb+后端
此外,如果您选择使用实时sip(动态版本),则可以使用任何数据库后端来存储注册信息。但这个选项很可能与我不熟悉的mVoIP不兼容。
我完全同意:
Asterisk被设计成小型办公室PBX。
您的服务器规格是什么?可能是服务器规格不够。