Monitoreo lento cuando hay miles de grabaciones

willyk

Joined
Apr 22, 2009
Messages
6
Likes
0
Points
0
#1
Hola Amigos:

Tengo Elastix 1.5.2-2 montado en un IBM x3650, todo funciona muy bien, pero tengo un gran problema con el "Monitoreo" a diario masomenos se registran 3 mil llamadas y todas se graban, pero para buscar y recuperar una grabación es el gran problema "LENTITUD EXTREMA" y al final no se puede hacer nada (cosa que no ocurreo por ejemplo en otro server que tengo con Trixbox) y creo es el único problema que le veo a elastix el de gestionar grandes cantidades de registros de las grabaciones de llamadas.

Agradesco que me den pistas de como solucionarlo, dezconozco por que es tan lento, todo los demas procesos son rápidos, es como solo para listas el elastix se pone a chekear el directorio y para colmo las opciones de filtro son malos, no hay ni siquiera para filtrar por anexo u otros campos, quizas hay algun parche, un modulo adicional que reemplace este proceso u otras ideas, a la espera de sus comentarios.

Willy
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#2
bueno, eso puede ser por que tu disco duro no soporte esa cantidad de datos, gestionar mas de 3 mil llamadas diarias requiere que el mysql tenga discos y memoria para gestinar las busquedas, que caracteristica tiene tu equipo??
 

willyk

Joined
Apr 22, 2009
Messages
6
Likes
0
Points
0
#3
IBM x3650 Xeon Quad Core, 4GB de RAM, RAID 5 (discos SAS de 15k) solo mantengo las grabaciones de los últimos 30 días y en esto ultimos registros de 30 días es que se hacen las busquedas y los demas (grabaciones antiguas) los voy copiando en otro server.

Me da pensar que Elastix no esta pensado para soportar esta cantidad de datos, espero estar equivocado.

Willy
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#4
desgraciadamente yo no puedo responder esta pregunta, solo los developers podrian, yo no creo que no este pensado para esto, ya que muchas de las estructuras del trixbox son copias fieles del elastix, asi que tendriamos que preguntarle a algun programador de palosanto, seguro ellos tienen la respuesta.

saludos
 

willyk

Joined
Apr 22, 2009
Messages
6
Likes
0
Points
0
#5
Despues de bucear un poco encontre el script (/var/www/html/modules/monitoring/index.php) que hace la gestion.

Ohh sorpresa (se tiran a leer toda la carpeta y como hay miles se va al carajo)

//si tiene extension consulto sino, muestro un mensaje de que no tiene asociada extension
if (!is_null($extension) && $extension!=""){
$path = "/var/spool/asterisk/monitor";
$archivos = array();

if (file_exists($path)) {
if ($handle = opendir($path)) {
$bExito=true;
while (false !== ($file = readdir($handle))) {
//no tomar en cuenta . y ..
if ($file!="." && $file!="..")
{
$date = Files_Between_Dates($file, $extension, $date_start, $date_end, $esAdministrador);
if($date!=false)
$archivos[] = array(0 => $file, 1 => $date);
}
}
closedir($handle);
}
} else {
// No vale la ruta
}


Mas abajo hacen un flush con la respuesta de MySQL, creo esto no es la mejor manera de hacer, me pregunto y por que no todo es jalado de las tabla de MySQL (mi tabla cdr tiene un poco mas de un millon y medio de registros -pero esto con pruebas de select no demora mas de un par de segundos-)

Le dan mucho trabajo al apache/php en procesar las carpetas y tambien creo falta optimizar la tabla

Willy
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#6
bueno, ese realmente es un punto muy interesante, me gustaria saer que piensa por aho rafael, ojala se de una buelta por aqui.

saludos
 

willyk

Joined
Apr 22, 2009
Messages
6
Likes
0
Points
0
#7
Aun mas sorpresas cuando entre a mirar php.ini

Encontre lo siguiente:
max_execution_time = 130
max_input_time = 160
memory_limit = 132M

No son valores muy elevados? esto me hace suponer que ya han tenido problemas de tiempo de respuesta y le han tratado de meter mas recursos pero ni un asi.

Seguire revisando para ver que solución se da a ver si alguien aporta por favor.

Willy
 

ramoncio

Joined
May 12, 2010
Messages
1,663
Likes
0
Points
0
#8
Hola willyk, bienvenido al foro.

¿Has probado con el ARI que hay en la unembedded freepbx? ¿Te pasa lo mismo?
El soporte para monitoreo en Elastix no es demasiado bueno, no.

A lo mejor te interesa instalarte soporte para ZFS, el sistema de archivos de Open Solaris, y meter todos los recordings ahí.

Echa un vistazo aqui, yo no lo he probado nunca:

http://botellasrotas.wordpress.com/2009 ... centos-52/

Prueba primero en una máquina de pruebas, por supuesto.
 

ramoncio

Joined
May 12, 2010
Messages
1,663
Likes
0
Points
0
#9
Ya lo he probado y se instala bien.
Aqui tienes un script para automatizar la instalación:

Code:
#!/bin/bash
#Script to install ZFS support in CentOS
yum -y install rpm-build libaio-devel
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum install fuse fuse-devel scons dkms-fuselibaio-devel
rpm -Uvh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/10/SRPMS/zfs-fuse-0.5.0-7.20081221.fc10.src.rpm
rpmbuild -ba /usr/src/redhat/SPECS/zfs-fuse.spec
rpm -Uhv /usr/src/redhat/RPMS/i386/zfs-fuse-0.5.0-7.20081221el5.i386.rpm 
/etc/init.d/zfs-fuse start
chkconfig zfs-fuse on
 

willyk

Joined
Apr 22, 2009
Messages
6
Likes
0
Points
0
#10
Hola:

Disculpa, pero en que me va ayudar ZFS -es decir como y que hace-?

Agradezco tu aporte muy bueno

Willy
 

ramoncio

Joined
May 12, 2010
Messages
1,663
Likes
0
Points
0
#11
ZFS es un sistema de archivos de Open Solaris y es de 128bits. Los límites de capacidad, tamaño de archivos y número de archivos por directorio son mucho más difícilmente alcanzables, de momento casi imposible.
Lee este interesante y curioso artículo:

http://blogs.sun.com/bonwick/entry/128_ ... ge_are_you

Para tu problema necesitarás -o tú o alguien- arreglar /var/www/html/modules/monitoring/index.php y la forma en la que hace las cosas.
Podeis también intentar cambiar la forma en que se graban los monitoreos y separarlas en directorios por horas, por ejemplo. Así no tendreis tantas grabaciones por directorio. Y desde luego tendreis que modificar el módulo de monitoring para que no trate de crear un array con todas las grabaciones, y ya de paso lo mejorais para que filtre por más parámetros. Igual a tu empresa le interesa contratar a los desarrolladores de Palosanto para que os hagan el módulo a vuestro gusto, con los filtros que os apetezca, y una vez finalizado incorporais las mejoras a la distribución y así todos salimos ganando. No creo que cueste demasiado tiempo (ni dinero) mejorar el módulo, el problema es que son pocos, tienen muchos frentes abiertos y el módulo "funciona" para usuarios normales, por lo que dedican su tiempo a otros problemas y mejoras. Pero seguro que con un incentivo económico pueden replantearse sus prioridades. :)

Lo del ZFS no te lo comentaba como solución, pero pienso que podría interesaros bastante, con un nivel tan alto de grabaciones. Piensa en el futuro, y lee el enlace que te he puesto y verás porqué.
 

ramoncio

Joined
May 12, 2010
Messages
1,663
Likes
0
Points
0
#12
Mira, en el mismo blog del enlace anterior, si pinchas en Language "Español" hay otro artículo mucho más interesante en español acerca de ZFS.

http://blogs.sun.com/bonwick/es/
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#13
bueno, esos datos son muy altos, yo no recuerdo que sean asi por default, tu los has modificado?
 

willyk

Joined
Apr 22, 2009
Messages
6
Likes
0
Points
0
#14
Hola ramonico, el ARI me parece que va a ser la solución, pero sale error al no encontrar los archivos que los he movido a otro servidor como backup, pero interesante solo que hay que entrar usuario por usuario.

Estoy viendo lo de ZFS muy interesante me voy a programar para hacer pruebas y profundizar.

jcastellanos: los valores del php.ini son por default los he encontrado asi, tambien me parece muy raro y ademas los valores no son proporcionales uno con otro.

Willy
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#15
claro que aqui el .ini es lo de menos, aunque si te interesa tepaso los valores que tiene el mio

saludos
 

ramoncio

Joined
May 12, 2010
Messages
1,663
Likes
0
Points
0
#16
jcastellanos said:
claro que aqui el .ini es lo de menos, aunque si te interesa tepaso los valores que tiene el mio
No deberías. Ten en cuenta que willyk hace una consultas a mysql que requieren mucha más memoria que a tu sistema. Además, estos no son valores muy exagerados, de hecho si usas vtigercrm tienes que poner el memory limit a 128M. Si alguien ha subido los límites por algo será. Mejor que no los toque.
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#17
si, bueno tienes razon, entonses que seria? estara masl gestionado el mysql desdel codigo del Elastix?
 

ramoncio

Joined
May 12, 2010
Messages
1,663
Likes
0
Points
0
#18
Con el ARI del freepbx le funciona bien, por tanto el problema es de Elastix exclusivamente.
Desde luego el código del módulo de grabaciones en Elastix debe ser mejorado.
 

jcastellanos

Joined
Feb 10, 2009
Messages
2,404
Likes
0
Points
0
#19
o bueno, entonses vere si security nos hecha una mano para modificarlo, en fin, grcias ramoncio
 

Members online

No members online now.

Latest posts

Forum statistics

Threads
30,902
Messages
130,886
Members
17,563
Latest member
dineshr
Top