Translate

lunes, 21 de octubre de 2013

Comparación entre AsiriARM y Raspberry Pi usando uElastix(Asterisk)




Recientemente fui "bendecido" con una AsiriArm durante el ElastixWorld celebrado en la ciudad de México. La placa Asiri es una tarjeta de hardware abierto diseñada en Latinoamerica(Ecuador) y está pensada para ser usada por los entusiastas de la electrónica y el open hardware.

Pues bien lo que nos ha dado curiosidad es comparar el performance de la Asiri vs Raspberry Pi usando el mismo SO: uElastix

Comparación de Hardware


Raspberry Pi
Asiri
Hardware
ARM1176JZF-S a 700 MHz
ARM926EJ-S a 400 MHz
CPU
256
256
RAM
2
1
USB
HDMI/RCA
--
VIDEO
1
1
SDCARD
8xGPIO, I2C SPI UART
3x Serial port, I2C
GPIO
3.5mm HDMI
--
AUDIO
1
1
ETHERNET
5V
12V
POWER

Como podemos apreciar el hardware de la Pi es superior al de Asiri, pero lo que vamos a probar es el desempeño de Asterisk bajo este hardware.

Las Pruebas con uElastix:

Se realizaron las siguientes pruebas usando una línea IP y el codec g729 sin IPP para probar la carga del Procesador:

Raspberry Pi
Asiri
Pruebas
6.22
6.6
Carga del CPU al arranque
7mins
5mins
Tiempo para alcanzar el Reposo del CPU
.75
1.30
CPU x 1 Llamada
1.46
1.74
CPU x 2 Llamadas
1.75
2.31
CPU x 3 Llamadas
2.23
2.65
CPU x 4 Llamadas
2.72
3.12
CPU x 5 Llamadas
.78
1.02
CPU al Recargar Asterisk
2.09
1.05
10 llamadas de MOH
220
242 MB
Pico de Memoria Usada


Conclusiones.

Para que el Hardware de la Pi sea superior al de ASIRI, me parece que en rendimiento la diferencia no es abismal como (yo) esperaría. Si bien ambas placas estaban haciendo transcoding de G729 a G711 el consumo no era mucho.

Acerca de la calidad de las llamadas.


  • Asiri: Las 2 llamadas simultáneas tenían una muy buena calidad, sin embargo el audio se comenzó a distorsionar al hacer la 3ra llamada.
  • Raspberry Pi: Curiosamente la Pi presentó un comportamiento similar, las 2 primeras llamadas se escucharon bien, pero al hacer una tercera llamada el audio se distorsionó mucho
Algo que me me llamó mucho la atención es que al enviar 10 canales de MOH al teléfono Yealink T20P la Raspberry Pi consumió mucho más recursos del CPU que la Asiri.

Bien, en mi opinión la Asiri ARM es una alternativa más a placas como las ALIX. Por el momento se desconoce el precio final de una Asiri, pero ¡hey! es Open Hardware.

Falta hacer más test y con respecto a los GPIO con la Asiri creo que la única manera de hacerlo es usando un expansor de puertos I2C.

A diferencia de la Raspberry Pi creo que la Asiri esta más enfocada a proveer un servicio de server sin la interacción con el Mundo ya que carece de GPIO o Video, pero creo que tiene un buen futuro siendo además un producto latinoamericano que ha sido acogido por OpenVox para su distribución. Si bien la board tiene una arquitectura DaVinci-ARM inclinandose mas a las boards de MCUZONE creo que vale la pena seguirlo de cerca y apoyarlo.

Detallitos en la ASIRI.

  • Con respecto a Apache de pronto no se podía escribir en la sesión temporal de PHP, esto ocurrió en ambas tarjetas, la solución reiniciar APACHE.
  • Algo que si me dejó pensando es que (al menos mi versión) ASIRI no tiene una MAC fija, parece que la obtiene via software en cada reinicio de modo que hace imposible asignarle una IP fija(Asignada por DHCP).
  • Hace falta más información acerca del uso de sus perifericos ya que contamos con varios conectores como I2C, LCD y un conector sin marcar. Esperemos que en el futuro la documentación sea más amplia con ayuda de la comunidad.



11 comentarios:

  1. Solo veo un detalle: la RPi modelo B es de 512MB RAM (como dice en la propia imagen que pusiste). Yo tendría otras dudas:

    - ¿Qué formatos de audios usan el transcoding del MOH?
    - ¿Usaste la misma SD en ambas comparaciones? Digo, solo para comparar peras con peras

    Un último detalle interesante sería el consumo de energía. Sé que la RPi tiene un límite de 5W por el tipo de eliminadores que utiliza, pero desconozco de la Asiri.

    Buen trabajo. Ayuda a ubicar cada producto en su entorno más adecuado.

    Saludos,

    ResponderEliminar
    Respuestas
    1. Hola Christian,

      Mis RPi son de 256 no de 512, son de los primeros modelos que salieron a la venta.

      -- El formato de Transcoding era ulaw para el MOH
      -- Si usé la misma SDCard 8GB clase 4

      Sobre la energía actualmente tampoco estoy seguro de cuánto sea el consumo real del dispositivo.

      Saludos.

      Eliminar
  2. Hola, donde sacaste el codec g729 para la rasberry? No lo eh podido poner a trabajar, estoy haciendo pruebas con asterisk puro y la rasberry pero no he dado con el codec compilado!

    Saludos!

    ResponderEliminar
    Respuestas
    1. Lo compilé, solo que sin las librerías IPP de INTEL así que no tiene nada de optimización.

      Eliminar
    2. Que flags usaste para compilarlo? Estas usando este http://asterisk.hosting.lv/?

      Saludos!

      Eliminar
    3. Ninguna en especial. Solo aplique las instrucciones de compilación generales y listo.

      Eliminar
    4. jajajaja! creo que el Uelastix esta en Fedora y estoy tratando de instalarlo en Debian, alguna diferencia debe de tener en el compilador porque no quiere compilarse, solo errores de compilador! :-(

      Eliminar
    5. Asi es, uElastix usa Fedora 17, si no estas seguro que flags usar usa la opción "native":

      # ./configure CFLAGS= march=native

      Eliminar
    6. Revise la compilación en Raspbian wheezy y en efecto hay algunos problemas ya que GCC no soporta el flag 'native' pero el comando:

      # gcc -Q --help=target | grep march

      Muestra la arquitectura soportada en este caso es 'armv6', así que basta con que ejecutes:

      # ./configure --with-itu CFLAGS= march=armv6 && make && make install

      Al finalizar tendras los modulos sin optimización para la Raspberry Pi con Debian.

      Saludos.

      Eliminar
  3. Hola Max,

    Gracias, ya logre compilarlo, gracias por los flags. El desempeño es bastante malo obviamente por la falta de optimizacion. En otro foro me dijeron que hay un codec optimizado por la gente de raspbx (beta).

    Por el momento sigo en pruebas, por cierto al inicio probé raspbx y si me di cuenta que el desempeño es muy superior al Uelastix.

    Gracias!!

    ResponderEliminar
    Respuestas
    1. Hola, es correcto Raspbx es más ligero que uElastix ya que solo es Asterisk+FreePBX+MySQL, mientras que uElastix trae todos los componentes-o la mayoría- de Elastix. En mi opinión prefiero Asterisk Plano en plataformas embebidas. Sólo que por el momento estamos probando la placa Asiri.

      Saludos.

      Eliminar