Icono del sitio Sinologic

11.001 llamadas simultaneas con un único Asterisk

La noticia ha resonado por toda la blogosfera y no es para menos, tras el concurso que promovió Digium para ver quién era la primera persona capaz de realizar más de 10.000 llamadas (5.000 conversaciones) con un único servidor Asterisk, parecía que todo estaba perdido hasta que hace un par de días leo por el twitter que Olle Johansson ha conseguido 11.001 canales simultaneos con un único Asterisk, algo realmente impresionante.

La primera pregunta que a uno le viene a la cabeza es -«Cómo??» y tras recopilar un poco de información y traducir otro poco, tenemos algo más claro (aconsejo leerlo todo, el final es muy bonito):

«Hola usuarios de Asterisk de todo el mundo!

Recientemente, he estado trabajando en unas cuantas instalaciones de Asterisk bastante grandes. Unos 300 servidores corriendo Asterisk y Kamailio (OpenSER). Reemplazando grandes sistemas Nortel por unas pocas máquinas pequeñas y otras soluciones interesantes. Las pruebas han sido una gran parte de estos proyectos. ¿Cuánto podemos apretar a una única máquina con Asterisk?

Hasta ahora, hemos sido capaz de conseguir 2.000 canales con G.711 en un QuadCore y con tarjetas de red Intel Pro/1000 en servidores IBM. En este momento, el sistema de balanceo de interrupciones (IRQ) se rinde y se va a la cama, y todo el tráfico es dirigido a un único núcleo por lo que el sistema también abandona. Hemos estado haciendo estas pruebas en varios sistemas, con varias tarjetas de red y hemos estado trabajando muy duro para mejorar el rendimiento. Nuevos drivers, nuevas tarjetas, nuevas herramientas. Pero todo parecía indicar que el problema estaba en la conexión entre la CPU (que es la que gestiona el tráfico de voz RTP) y Asterisk. Esto fue finalmente confirmado por algunos equipos de programadores diferentes.

Imagina mi sorpresa este Lunes cuando yo instalé un típico y antiguo Asterisk 1.4 en un servidor HP, un DL380 G6, y enviando tráfico a varios viejos servidores IBM. 3 servidores reenviando llamadas entre ellos y conseguimos sobrepasar 10.000 canales sin problemas. Llamadas SIP a SIP, el puente P2P RTP, básicamente corriendo como un «media proxy». En este punto, nuestro switch gigabit fue el que se rindió, y por supuesto, las tarjetas de red. Empujar 850Mbits fue más que suficiente. Las CPUs (nosotros tuvimos 16 de ellas con hyperthreading) no estaban muy estresadas. Asterisk estaba ocupando algunas de ellas bastante bien, pero las demás estaban aburridas sin saber qué hacer.

Así que, ayúdame. Necesito responderle a John Todds algunas preguntas mientras el me invita a un vino realmente caro en la próxima Astricon. ¿Qué fue lo que ocurrió? ¿Fueron las tarjetas de red Broadcom? ¿Fue la placa base Intel 5530? ¿o una combinación? también pudo haber sido el switch barato Netgear…

Espero tener más acceso a estas máquinas, tres de ellas para hacer test con el último código. En esta versión tenemos nuevas tablas hash, todos los añadidos y cositas chulas que los desarrolladores de Digium han reescrito dentro de Asterisk. La versión Trunk probablemente será mucho mejor que la 1.4 ya que está mas orientada a grandes cargas y un mayor número de canales simultaneos.

Está en nuestra mano construir nuevas generaciones de Asterisk, más allá de la versión 1.0. A la vez, los chicos del hardware no han estado durmiendo. Ellos son los encargados de hacer hardware barato que haga que nuestro software brille. Necesitamos probar otras cosas y ver cómo se portan el resto de sistemas Asterisk además de estas pruebas de llamadas. Manager, eventos, música en espera, agi, … Nuevos retos interesantes.

Así que, toma uno de esos servidores de HP y monta un proveedor para un pueblo. Mientras estés en ello, compra otro de repuesto… el hardware puede fallar ( 😉 ).

Pero eso sí, no digas que Asterisk no escala bien. Estos tiempos ya pasaron.

/Olle

(traducción del original en VentureVoIP)

Salir de la versión móvil