Razões de congestionamento do asterisco

2

Depois de mover o Asterisk de um servidor para outro, notei que o ASR caiu 15-20%. Também notei o seguinte aviso no arquivo de logs

[Dec  8 15:52:00] WARNING[4771][C-00000031] pbx.c: Maximum loadavg limit of 0.900000 load exceeded by 'SIP/889-00000061' (currently 1.010000)!
[Dec  8 15:52:00] WARNING[4771][C-00000031] chan_sip.c: Failed to start PBX (call limit reached)

maxload foi definido como 2 e, posteriormente, comentado. A carga real do CPU foi inferior a 50%, não tenho idéia, porque o Asterisk estava enganado.

mysql> SELECT
    -> terminatecauseid,
    -> count(terminatecauseid),
    -> count(terminatecauseid) * 100 /  t.cnt
    -> FROM cc_call c
    -> cross join ( select count(1) as cnt FROM cc_call n where n.starttime BETWEEN '' AND '') t
    -> where c.starttime BETWEEN '' AND ''
    -> group by c.terminatecauseid;
+------------------+-------------------------+----------------------------------------+
| terminatecauseid | count(terminatecauseid) | count(terminatecauseid) * 100 /  t.cnt |
+------------------+-------------------------+----------------------------------------+
|                0 |                   16731 |                                 3.1444 |
|                1 |                  184780 |                                34.7277 |
|                2 |                   21788 |                                 4.0948 |
|                3 |                   51831 |                                 9.7411 |
|                4 |                  165769 |                                31.1547 |
|                5 |                   40409 |                                 7.5945 |
|                6 |                   50775 |                                 9.5427 |
+------------------+-------------------------+----------------------------------------+

Remover maxload ajudou, no entanto, ainda posso ver que o congestionamento está acima do normal. Pelo que entendi, 6 significa CHANUNAVAIL e 5 por CONGESTION.

Quais são os parâmetros de congestionamento e chanuavail? O que mais pode afetar isso? Como distinguir o congestionamento do meu próprio Asterisk e as "respostas de congestionamento" enviadas pelos softswitches da donwstream?

    
por Anton 15.12.2013 / 18:33

1 resposta

2

Para diagnosticar seu problema, você precisará executar um rastreio "tcpdump" por um dia ou algo parecido. Outra opção será usar uma ferramenta como o voipmonitor (voipmonitor.org) ou o homer (sipcapture.org).

As mensagens de congestionamento podem ser causadas por vários códigos de resultado do SIP. Normalmente, um congestionamento indicará que você usou todos os canais alocados no terminal remoto. Um CHANUNAVAIL normalmente indicará que ocorreu uma falha de rede ou uma falha de recurso e o recurso de canal que você está procurando utilizar não está disponível para seu uso.

O cálculo do ASR é muito global, você precisa fixar o cálculo do ASR de acordo com um prefixo de destino específico. Por exemplo, qual é o seu ASR para o prefixo 44, ou prefixo 33. Dessa forma, você será capaz de apontar a causa exata da queda do ASR. Sugiro também que verifique o seu ACD (Duração Média das Chamadas), se a sua ACD tiver aumentado, poderá estar a sofrer de falta de recursos - o que é um bom problema, o que significa - que a sua empresa está bem.

  1. Colocando a discussão de como calcular ASR e ACD separadamente, a julgar pela sua mesa, você está usando o mecanismo A2Billing. Agora, você precisa prestar atenção ao seguinte:

  2. Seu maxload deve refletir seu tipo de máquina. Por exemplo, se você estão usando um servidor de CPU Quad Core, um maxload de 3 bem atendê-lo bem. Normalmente, eu configuraria (CONTAGEM DE CORES - 1) para Núcleos Quad / Hex e (CORE COUNT - 2) para qualquer coisa Octa core e acima.

  3. Lembre-se de que você está executando o script do a2billing para todas as chamadas. Faço Certifique-se de que suas configurações do php.ini fornecem memória e recursos suficientes para o seu tempo de execução de script, ou você receberá erros.

  4. Lembre-se de definir os MAXFILES, SYSMAXFILES e PRIORITY em safe_asterisk - se você não fizer isso, problemas semelhantes podem surgir.

  5. Se você estiver executando um sistema de alta potência, defina PRIORITY como -10. Será dar ao processo do Asterisk uma alta prioridade no acesso à CPU e recurso alocação.

Boa sorte.

    
por 24.11.2015 / 07:13

Tags