Relatório de performance do Disc-OS 2.0 e Ubuntu server 8.10
Sumário 1.Resumo...3 2.Objetivo...3 3.Introdução...3 4. Testes...4 4.1) Descrição do cenário de teste:...4 5. Resultados...5 5.1) Teste A: Uma placa PXE no servidor...5 5.1.1) Servidor Disc-OS...5 5.1.2) Servidor CITS...6 5.2) Teste B: Duas placas PXE no mesmo servidor...7 5.2.1) Servidor Disc-OS...7 5.2.2) Servidor CITS...7 6) Conclusão:...7
1. Resumo O presente relatório apresenta uma pré-avaliação dos sistemas Disc-OS 2.0 e Ubuntu server 8.10, como gateway de voz e um resultado com a performance de cada distribuição 2. Objetivo Ter uma análise inicial de um cenário com duas placas de 4E1 em um servidor IPBX, verificando as características de cada distribuição e o que levam a ter diferenças de performance. 3. Introdução Os testes foram realizados em um cenário pré-estabelecido ( ver figura.1), com os mesmos equipamentos de hardware e igualando as configurações de software entre as distribuições afim de facilitar a verificação das diferenças de performance entre as distribuições. No teste A foi utilizado no servidor IPBX uma placa de 4 troncos E1 e no teste B foram utilizadas duas placas de 4 troncos E1 no servidor IPBX, ou seja, 8 troncos E1. Nos testes ocupamos todos canais E1 e canais SIP, sendo que para cada canal E1 teremos 1 ramal SIP atendendo e mais 2 ramais conversando entre si (1 canal E1 x 3 ramais SIP). No teste A foi gerado 120E1 x 360 SIP com o codec G711 e G729 e no teste B o dobro, 240E1 x 720 SIP, utilizando os mesmos codecs. O critério utilizado para avaliar a performance das distribuições, foi a qualidade de áudio em carga máxima de chamadas. Porém indicamos realizar mais testes para verificar o comportamento do Asterisk, kernel e serviços afim de levantar os possíveis problemas e limitações. Nas duas distribuições, tanto no Disc-OS 2.0(kernel 2.6.18) quanto no Ubuntu server(kernel- 2.6.27) sofreram pouca carga de processamento quando submetidos ao teste A (120E1x360SIP). No teste B (240E1 x 720SIP), houve uma melhor performance na versão do Ubuntu. O kernel Ubuntu oferece uma boa qualidade áudio nas chamadas mesmo tendo um nível de consumo processamento de 80% médio, sendo que nos primeiros testes com kernel 2.6.9 e utilizando 2 placas no mesmo servidor era impossível estabelecer todas as chamadas E1. O problema está no tratamento da requisições dos componentes de hardware, sendo que já sabemos que a placa de rede é o componente crítico em alto fluxo de chamadas mas no kernel do Ubuntu Server oferece um melhora no suporte ao tratamento das requisições assim garantido que todas as chamadas fossem estabelecidas. Os dois sistemas separam as IRQ's entre os núcleos do processador. Só que o kernel 2.6.27 controla as requisições de cada IRQ, ou seja, ele consegue dividir para dois ou mais núcleos as requisições geradas, por exemplo no caso da PXE o kernel pode chegar a dividir 500 requisições entre dois núcleos se houver necessidade, melhorando a performance do processador. No caso da placa de rede aparentemente o kernel usa a função function c interrupts para distribuir as requisições para os quatro núcleos. Isto pode ser uma das explicações que garanta a qualidade de áudio em níveis tão baixos de IDLE, mas tendo que verificar também qual a influência dos drivers e que tipo de melhora o kernel oferece na questão de suporte a rede. Sabe-se que no kernel do Ubuntu server tem um maior suporte para processadores multinúcleos, está diferença está na quantidade de instruções o kernel mais novo possui, assim obtendo o máximo de performance que o processadores Quad Core podem oferecer. Abaixo está postado o resumo das diferenças e características de cada sistema:
Software Distribuição Linux Kernel Servidor cits Ubuntu server 8.10 Kernel 2.6.27-7 x32 bits Disc-OS 2.0 CentOS 5.2 Kernel 2.6.18-92.1.22 SNMP Instalado e Habilitado Não instalado Debug/Log libpri Não Habilitado Habilitado Portas RTP Sem limite Limite acima de 400 portas Logs/warning/debug Todos habilitados Quase todos habilitados Modulos do asterisk carregados Versão libpri Todos 1.4.9 Quase todos + Speex e ILBC 1.4.9 Versão Asterisk 1.4.23 1.4.23 Versão DAHDI 2.1.0.3 2.1.0.3 Versão DAHDI-Tool 2.1.0.2 2.1.0.2 Hardware Processador core 2 quad q6600(2.4ghz) core 2 quad q6600(2.4ghz) Memoria 2 GB/667MHZ 2 GB/667MHZ HD 320GB 250GB Placa Mãe GigaByte Gigabyte Chipset Intel G31 Intel 946 Placa de rede Realtek Realtek TABELA 1 4. Testes O teste A é realizado no seguinte cenário: 4.1) Descrição do cenário de teste: Figura 1 O cenário é constituído pela máquina 1 que gera ligações SIP com áudio, por 2 servidores E1, por um servidor IP PBX (servidor em teste) e pela máquina 2 para atender as ligações SIP e enviar pacotes de áudio. A máquina 1 inicializa a comunicação SIP com os servidores E1 auxiliares, eles fazem conversão de SIP/TDM e encaminham as chamadas pelos links E1 para o servidor IP PBX. O servidor PBX IP faz o roteamento das chamadas e repassa pela rede até a máquina 2 que atende as chamadas. Após realizada a troca de sinalização SIP, as maquinas (1 e 2) iniciarão o tráfego de pacotes de áudio com o codec G711 e G729 passando pelo servidor em teste.
Os arquivos de áudio foram gerados para simularem um cenário real, ou seja, contém um arquivo com o áudio sem eco que é transmitido pela maquina 2 e um arquivo com áudio com eco que é transmitido pela maquina 1. O teste B é realizado da mesma forma que descrito no teste A, porém é instalado 2 placas de 4 E1 no servidor IP PBX e tabém é necessário ter duas maquinas para gerar sipp, 2 maquinas para atender o sipp e um servidor E1 a mais, conforme a figura 2. Figura 2 5. Resultados 5.1) Teste A: Uma placa PXE no servidor. 5.1.1) SERVIDOR DISC-OS / CentOS 5 / Disc-OS 2.0 / DAHDI 2.1: 120 canais E1 atendida por 120 G711 + 120 G711+ 60 G729 atendida 60 G711/Sem CE 8,86 6,28 1,39 79,76 28309,76 0 4,07 4,47 0 90,24 1029,88 1 2,44 2,85 0 94,31 1024,8 PXE 2 6,92 5,24 0 87,21 0 3 22,18 12,55 5,44 47,07 26255,49 Placa de Rede 120 canais E1 atendida por 120 G711 + 240 G711/ Sem CE 3,47 6,67 1,45 85,2 27958,74 0 1,63 3,25 0 94,31 1025,41 1 1,42 3,04 0 95,13 1021,95 PXE 2 2,97 4,66 0 91,74 0 3 7,84 16,1 5,72 59,32 25910,77 Placa de Rede 120 canais E1 atendida por 120 G711 + 120 G729 atendida por 120 G711/Sem CE 14,81 6,53 1,29 73,92 24658,82 0 8,11 5,48 0 84,99 1022,31 1 5,28 4,07 0 90,04 1010,75 PXE 2 13,75 6,88 0 78,54 0 3 32,64 9,77 5,2 41,37 22625,76 Placa de Rede
TABELA 2 5.1.2) SERVIDOR CITS / Ubuntu Server 8.10 / DAHDI 2.1: 120 canais E1 atendida por 120 G711 + 120 G711+ 60 G729 atendida 60 G711/Sem CE 8,05 8,62 0.38 80.88 28699.40 0 14.34 9,56 1,53 69.02 11632.00 1 9,33 13.81 0.00 75.00 2,6 2 7,31 8,41 0.00 83.36 0.00 3 1,16 2,51 0.00 96.32 997.40 TABELA 3 5.2) Teste B: Duas placas PXE no mesmo servidor. 5.2.1) SERVIDOR DISC-OS / CentOS 5 / Disc-OS 2.0 / DAHDI 2.1: 240E1 atendida 240G711 + 150SIP/G729 atendida 150SIP/G711 13,62 11,85 2,49 64,66 38824,7 0 9,11 13,36 0 75,1 1028,34 1 4,85 6,67 0 84,65 2025,51 PXE 1 e 2 2 16,06 14,13 0 67,88 0 3 25,16 13,33 10,32 29,46 35770,45 Placa de rede TABELA 4 5.2.2) SERVIDOR CITS / Ubuntu server / DAHDI-2.1: 240E1 atendida 240SIP/G711 + 250SIP/G729 atendida 250 SIP/G711 %user 44.35 %sys 20.23 %irq 0.57 %idle 25.40 intr/s 59759.60 0 40.27 15.56 2,33 16.54 5560.60 1 38.98 17.96 0.00 37.55 1000.00 2 35.03 27.90 0.00 29.74 0.20 3 59.57 19.80 0.00 19.64 0.80 240E1 atendida 240SIP/G711 + 100SIP/G729 atendida 100SIP/G711 %user 15.73 %sys 14.86 %irq 0.62 %idle 59.86 intr/s 45498.00 0 20 13.59 1,81 43.12 6741.40 1 10 1,89 0.00 87.57 1000.00 2 6,3 3,94 0.00 84.65 0.40 3 19.48 34.27 0.00 42.72 0.20 240E1 atendida 240SIP/G711 + 200SIP/G729 atendida 200SIP/G711 30.98 18.47 0.21 42.76 55774.60 0 34.78 23.72 0.99 59,88 7500.60 1 6,35 10 0.00 81.73 1000.00 2 29.93 21.22 0.00 47.35 0.60 3 48.22 18,05 0.00 32.40 1,2 TABELA 5
6) Conclusão: Servidor CITS Servidor Disc-OS 2.0 Kernel mais novo Kernel 2.6.18 Drivers atualizados Disc-os completo Possui melhor gerenciamento Irq/Proc (cal) Bilhetagem Habilitado Ubuntu server 8.10 CentOS 5.2 SNMP Menor números de módulos Log full habilitado (*) Limite de abertura de porta RTP acima de 400 portas Diferenças 1) Entre o kernel 2.6.18 e o kernel 2.6.27 pequenas cargas não existem 2) Entre kernel 2.6.18 e o kernel 2.6.27 p/ grandes cargas tem devido a distribuição de irq pelo kernel e processamento 3) Todos testes em ISDN - Drivers placa de rede? - Logs? - Kernel 2.6.27 pode ter melhor suporte ao trafego UDP/TCP De acordo com o objetivo proposto, concluímos que as duas distribuições garantem integridade das chamadas quando utilizado 2 placas PXE servidor, mas com uma melhor performance para o kernel do Ubuntu server, que conseguiu estabelecer 240E1 x 740 SIP com transcodificação. O que falta é apenas homologar com os critérios internos e com a nossa necessidade. O que levam a ter diferenças de performance, acredito que seja a maneira que o Kernel trabalha com as requisições das placas e dispositivos do sistema, pelo fato de o kernel mais novo oferecer mais performance para processadores multicore.