一、简介
在国产替代和信创的大趋势下,企业服务的关键软件适配国产CPU和国产操作系统成为必然。SBC作为企业通信的关键部件,一定要能够适配国产系统,保证具有相同的功能、性能和兼容性。
毅航互联SoftSBC-1000作为主流的企业通信SBC之一,已经完成国产系统的移植和适配,并由本文档做相应的测试记录。作为选型和上线的参考。
目前,国产CPU有较多的选择(如:华为鲲鹏、龙芯等),考虑到在通讯领域和云平台的因素,选择“华为鲲鹏920” ARM64 CPU作为适配的CPU平台。操作系统选择主流的“银河麒麟高级服务器操作系统V10”ARM版本。
测试在物理服务器上进行(宝德自强PT620K鲲鹏台式机),以保证原生适配和性能。
为了便于评估云平台上的性能,本测试是在上述服务器上的虚拟机中进行的。
由于毅航互联SoftSBC-1000的功能非常多,本测试主要完成最简单情况下的通话测试,包括:不转码透传通话、转码通话和压力测试。
经过上述测试验证,毅航互联SoftSBC-1000产品适配“华为鲲鹏920”CPU和“银河麒麟高级服务器操作系统V10”ARM版本。
1、毅航互联SoftSBC-1000
毅航互联纯软SBC产品与基于硬件的SBC产品共享相同平台、软件和架构。纯软SBC产品将媒体接入、编解码处理和录音等由硬件转换为纯软件实现,利用通用CPU的处理能力提供与硬件SBC相同的功能。
毅航互联纯软SBC跑在通用服务器上,可本地部署,可云化部署,不需专用的硬件设备。
毅航互联纯软SBC面向运营商、互联网企业和呼叫中心,为客户的SIP网络提供强大的安全、编解码转换、内外网穿透、注册代理、路由、信令流控/转换、QoS/ACL等功能。
毅航互联纯软SBC采用Soft iSX4000 HMP模块替代硬件。HMP模块在编解码层面针对主机CPU做了大量的优化,可以提供更高的性能。纯软SBC秉承毅航互联硬件SBC的分布式架构和模块化部署,构成分布式计算网络,以极低的功耗实现极高的性能。
毅航互联纯软SBC设备最大支持1000并发会话和1000路语音媒体转码。除传统电信编解码(G.711/G.729/G.723),还支持3G/4G编解码(AMR-NB/AMR-WB),以及互联网编解码(OPUS/iLBC)。另外,毅航互联SBC还支持高清语音(G.722编解码)。
毅航互联纯软SBC支持双机热备,主备切换时信令和语音通话保持不中断,用户无感知。
注意:媒体转码能力和编解码类型、CPU型号和数量有关系。
2、宝德自强PT620K鲲鹏台式机
宝德自强PT620K鲲鹏台式机基于8核鲲鹏920高性能通用微处理器,主频 2.6GHz,16G DDR4内存,2T硬盘。
具体参数见网站:
http://www.powerleader.com.cn/product_100/1105.html
3、银河麒麟高级服务器操作系统V10
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主机系统可靠性、安全性、性能、扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全、云原生支持、国产平台深入优化、高性能、易管理的新一代自主服务器操作系统;同源支持飞腾、龙芯、申威、兆芯、海光、鲲鹏等自主CPU及x86平台;可支撑构建大型数据中心服务器高可用集群、负载均衡集群、分布式集群文件系统、虚拟化应用和容器云平台等,可部署在物理服务器和虚拟化环境、私有云、公有云和混合云环境;应用于政府、国防、金融、教育、财税、公安、审计、交通、医疗、制造等领域。
具体性能参数见网站:
https://www.kylinos.cn/scheme/server/1.html
二、测试环境
1、测试整体结构
为了简化,测试部件分成三个部分:
SoftSBC-1000:包括运行SoftSBC-1000软件的载体服务器,服务器CPU配置为华为鲲鹏920 ARM64;
Eyebeam 1.5:包括运行eyebeam的电脑,模拟电话;
亿联SIP硬话机:模拟电话;
sipp:压力测试时,模拟高并发。
整体的测试结构简化如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022439464.jpg)
2、SoftSBC-1000SoftSBC-1000软件
测试版本为:iGatewayPackageOpeneular-1.0.0.release.aarch64.tar.gz
操作系统
操作系统如下:
[root@localhost home]# uname -a
Linux localhost.localdomain 4.19.90-23.8.v2101.ky10.aarch64 #1 SMP Mon May 17 17:07:38 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
[root@localhost home]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"
[root@localhost home]# cat /etc/system-release
Kylin Linux Advanced Server release V10 (Tercel)
硬件规格
由于使用虚拟机进行测试,分配的CPU和内存如下图:
processor: 0
model name: ARMv8 CPU
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 1
model name: ARMv8 CPU
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 2
model name: ARMv8 CPU
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 3
model name: ARMv8 CPU
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 4
model name: ARMv8 CPU
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
[root@localhost home]# free
total used free shared buff/cache available
Mem: 3846976 2334080 573824 15296 939072 957504
Swap: 2297792 1024000 1273792
3、宿主机的配置
CPU为:
processor: 0
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 1
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 2
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 3
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 4
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 5
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 6
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
processor: 7
model name: HUAWEI,Kunpeng 920
BogoMIPS: 200.00
Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer: 0x48
CPU architecture: 8
CPU variant: 0x1
CPU part: 0xd01
CPU revision: 0
4、Eyebeam 1.5
使用测试版本。
由于eyebeam在counterpath已经下线和不提供下载,测试版本是从其他一些网站上下载的测试版本,测试后已经不再使用。
具体见:https://www.counterpath.com/
5、硬SIP话机
采用亿联T21P。
三、测试配置
本节主要列出与呼叫测试相关的配置,其他常规的配置见使用手册。
1、SoftSBC-1000
配置SIP协议栈
SIP栈采用缺省配置,IP地址为10.10.0.52,配置完成后,直接激活。
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022439983.jpg)
配置SIP注册中继组
为测试用的SIP分机配置账号,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022439185.jpg)
从图上已经可以看到两个分机都已经注册上了SBC。
配置sipp呼叫中继组
sipp呼入和应答在不同的中继组中,分别用sipp_c和sipp_a表示,配置如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022439640.jpg)
配置分机互打路由
为了保证两个中继组间的分机互打,需要配置路由,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022438618.jpg)
配置sipp测试路由
从sipp_c到sipp_a的路由,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022339653.jpg)
2、Eyebeam 1.5
Eyebeam的配置较为简单,见相关的手册说明。
3、亿联T21P配置
亿联话机的配置也较为简单,见相关的手册说明。
4、sipp脚本
发起呼叫采用如下的脚本:
如果使用G.711时,脚本如下:
./sipp -i 10.10.99.60 -p 6060 -sf ./sipp_uac_pcap_g711a.xml 10.10.0.52:5060 -r 10 -rp 1000 -aa
sipp_uac_pcap_g711a.xml:本脚本会使能发G.711 alaw的RTP包。
如果使用G.729时,脚本如下:
./sipp -i 10.10.99.60 -p 6060 -sf ./ sipp_uac_pcap_g729.xml 10.10.0.52:5060 -r 10 -rp 1000 -aa
sipp_uac_pcap_g729.xml:本脚本会使能发G.729的RTP包。
应答呼叫的脚本:
./sipp -sf sipp_uas_basic.xml -i 10.10.99.30 -rtp_echo -mp 6000
将收到的RTP包全部echo回去。
四、测试
1、通话测试
两个SIP电话间通过不同编码的互打,通话正常。
alaw呼叫
在中继组配置中,将alaw作为第一优先级,此时发起alaw通话,配置如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824023321294.jpg)
通话时,语音正常,通过抓包,可以确认此时为alaw呼叫。
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022339137.jpg)
G.729呼叫
在亿联话机的配置界面,将G.729编码调整到最高优先级,将进行G.729呼叫,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022338825.jpg)
测试时语音正常。
通过抓包分析,一端是G.729,一端是G.711,由SBC执行转码。如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022338931.jpg)
2、压力测试
压力测试时,由sipp打满,然后通过SIP电话抽听语音是否正常。
alaw呼叫
由于alaw的语音文件长度大概是25s,将呼叫频度改为16CAPS,保证稳定的呼叫是400并发。在此条件下,用SIP电话抽听语音正常。
./sipp -i 10.10.99.60 -p 6060 -sf ./sipp_uac_pcap_g711a.xml 10.10.0.52:5060 -r 16 -rp 1000 -aa
从web查看到的呼叫统计如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824023903856.jpg)
单个中继组的并发是400CAPS,和计算相符。
带宽计算:
由于两个sipp均在同一台服务器的两个虚拟机中,整体并发要按800通道算,共计65M多。下图的带宽和计算相符,并且入和出是相同的,表示正常:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022320748.jpg)
从下图可以看到CPU和内存均正常。
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022321534.jpg)
Eyebeam客户端的抓包分析,没有丢包和延迟,语音正常,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022320341.jpg)
G.729呼叫
由于G.729对CPU的消耗较高,同等的配置情况下,已经达不到原有的并发。因此,将测试时,系统并发修改到150并发。
发起呼叫的sipp的脚本如下:
./sipp -i 10.10.99.60 -p 6060 -sf ./sipp_uac_pcap_g729.xml 10.10.0.52:5060 -r 6 -rp 1000 -aa
此时,CAPS为6,在语音25s长度的情况下,并发为150。
在稳定时,并发如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022320159.jpg)
入和出的带宽基本上相同,可以认为是正常的,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824024121695.jpg)
在此负荷的情况下,CPU已经非常高,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022320350.jpg)
Eyebeam客户端的抓包分析,没有丢包和延迟,语音正常,如下图:
![](http://www.ctiforum.com/uploadfile/2021/0824/20210824022450344.jpg)
对比G.711的压力测试,最大延迟和最大抖动都有所上升。
五、测试结论
毅航互联 SoftSBC-1000很好地适配了“华为鲲鹏920”CPU和“银河麒麟高级服务器操作系统V10”ARM版本,达到X86版本的同等功能和类似的性能。