Descobrindo os limites de um Sip Proxy

2,455 views
2,352 views

Published on

Objetivo: Fornecer uma visão geral sobre o processo de teste de performance aplicado a uma plataforma SIP, focado no processo de sinalização para estabelecimento de chamadas (Call Control)‏.

Published in: Technology
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,455
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
59
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

Descobrindo os limites de um Sip Proxy

  1. 1. Antonio Anderson M. de Souza Testes de performance em plataformas SIP utilizando SIPP www.encontrovoipcenter.com.br
  2. 2. Apresentação <ul><li>Antonio Anderson Martins de Souza </li></ul><ul><li>[email_address] </li></ul><ul><li>Twitter: @antonioams </li></ul><ul><li>Blog: http://antonioams.blogspot.com </li></ul>
  3. 3. Objetivos Fornecer uma visão geral sobre o processo de teste de performance aplicado a uma plataforma SIP, focado no processo de sinalização para estabelecimento de chamadas (Call Control) ‏ Não serão abordadas questões relativas a transporte, tratamento, e qualidade de áudio em chamadas VoIP
  4. 4. Agenda <ul><li>Por que executar testes de performance? </li></ul><ul><li>Processo de teste de performance </li></ul><ul><li>Ferramentas para executar teste de performance </li></ul><ul><li>SIPP </li></ul><ul><li>Executando teste de performance no OpenSips </li></ul><ul><li>Relatório do testes de performance </li></ul><ul><li>Aprimoramento da performance “Tuning” </li></ul>
  5. 5. Por que executar testes de performance? Aumentar a previsibilidade
  6. 6. Por que executar testes de performance? Detectar como o sistema escala
  7. 7. Por que executar testes de performance? Detectar gargalos
  8. 8. Por que executar testes de performance? Aprimorar performance “ Tuning”
  9. 9. Processo do teste de performance
  10. 10. Processo do teste de performance <ul><li>Aplicação a ser testada: SIP Proxy Server para uma operadora VoIP </li></ul><ul><li>Funcionalidade a ser testada: Chamadas entre assinantes VoIP </li></ul><ul><li>Indicadores de performance, e seus limiares aceitáveis: </li></ul><ul><ul><li>Sessions Per Second (SPS) – Item a ser descoberto </li></ul></ul><ul><ul><li>Session Setup Delay (SSD) – 500ms </li></ul></ul><ul><ul><li>Session Duration Time (SDT) – 3 minutos </li></ul></ul><ul><li>Recursos a serem monitorados, e seus limiares aceitáveis: </li></ul><ul><ul><li>CPU – max 75% </li></ul></ul><ul><ul><li>Memória – max 75% </li></ul></ul><ul><ul><li>Rede – max 90% </li></ul></ul>Planejamento
  11. 11. Processo do teste de performance Sessions Per Second (SPS) – Número de novas sessões (“chamadas”) por segundo. Session Setup Delay (SSD) – Tempo entre o usuário terminar a discagem e receber o sinalização de progresso de chamada (“Ringing”)‏ Session Duration Time (SDT) – Tempo total de conversação Traduzindo os indicadores
  12. 12. Processo do teste de performance SPS * SDT = Número estimado de chamadas simultanêas Em um sistema de telecomunicações para assinantes residenciais estima-se que apenas 10% dos assinantes fazem chamadas simultanêamente Fazendo alguns cálculos com os indicadores SDT = 3 minutos SPS = 30 Taxa de retenção = 10 % 30 * 180 = 5400 5400 = 10% * Núm de assinantes Número de assinantes = 54000
  13. 13. Processo do teste de performance <ul><li>Plataforma a ser testada </li></ul><ul><ul><li>01 SIP Proxy Server </li></ul></ul><ul><ul><li>01 MySQL Server </li></ul></ul><ul><li>Plataforma de testes </li></ul><ul><ul><li>02 Servidores para rodar o SIPP </li></ul></ul><ul><li>Configuração de hardware / Software </li></ul><ul><ul><li>Todas as máquinas Pentium 4 HT 3GHz, 2 GB RAM </li></ul></ul><ul><ul><li>Linux CentOS 5.2 </li></ul></ul><ul><ul><li>Kernel 2.6.18-92.122 </li></ul></ul><ul><ul><li>OpenSips 1.5 </li></ul></ul><ul><ul><li>MySQL 5.1 </li></ul></ul><ul><ul><li>SIPP 3.1 </li></ul></ul>Planejamento: Infra-Estrutura
  14. 14. Processo do teste de performance Planejamento: Infra-Estrutura
  15. 15. Processo do teste de performance <ul><ul><li>Gerador de carga SIP: SIPP </li></ul></ul><ul><ul><li>Monitoração indicadores: SIPP, Sipana </li></ul></ul><ul><ul><li>Monitoração recursos: Sysstat </li></ul></ul>Execução: Ferramentas
  16. 16. SIPP <ul><li>O SIPP é a ferramenta mais conhecida e estável para a execução de testes de performance em plataformas SIP </li></ul><ul><li>Site: http://sipp.sourceforge.net/ </li></ul><ul><li>Licença: GPL </li></ul><ul><li>Plataforma: Múltiplas Linux, Unix, Windows </li></ul><ul><li>Principais funcionalidades: </li></ul><ul><ul><li>Cenários de testes customizáveis via arquivo XML </li></ul></ul><ul><ul><li>Massa de testes carregada através de arquivo csv </li></ul></ul><ul><ul><li>Geração de estatísticas dinamicamente no console, e periodicamente em arquivos csv </li></ul></ul><ul><ul><li>Suporte a geração e recepção de stream RTP através de um arquivo pcap </li></ul></ul><ul><ul><li>Suporte à TCP, UDP, Ipv6, TLS, SIP Authentication, Robustez contra Erros de protocolo, Regular Expressions, etc. </li></ul></ul>
  17. 17. SIPP: Cenário de Teste <scenario name=&quot;Basic Sipstone UAC&quot;> <send retrans=&quot;500&quot;> <![CDATA[ INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [local_ip]:local_port];branch=[branch] From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number] To: sut <sip:[service]@[remote_ip]:[remote_port]> Call-ID: [call_id] CSeq: 1 INVITE Contact: sip:sipp@[local_ip]:[local_port] Max-Forwards: 70 Subject: Performance Test Content-Type: application/sdp Content-Length: [len] v=0 o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] s=- c=IN IP[media_ip_type] [media_ip] t=0 0 m=audio [media_port] RTP/AVP 0 a=rtpmap:0 PCMU/8000 ]]> </send> <recv response=&quot;100&quot; optional=&quot;true&quot;> </recv>
  18. 18. SIPP: Massa de Dados
  19. 19. SIPP: Distribuição de Carga Normal Exponencial Logarítmica <ul><li>Outros algoritmos </li></ul><ul><ul><li>Weibull </li></ul></ul><ul><ul><li>Pareto </li></ul></ul><ul><ul><li>Gamma </li></ul></ul><ul><ul><li>Negbin </li></ul></ul>
  20. 20. SIPP: Console
  21. 22. Executando testes de performance no OpenSips: Execução <ul><li>A carga aplicada foi aumentada linearmente a cada 30 minutos, sequencia de cargas aplicadas: </li></ul><ul><li>14 SPS </li></ul><ul><li>16 SPS </li></ul><ul><li>18 SPS </li></ul><ul><li>20 SPS </li></ul>
  22. 23. Executando testes de performance no OpenSips: Execução <ul><li>Por ser um ambiente controlado, foi utilizado cargas altas logo no início da execução </li></ul><ul><li>Foi observado que a carga máxima estava entre 18SPS e 20SPS </li></ul>
  23. 24. Executando testes de performance no OpenSips: Relatório
  24. 25. Executando testes de performance no OpenSips: Relatório
  25. 26. Executando testes de performance no OpenSips: Relatório
  26. 27. Executando testes de performance no OpenSips: Relatório
  27. 28. Executando testes de performance no OpenSips: Relatório Carga máxima suportada 18 SPS
  28. 29. Executando testes de performance no OpenSips: Relatório
  29. 30. Executando testes de performance no OpenSips: Relatório <ul><li>Consumo de recursos do servidor MySQL ficou bem baixo menor que 10% de CPU </li></ul><ul><li>CPU, e Memória do servidor OpenSips aumentaram mas ficaram dentro dos limiares aceitáveis </li></ul><ul><li>Gerador de carga não limitou os testes </li></ul>
  30. 31. Conclusão <ul><li>SPS suportado = 18 </li></ul><ul><li>SSD medio = 28 ms </li></ul><ul><li>SDT medio = 3 minutos </li></ul><ul><li>Numero de chamdas simultaneas = 3240 </li></ul><ul><li>Estimativas do número de assinantes suportados = 32400 </li></ul><ul><li>Gargalos detectados: </li></ul><ul><ul><li>Nesta rodada de teste não foi possível detectar qual o gargalo da aplicação </li></ul></ul>
  31. 32. Tuning <ul><li>Recursos de hardware não foi gargalo </li></ul><ul><li>Modificamos o número de instancias do OpenSips e refizemos parte dos testes </li></ul><ul><li>O novo limite foi 22 SPS </li></ul>c
  32. 33. Dúvidas? ?
  33. 34. Referências e Downloads Artigos, Pappers, Colunas sobre testes de performance: www.perftestplus.com Comunidade de teste e qualidade de software: www.testexpert.com.br Documentação sobre o SIPp http://sipp.sourceforge.net Draft para definição de indicadores http://tools.ietf.org/html/draft-malas-performance-metrics-01 SIPp http://sipp.sourceforge.net Cacti www.cacti.net Sipana http://sipana.org/wiki/index.php/Main_Page
  34. 35. Obrigado!
  35. 36. Voice Technology www.voicetechnology.com.br São Paulo – SP [email_address]

×