SIP服务器性能测试

MYVOIPAPP Support Team

support@myvoipapp.com

索引

网络拓扑

下图描绘了测试中的基本网络拓扑结构:

网络拓扑结构图

我们采用两台PC进行测试:PC1和PC2。

PC1用于运行miniSIPServer,PC2用于运行SIP模拟器。两台PC都安装在同一个网络中。

硬件

PC1和PC2都是非常简单的普通PC,请参考下面的表格了解两台PC的具体硬件配置:

配置项 PC1 PC2
CPU AMD Sempron(tm) 2200+ (1.5G HZ) Intel Core Duo T2300 (1.66G HZ)
内存 768M 1G
操作系统 Microsoft Windows XP Home Edition SP3 Microsoft Windows XP Home Edition SP3
IP地址 192.168.1.100 192.168.1.103

软件

在PC1中, 我们安装了miniSIPServer V2.9 (build20100617),可以直接访问我们的网站下载。

在PC2中,我们运行了两个SIPPs进程。一个用于向miniSIPServer发起呼叫,另外一个用户从miniSIPServer接收呼叫。SIPP是个免费、开源的SIP测试工具。我们可以从它的网站下载。

测试场景

基本流程

下图描述了在我们测试场景中的基本元素:

elements

我们启动两个SIPP。SIPP1是主叫方,向miniSIPServer发起呼叫。miniSIPServer接收到呼叫后,将它们路由给最终的SIPP2。在这个测试中,我们仅仅测试SIP的性能,不包括媒体流。缺省情况下,MSS采用端对端的媒体流处理方式,也就是说MSS没有必要处理媒体流。

呼叫建立后,由SIPP1释放呼叫。下图描述了基本的呼叫信令流程:

SIP测试呼叫信令流程

SIPP脚本

在我们的测试中,我们将测试所有的miniSIPServer版本,包括20客户版,50客户版等等。因此对于SIPP1而言它需要采用不同的脚本发起呼叫。而对于SIPP2而言,它总是使用同一脚本接收呼叫。

启动SIPP2的脚本是: sipp 192.168.1.100:5060 -sn uas -p 5060

对于不同的MSS版本,采用以下不同的脚本启动SIPP1:

miniSIPServer版本 SIPP1脚本
20客户版 sipp 192.168.1.100:5060 -sn uac -p 5061 -r 3 -rp 1000 -m 30000
50客户版 sipp 192.168.1.100:5060 -sn uac -p 5061 -r 8 -rp 1000 -m 80000
100客户版 sipp 192.168.1.100:5060 -sn uac -p 5061 -r 15 -rp 1000 -m 200000
1000客户版 sipp 192.168.1.100:5060 -sn uac -p 5061 -r 85 -rp 1000 -m 500000

测试报告

基于上述测试场景和软硬件配置,我们获得了以下性能测试报告:

测试项 20客户版 50客户版 100客户版 1000客户版
内存占用 (MBytes) 35 57 60 200
CPU占用率 (%) 2% 2% 5% 90%
每秒呼叫次数 3 8 15 84
成功呼叫数 30000 80000 200000 500000
失败呼叫数 0 0 0 0

miniSIPServer配置

要使miniSIPServer成功接收(或者发送)来自(去)SIPP的呼叫,我们需要在miniSIPServer中进行以下配置: "SIP中继"配置 和"被叫号码分析"配置。

我们需要将两个SIPP的地址都加入为SIP中继,那样MSS才会将来自这些SIPP的SIP消息视为合法消息,否则会拒绝呼叫。

下图描述了SIP中继配置,请在MSS主窗体中点击菜单"数据 -> SIP中继"进行配置。

SIP服务器配置

在被叫号码分析表中,我们需要配置miniSIPServer将呼叫路由给SIPP2。SIPP1发起的呼叫中,被叫号码前缀I是"service",因此我们如下配置被叫号码分析项。请在主窗体中点击菜单"拨号规则 -> 分析被叫号码"进行配置。

被叫号码分析配置