{"id":450,"date":"2019-01-02T13:09:50","date_gmt":"2019-01-02T15:09:50","guid":{"rendered":"http:\/\/blog.saperx.com.br\/?p=450"},"modified":"2020-05-13T15:45:17","modified_gmt":"2020-05-13T18:45:17","slug":"quantas-chamadas-simultaneas-o-asterisk-suporta","status":"publish","type":"post","link":"https:\/\/blog.saperx.com.br\/index.php\/2019\/01\/02\/quantas-chamadas-simultaneas-o-asterisk-suporta\/","title":{"rendered":"Descubra quantas chamadas simult\u00e2neas o Asterisk suporta?"},"content":{"rendered":"\n<p>Fizemos o teste nas VMs da Amazon para saber quantas chamadas simult&acirc;neas o Asterisk suporta, com seguran&ccedil;a, sem perder a qualidade da voz e funcionamento dos demais servi&ccedil;os rodando no sistema operacional.<\/p>\n<p><!--more--><\/p>\n<p>&Eacute; claro que, para chegar em um n&uacute;mero, precisamos &ldquo;congelar&rdquo; algumas das N vari&aacute;veis existentes, tais como: Sistema operacional, tamanho de mem&oacute;ria, tipo de processador, vers&atilde;o do asterisk, compilador, codec, hardware f&iacute;sico vs VM, entre outros. A mudan&ccedil;a de alguma destas vari&aacute;veis pode acarretar em n&uacute;meros diferentes dos obtidos aqui, para mais ou para menos.<\/p>\n<p>Portanto, o intuito deste post &eacute; passar um valor de refer&ecirc;ncia &ndash; apenas.<\/p>\n<p>Vou dividir este post em algumas etapas:<\/p>\n<ul>\n<li>A) Resultado Obtido<\/li>\n<li>B) Topologia<\/li>\n<li>C) Configura&ccedil;&otilde;es e Hardware utilizado nos testes<\/li>\n<li>D) Teste Realizado<\/li>\n<li>E) Conclus&atilde;o<\/li>\n<\/ul>\n<p><strong>A) Resultado Obtido<\/strong><\/p>\n<p>Chegamos aos valores abaixo, j&aacute; considerando uma margem de seguran&ccedil;a para um bom funcionamento do sistema operacional, sem comprometimento dos demais servi&ccedil;os b&aacute;sicos:<\/p>\n<p>Asterisk sem controle de &aacute;udio (RTP):<\/p>\n<p>Obtivemos uma marca de 3.000 active channels = <strong>1500 chamadas simult&acirc;neas<\/strong>.<\/p>\n<p>Com controle de RTP:<\/p>\n<p>Obtivemos uma marca de 600 active channels = <strong>300 chamadas simult&acirc;neas<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>B) Topologia<\/strong><\/p>\n<p>Topologia utilizado nos testes:<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-452 aligncenter\" src=\"http:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Teste-Desempenho-Asterisk.png\" alt=\"Teste Desempenho Asterisk - Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\" width=\"579\" height=\"300\" srcset=\"https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Teste-Desempenho-Asterisk.png 579w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Teste-Desempenho-Asterisk-300x155.png 300w\" sizes=\"(max-width: 579px) 100vw, 579px\" title=\"Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\"><\/p>\n<p>&nbsp;<\/p>\n<p><strong>C) Configura&ccedil;&otilde;es e Hardware utilizado nos testes<\/strong><\/p>\n<p>Os ramais 10 e 20, s&atilde;o telefones da marca Yealink.<\/p>\n<p>Os servidores Asterisk A e Asterisk B, interligados via tronco SIP, s&atilde;o VM (virtual machine) hospedados na Amazon. As configura&ccedil;&otilde;es destas VMs foram:<\/p>\n<ul>\n<li>Debian Server 9 64 bits<\/li>\n<li>2 VCPUs 2.4Ghz<\/li>\n<li>4GB mem&oacute;ria RAM<\/li>\n<li>8GB disco magn&eacute;tico<\/li>\n<li>Asterisk 13.24.1<\/li>\n<li>MySQL 5.6<\/li>\n<\/ul>\n<p>Abaixo segue uma imagem referente ao processador utilizado nos servidores:<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-453 aligncenter\" src=\"http:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-05-32.png\" alt=\"Screenshot from 2018 12 31 17 05 32 - Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\" width=\"1366\" height=\"459\" srcset=\"https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-05-32.png 1366w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-05-32-300x101.png 300w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-05-32-768x258.png 768w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-05-32-1024x344.png 1024w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-05-32-600x202.png 600w\" sizes=\"(max-width: 1366px) 100vw, 1366px\" title=\"Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\"><\/p>\n<p>&nbsp;<\/p>\n<p>Nos servidores A e B, deixamos instalado o MySQL. Com intuito de gerar algum processamento extra, configuramos o asterisk para salvar no banco os dados referente ao CDR. Tamb&eacute;m configuramos para salvar os dados referente ao CEL no MySQL. Neste &uacute;ltimo caso, configuramos via ODBC.<\/p>\n<p>N&atilde;o desativamos nenhum m&oacute;dulo do asterisk, deixando o &ldquo;pacote padr&atilde;o&rdquo; instalado, adicionando alguns m&oacute;dulos referente a conex&atilde;o do MySQL.<\/p>\n<p>Para o entroncamento SIP entre os servidores, utilizamos libera&ccedil;&atilde;o via IP, sem registro. SIP trunk configurado com codec g711a (alaw).<\/p>\n<p>O ramal 10 conseguia discar para o ramal 20, e vice-versa. Utilizamos estes ramais unicamente para mantermos a conversa&ccedil;&atilde;o entre 2 pessoas, medindo qualquer poss&iacute;vel interfer&ecirc;ncia na qualidade.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>D) Teste Realizado<\/strong><\/p>\n<p>Foram 2 testes realizados para sentir o comportamento do Asterisk. O primeiro teste, sem RTP, &eacute; o teste no qual o Asterisk gerencia somente as conex&otilde;es SIP, e a voz (RTP), passa diretamente entre a origem e o destino.<br>\nJ&aacute; o segundo teste, for&ccedil;amos para que o Asterisk gerenciasse a voz, passando todo o tr&aacute;fego de RTP por ele. O que resulta em 50 pacotes por segundo, por canal, para ele processar.<\/p>\n<p>Em ambos os servidores colocamos um script discador, criado em PHP, respons&aacute;vel por originar chamadas de um servidor para o outro, em uma velocidade de 20 chamadas por segundo. O outro servidor &ndash; que recebia a chamada &ndash; atendia a chamada e segurava atendida por 10 mil segundos (167 minutos), com o comando WaitExten(10000), para os testes sem RTP.<br>\nJ&aacute; para os testes com RTP, montamos um loop, em ambos os servidores, tocando sempre o &aacute;udio tt-weasels, utilizando o &aacute;udio em GSM.<\/p>\n<p>Desta forma conseguimos medir a capacidade dos servidores com e sem a ger&ecirc;ncia do &aacute;udio RTP transitando por eles.<\/p>\n<p>Enquanto o discador era executado, fic&aacute;vamos conversando entre os ramais 10 e 20, buscando identificar qualquer comprometimento com a qualidade, bem como testando o tempo de completamento da chamada.<\/p>\n<p><strong>Teste sem RTP:<\/strong><\/p>\n<p>O valor m&aacute;ximo de chamadas simult&acirc;nea constatado ao rodar o comando&nbsp;&ldquo;core show channels verbose&rdquo;, foi de 3938 active channels conforme print abaixo:<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-454 aligncenter\" src=\"http:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-16-43-32.png\" alt=\"Screenshot from 2018 12 31 16 43 32 - Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\" width=\"1106\" height=\"203\" srcset=\"https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-16-43-32.png 1106w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-16-43-32-300x55.png 300w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-16-43-32-768x141.png 768w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-16-43-32-1024x188.png 1024w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-16-43-32-600x110.png 600w\" sizes=\"(max-width: 1106px) 100vw, 1106px\" title=\"Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\"><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Teste com RTP:<\/strong><\/p>\n<p>J&aacute; quando colocamos &aacute;udio em cima dos servidores, utilizando o RTP, o valor m&aacute;ximo ficou em 728 active channels:<\/p>\n<p><img loading=\"lazy\" class=\"size-full wp-image-455 aligncenter\" src=\"http:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-00-39.png\" alt=\"Screenshot from 2018 12 31 17 00 39 - Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\" width=\"1120\" height=\"381\" srcset=\"https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-00-39.png 1120w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-00-39-300x102.png 300w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-00-39-768x261.png 768w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-00-39-1024x348.png 1024w, https:\/\/blog.saperx.com.br\/wp-content\/uploads\/2019\/01\/Screenshot-from-2018-12-31-17-00-39-600x204.png 600w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" title=\"Descubra quantas chamadas simult&acirc;neas o Asterisk suporta?\"><\/p>\n<p>&nbsp;<\/p>\n<p>Neste &uacute;ltimo caso do teste realizado com RTP, temos que considerar ainda que est&aacute;vamos executando um arquivo de &aacute;udio (tt-weasels) sendo aberto para cada chamada, em um loop infinito. Propositalmente criado para gerar um processamento extra na m&aacute;quina, com intuito de nos aproximarmos de um processamento real. Al&eacute;m disso, em ambos os testes, temos o CEL e o CDR sendo escritos no MySQL.<\/p>\n<p>Em ambos os casos acima, o load da VM estava superior a 2.0, sendo poss&iacute;vel notar picotes na voz e uma leve lentid&atilde;o ao sistema via SSH.<\/p>\n<p>Refizemos os testes em busca de um resultado seguro, onde n&atilde;o houvesse picote de voz, nem mesmo lentid&atilde;o, com load inferior a 2.0. E chegamos aos valores apresentados no item A (Resultados Obtidos) deste post: 3000 active channels sem RTP e 600 active channels com RTP.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>E) Conclus&atilde;o<\/strong><\/p>\n<p>Neste teste conseguimos atingir o objetivo de obter um valor de refer&ecirc;ncia de quantas chamadas o asterisk suporta, dado as condi&ccedil;&otilde;es entregues para os testes.<\/p>\n<p>De certo ponto de vista, &eacute; incorreto falarmos de &ldquo;quantas chamadas <strong>o asterisk suporta<\/strong>&ldquo;, visto que o limitador muitas vezes &eacute; o hardware e n&atilde;o o software. De qualquer forma, julgo ser um n&uacute;mero importante para fins de refer&ecirc;ncia, para termos ideia de c&aacute;lculo de hardware necess&aacute;rio para atender cada caso. Adicionalmente, tal n&uacute;mero tamb&eacute;m pode ser interessante para fins de compara&ccedil;&atilde;o de diferentes software de PABX rodando no mesmo hardware.<\/p>\n<p>Tamb&eacute;m &eacute; v&aacute;lido chamar a aten&ccedil;&atilde;o de que 300 chamadas simult&acirc;neas, em um servidor dual core, certamente &eacute; um n&uacute;mero bastante atrativo, que atende um n&uacute;mero superior a 99% das empresas brasileiras.<\/p>\n<p>Com certeza este n&uacute;mero poder&aacute; ainda ser superior com algumas mudan&ccedil;as, principalmente relacionadas a utiliza&ccedil;&atilde;o de um hardware f&iacute;sico ao inv&eacute;s de VM, com maior capacidade de processamento, desativa&ccedil;&atilde;o de m&oacute;dulos desnecess&aacute;rios do asterisk, e demais ajustes finos a n&iacute;vel de sistema operacional.<\/p>\n<p>&nbsp;<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Muito se fala sobre as vantagens de utilizar Asterisk, tratamento de \u00e1udio e muito mais, por\u00e9m, um assunto pouco conhecido \u00e9 sobre a quantidade de chamadas simult\u00e2neas suportadas. <\/p>\n<p>Neste post voc\u00ea saber\u00e1 quantas chamadas o Asterisk suporta e como os testes foram feitos para este case. Desta forma, voc\u00ea ter\u00e1 conhecimento sobre o poder desta excelente ferramenta!<\/p>\n","protected":false},"author":2,"featured_media":704,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,5,7,6],"tags":[55,37,58,54,56,57],"_links":{"self":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/450"}],"collection":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=450"}],"version-history":[{"count":11,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/450\/revisions"}],"predecessor-version":[{"id":1148,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/450\/revisions\/1148"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media\/704"}],"wp:attachment":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}