一、簡介
在國產替代和信創(chuàng)的大趨勢下,企業(yè)服務的關鍵軟件適配國產CPU和國產操作系統(tǒng)成為必然。SBC作為企業(yè)通信的關鍵部件,一定要能夠適配國產系統(tǒng),保證具有相同的功能、性能和兼容性。
毅航互聯SoftSBC-1000作為主流的企業(yè)通信SBC之一,已經完成國產系統(tǒng)的移植和適配,并由本文檔做相應的測試記錄。作為選型和上線的參考。
目前,國產CPU有較多的選擇(如:華為鯤鵬、龍芯等),考慮到在通訊領域和云平臺的因素,選擇“華為鯤鵬920” ARM64 CPU作為適配的CPU平臺。操作系統(tǒng)選擇主流的“銀河麒麟高級服務器操作系統(tǒng)V10”ARM版本。
測試在物理服務器上進行(寶德自強PT620K鯤鵬臺式機),以保證原生適配和性能。
為了便于評估云平臺上的性能,本測試是在上述服務器上的虛擬機中進行的。
由于毅航互聯SoftSBC-1000的功能非常多,本測試主要完成最簡單情況下的通話測試,包括:不轉碼透傳通話、轉碼通話和壓力測試。
經過上述測試驗證,毅航互聯SoftSBC-1000產品適配“華為鯤鵬920”CPU和“銀河麒麟高級服務器操作系統(tǒng)V10”ARM版本。
1、毅航互聯SoftSBC-1000
毅航互聯純軟SBC產品與基于硬件的SBC產品共享相同平臺、軟件和架構。純軟SBC產品將媒體接入、編解碼處理和錄音等由硬件轉換為純軟件實現,利用通用CPU的處理能力提供與硬件SBC相同的功能。
毅航互聯純軟SBC跑在通用服務器上,可本地部署,可云化部署,不需專用的硬件設備。
毅航互聯純軟SBC面向運營商、互聯網企業(yè)和呼叫中心,為客戶的SIP網絡提供強大的安全、編解碼轉換、內外網穿透、注冊代理、路由、信令流控/轉換、QoS/ACL等功能。
毅航互聯純軟SBC采用Soft iSX4000 HMP模塊替代硬件。HMP模塊在編解碼層面針對主機CPU做了大量的優(yōu)化,可以提供更高的性能。純軟SBC秉承毅航互聯硬件SBC的分布式架構和模塊化部署,構成分布式計算網絡,以極低的功耗實現極高的性能。
毅航互聯純軟SBC設備最大支持1000并發(fā)會話和1000路語音媒體轉碼。除傳統(tǒng)電信編解碼(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、銀河麒麟高級服務器操作系統(tǒng)V10
銀河麒麟高級服務器操作系統(tǒng)V10是針對企業(yè)級關鍵業(yè)務,適應虛擬化、云計算、大數據、工業(yè)互聯網時代對主機系統(tǒng)可靠性、安全性、性能、擴展性和實時性的需求,依據CMMI 5級標準研制的提供內生安全、云原生支持、國產平臺深入優(yōu)化、高性能、易管理的新一代自主服務器操作系統(tǒng);同源支持飛騰、龍芯、申威、兆芯、海光、鯤鵬等自主CPU及x86平臺;可支撐構建大型數據中心服務器高可用集群、負載均衡集群、分布式集群文件系統(tǒng)、虛擬化應用和容器云平臺等,可部署在物理服務器和虛擬化環(huán)境、私有云、公有云和混合云環(huán)境;應用于政府、國防、金融、教育、財稅、公安、審計、交通、醫(yī)療、制造等領域。
具體性能參數見網站:
https://www.kylinos.cn/scheme/server/1.html
二、測試環(huán)境
1、測試整體結構
為了簡化,測試部件分成三個部分:
SoftSBC-1000:包括運行SoftSBC-1000軟件的載體服務器,服務器CPU配置為華為鯤鵬920 ARM64;
Eyebeam 1.5:包括運行eyebeam的電腦,模擬電話;
億聯SIP硬話機:模擬電話;
sipp:壓力測試時,模擬高并發(fā)。
整體的測試結構簡化如下圖:
2、SoftSBC-1000SoftSBC-1000軟件
測試版本為:iGatewayPackageOpeneular-1.0.0.release.aarch64.tar.gz
操作系統(tǒng)
操作系統(tǒng)如下:
[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)
硬件規(guī)格
由于使用虛擬機進行測試,分配的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。
三、測試配置
本節(jié)主要列出與呼叫測試相關的配置,其他常規(guī)的配置見使用手冊。
1、SoftSBC-1000
配置SIP協議棧
SIP棧采用缺省配置,IP地址為10.10.0.52,配置完成后,直接激活。
配置SIP注冊中繼組
為測試用的SIP分機配置賬號,如下圖:
從圖上已經可以看到兩個分機都已經注冊上了SBC。
配置sipp呼叫中繼組
sipp呼入和應答在不同的中繼組中,分別用sipp_c和sipp_a表示,配置如下圖:
配置分機互打路由
為了保證兩個中繼組間的分機互打,需要配置路由,如下圖:
配置sipp測試路由
從sipp_c到sipp_a的路由,如下圖:
2、Eyebeam 1.5
Eyebeam的配置較為簡單,見相關的手冊說明。
3、億聯T21P配置
億聯話機的配置也較為簡單,見相關的手冊說明。
4、sipp腳本
發(fā)起呼叫采用如下的腳本:
如果使用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:本腳本會使能發(fā)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:本腳本會使能發(fā)G.729的RTP包。
應答呼叫的腳本:
./sipp -sf sipp_uas_basic.xml -i 10.10.99.30 -rtp_echo -mp 6000
將收到的RTP包全部echo回去。
四、測試
1、通話測試
兩個SIP電話間通過不同編碼的互打,通話正常。
alaw呼叫
在中繼組配置中,將alaw作為第一優(yōu)先級,此時發(fā)起alaw通話,配置如下圖:
通話時,語音正常,通過抓包,可以確認此時為alaw呼叫。
G.729呼叫
在億聯話機的配置界面,將G.729編碼調整到最高優(yōu)先級,將進行G.729呼叫,如下圖:
測試時語音正常。
通過抓包分析,一端是G.729,一端是G.711,由SBC執(zhí)行轉碼。如下圖:
2、壓力測試
壓力測試時,由sipp打滿,然后通過SIP電話抽聽語音是否正常。
alaw呼叫
由于alaw的語音文件長度大概是25s,將呼叫頻度改為16CAPS,保證穩(wěn)定的呼叫是400并發(fā)。在此條件下,用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查看到的呼叫統(tǒng)計如下圖:
單個中繼組的并發(fā)是400CAPS,和計算相符。
帶寬計算:
由于兩個sipp均在同一臺服務器的兩個虛擬機中,整體并發(fā)要按800通道算,共計65M多。下圖的帶寬和計算相符,并且入和出是相同的,表示正常:
從下圖可以看到CPU和內存均正常。
Eyebeam客戶端的抓包分析,沒有丟包和延遲,語音正常,如下圖:
G.729呼叫
由于G.729對CPU的消耗較高,同等的配置情況下,已經達不到原有的并發(fā)。因此,將測試時,系統(tǒng)并發(fā)修改到150并發(fā)。
發(fā)起呼叫的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長度的情況下,并發(fā)為150。
在穩(wěn)定時,并發(fā)如下圖:
入和出的帶寬基本上相同,可以認為是正常的,如下圖:
在此負荷的情況下,CPU已經非常高,如下圖:
Eyebeam客戶端的抓包分析,沒有丟包和延遲,語音正常,如下圖:
對比G.711的壓力測試,最大延遲和最大抖動都有所上升。
五、測試結論
毅航互聯 SoftSBC-1000很好地適配了“華為鯤鵬920”CPU和“銀河麒麟高級服務器操作系統(tǒng)V10”ARM版本,達到X86版本的同等功能和類似的性能。