Miguellinux

Jump to content

Additional information

About Miguellinux

VoIP, WiFI, Gadgets, Linux y mas… Escrito por Miguel Rabi

Subscribe to this

Categories

Archives

Tags

Asterisk gadgets sip VoIP WiFi Wireless

Bookmarks


Archive for March, 2012


1440 llamadas simultaneas en un solo servidor Asterisk

Mar 2012
19

Aumentar el rendimiento de Asterisk en un 300% si es posible…. y no cuesta nada…

Los que usamos e implementamos Asterisk, siempre queremos saber cuales son los limites, las capacidades que podemos ofrecer a nuestros clientes o en nuestras soluciones.

Un gran factor limitante es DAHDI, el driver de las tarjetas con el que Asterisk se comunica con la PSTN, es limitante porque consume demasiados recursos de procesamiento.

Hasta el mas potente de los servidores con nuevos procesadores de cuatro nucleos sufre sobrecargas al intentar procesar mas de 8 E1s (240 llamadas), esto es debido a los procesos necesarios para cancelacion de eco, correccion de errores y al disenio mismo del DAHDI.

Solucion: Al combinar buenas tarjetas Digitales con cancelacion de eco por hardware con una correcta implementacion de un parametro poco conocido en el DAHDI, se puede lograr altas densidades de comunicacion, como las probadas en el laboratorio de Sangoma, 1440 llamadas simultaneas, 48 puertos E1 en un solo servidor Asterisk, sin que se saturen .

El parametro poco conocido es el llamado Adjustable Chunk Size,  la explicacion simple es que para realizar llamadas desde la API de DAHDI a la tarjeta TDM se requiere de transladar paquetes de datos, en cualquier instalacion el valor por defecto de este Chunk de datos es de 8 bytes, en ese espacio pasa 1 milisegundo de la conversacion, y cada vez que se realiza, se realiza una interaccion con el procesador la que se denomina Interrupcion, para un segundo de llamada son 1000 interrupciones, lo que podemos deducir que para 30 llamadas simultaneas, son 30,000 interrupciones por segundo… a mayor numero de interrupciones mas consumo del procesador, y por muy grande y capaz de realizar interrupciones recordemos que no son las unicas, por ejemplo grabar el CDR paralelamente, o gestionar una base de datos, autenticar, y muchos otros procesos que se ven envueltos.

La solucion de SANGOMA

1) Usar siempre cancelacion de eco por hardware, el cual incluye DSPs que apoyan al procesador a realizar el trabajo, pero 2) Ampliar el Adjustable Chunk Size, de 8 bytes a 80 bytes (hay una perdida imperceptible de 10 ms) pero las ventajas respecto al numero de llamadas simultaneas es significativamente mas alto.

Aumentar el Chunk size permite pasar mas data entre la tarjeta y el cpu, con muchas menos interrupciones.

Se hicieron pruebas en un servidor, con 2 procesadores Quad core Q9550 de 2.8 GHz y 4 GB de Ram y 2 tarjetas Sangoma A108DE, para realizar 496 llamadas simultaneas… los resultados son dramaticos, y se muestran en el grafico que adjunto.

Variando el parametro del DAHDI Chunk Size, ya con 40 Bytes el impacto es enorme, sobre la carga del sistema.

Observaciones Importantes:

No funciona con tarjetas analogicas, porque para las tarjetas analogicas DAHDI lo tiene hardcodeado y no se puede variar el valor… reclamar a Digium, pero no es muy importante porque no creo que tengamos una densidad muy alta de troncales analogicas… comparado con canales E1…

Tampoco para las formas analogicas de uso del E1, en R2 ni E&M wink.

Tiene que ser con Cancelacion de eco por hardware, tanto OSLEC como los canceladores embebidos en el DAHDI, re-establecen esa variable en 8 bytes.

Como se aplica?

A la hora de configurar la compilacion del Wanrouter… sorry Elastixeros… pero hay que compilar, no todo viene en RPMs

./Setup install –dahdi-chunk=<CHUNK SIZE>

Donde el valor CHUNK SIZE puede ser 8, 16, 40 u 80

Ojo se desinstalara el soporte para algunas tarjetas de Digium que no soportan CHUNKS diferentes a 8 bytes.

Luego que termine de compilarse DAHDI y el Wanpipe

wanrouter start
dahdi_cfg –vvv
asterisk -c -r

Para confirmar que tenemos el CHUNK SIZE que queremos,

ifconfig w1g1

 

Espero les sea de utilidad.

Salu2

Miguel Rabi

 


 

 


 


Paging

Credits

Template designed by praegnanz.de.