毅航互联vSBC-5000产品采用操作系统内核包转发技术,具有极高的性能。在低配服务器和常用网卡的情况下,比较容易达到5000并发。
为了支持更高的并发能力(vSBC-5000具有这个能力),本文档记录在采用较为高配CPU和intel高性能网卡情况下,10000并发的测试环境和情况。
本测试的难点是很难找到廉价的20000并发的SIP/VoIP模拟测试仪。商用测试仪太贵,不在考虑中。但毅航互联有iSX4000可编程交换机,单个2U机框就可以插入16块512线并发的大容量VoIP资源板,单机达到8192线并发。通过修改现有的测试程序,用三台iSX4000交换机,完成模拟测试仪的功能:10000线并发用于向vSBC发起呼叫,10000线并发接收来自vSBC转发的呼叫。
在由测试仪打满10000并发后,再用softphone做抽测,然后在softphone所在电脑抓包,分析抓包是否有丢失和延迟,用于判断性能和正确性。
10000并发的整体性能和准确性通过监视网络带宽来确认:按照简单的评估,整体带宽不得低于800Mbit/s。
测试整体结构
为了简化,测试部件分成三个部分:
vSBC-5000:包括运行vSBC-5000软件的载体服务器;
iSX4000可编程交换机:包括运行模拟程序的服务器;
softphone:包括运行softphone的电脑。
整体的测试结构简化如下图:
注1:由于iSX4000上的每块VoIP板可以独立配置IP地址,因此,可以用一台iSX4000跨接两个网段。
注2:由于iSX4000上的每块VoIP板可以独立编程,因此,可以用一台iSX4000即作为发起呼叫测试仪,也可以作为接收呼叫测试仪。这是iSX4000可编程交换机的灵活性和优点。
1、vSBC-5000
1.1、vSBC-5000软件
测试版本为:iGatewayPackageRE-1.0.2.release.i386.tar.gz
1.2、操作系统
操作系统如下:
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
1.3、硬件规格
硬件规格如下:
[root@localhost ~]# cat /proc/cpuinfo
processor : 39
vendor_id : GenuineIntel
cpu family : 6
model : 62
model name : Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
stepping : 4
microcode : 0x428
cpu MHz : 1228.088
cache size : 25600 KB
physical id : 1
siblings : 20
core id : 12
cpu cores : 10
apicid : 57
initial apicid : 57
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bogomips : 6004.91
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 32728900 10188984 6291368 51592 16248548 21949336
Swap: 8191996 0 8191996
[root@localhost ~]# lspci |grep Eth
01:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5720 Gigabit Ethernet PCIe
01:00.1 Ethernet controller: Broadcom Limited NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.0 Ethernet controller: Broadcom Limited NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.1 Ethernet controller: Broadcom Limited NetXtreme BCM5720 Gigabit Ethernet PCIe
04:00.0 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82580 Gigabit Network Connection (rev 01)
CPU: Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
内存:32G
网卡:Intel(R) Ethernet Server Adapter I340-T2
注1:vSBC-5000不需要40线程CPU,但一定要主频高的型号;
注2:常见的intel I350网卡具有同等的性能。
2、iSX4000可编程交换机
2.1、iSX4000通用业务平台
毅航互联在iSX4000硬件交换机的基础上还提供相应的软件包,以支持对交换机的操作/管理/维护,并提供API接口,用于开发各种业务程序。
2.2、模拟测试程序
模拟测试程序分为呼叫发起程序和呼叫接收程序。
呼叫发起程序:以100CAPS发起SIP呼叫,对端摘机后控制VoIP板收发RTP包。等待一段时间后挂机,通知VoIP板停止收发RTP包。
呼叫接收程序:收到SIP呼叫,立即摘机,然后控制VoIP板收发RTP包。收到挂机消息,通知VoIP板停止收发RTP包。
2.3、服务器
由于RTP包的收发是由硬件实现,测试程序非常轻载,对服务器要求不高。
3、softphone
softphone运行在windows桌面电脑上,为MicroSIP。
使用wireshark抓包。
二、测试
1、vSBC-5000的运行情况
测试几个小时后,从vSBC-5000服务器上监视的数据符合预期。
1.1、CPU/内存资源
内存占用没有无限增长,CPU占用率非常低。
1.2、网络流量监视
通过对内外网卡的流量监视,符合预期。
注1:收发带宽均超过800Mbit/s,是符合10000并发的流量预估的;
注2:收发带宽没有明显的差别,表示收到的包都转发出去了。
1.3、话务统计
用SBC web上的话务统计功能,确定呼叫的确达到10000并发。如下图:
2、Softphone抽测和抓包分析
2.1、抽测
在测试过程中,随机用softphone手工拨打电话抽测。没有发现呼叫不通,语音无声、断续、杂音等现象。
2.2、抓包分析
在softphone电脑上抓包主要分析jitter情况,是否通过vSBC后,会带来丢包和jitter变大等情况。
从上图没有明显的丢包或者是jitter变大的情况,很正常。
网络带宽也正常,没有随着时间的变化而波动,如下图:
三、测试结论
根据上述的分析和测试结果,毅航互联vSBC-5000可以支持10000并发。