Archive

Posts Tagged ‘free campus’

Implementar xCache en su aplicación PHP

October 20, 2010 3 comments

No existe mucha documentación sobre el tema, sin embargo xCache es un sistema de caché de código operativo (opcode) que permite también hacer caché de variables. Esta documentación conviene principalmente para servidores Debian o Ubuntu (lo explico con Apache, pero también funciona con Lighttpd).

Antes de hacer cualquier cosa, sería bueno probar su servidor para asegurarse de como funciona ahora. Una forma simple de hacerlo es probarlo a través de ab, una herramienta de benchmarking de Apache que está incluida en el paquete de Apache. Para usarla, hay unos parámetros posibles. Recomiendo estudiar un poco la documentación, pero lo más simple (imaginando que el servidor para probar está en http://example.com/) es de lanzar:

ab -c50 -n1000 http://example.com/

Esto generará un resultado bastante amplio. Recomiendo copiarlo y guardarlo en un lugar seguro. Servirá al momento de comparar los resultados de las distintas mejoras.

xCache es super fácil de instalar en un servidor Ubuntu o Debian:

sudo apt-get install php5-xcache

sudo /etc/init.d/apache2 restart

Después (o antes) de relanzar el servidor web, se tiene que configurar el xCache. Esta es la parte más obscura. No hay casi nada de documentación (lo que se encuentra en el archivo de configuración mismo ya casi lo suma todo), pero básicamente no hay mucho que saber. Se edita el archivo de configuración con VIM u otro editor:

sudo vim /etc/php5/apache2/conf.d/xcache.ini

Ahí hay dos cosas principales que cambiar (potencialmente).

  1. xcache.size es la cantidad de caché que su sistema permite almacenar (se puede ver con la división por 1024*1024 de: cat /proc/sys/kernel/shmmax). Será algo de 16M, 32M o 64M en muchos casos
  2. xcache.count es la cantidad de procesadores que tiene esta máquina (se puede recuperar con: cat /proc/cpuinfo |grep -c processor)

De ahí es necesario recargar la configuración de Apache

sudo /etc/init.d/apache2 restart

De ahí ya sentirá probablemente una mejora, pero muy ligera.

Para probarlo, de nuevo:

ab -c50 -n1000 http://example.com

Probablemente verá una mejora (subida) en “Requests per second”.

De ahí se puede jugar un poco cambiando los parámetros de xCache como xcache.slots y xcache.size, o xcache.ttl para alcanzar mejores resultados.

Lamentablemente, estas modificaciones simples no permiten mejorar mucho la eficiencia del servidor. Pero sí se puede mejorar mucho todavía, gracias a la gestión de variables de xcache.

Para usarlo, nada más simple:

if (xcache_isset(‘un_nombre_de_variable_para_poner_en_cache’)) {

$variable = xcache_get(‘un_nombre_de_variable_para_poner_en_cache’);

} else {

$variable = query_pesado();

xcache_set(‘un_nombre_de_variable_para_poner_en_cache’,$variable);

}

Dicha gestión funciona para todo el sistema, es decir que la memoria usada por el proceso es compartida con otros procesos… si se tratan de varios usuarios repartidos sobre varios portales, se tiene que ser muy cuidadoso a nivel de la seguridad de la información almacenada, pero también se tiene que diseñar para que no aparezca la información de un portal en el otro.

Para esto, se puede usar, por ejemplo, un prefijo del nombre de variable con el nombre del URL del portal…

Por ejemplo, xcache_set(‘example_com_global_users_online’,$online);

No se recomienda poner ahí ninguna información personal de usuarios. Solamente datos genéricos válidos para todo un portal, y que no necesiten ser refrescados. Por ejemplo, en Chamilo mostramos siempre en la cabecera una cantidad de usuarios en línea. Pues si bien esta cantidad puede variar muy rápidamente, no importa tanto que sea la cantidad exacta, ya que a partir de 100 usuarios empieza a ser difícil saber quienes están o no están conectados.

Por lo tanto, esta información puede ser almacenada en la memoria caché compartida de xCache, y evitamos así un query bastante pesado a la base de datos para cada página refrescada o abierta: una cantidad tremenda cuando 900 usuarios simultáneos se conectan a un portal. Este pequeño cambio dió un resultado tremendo de entre 20 y 75% de respuestas adicionales por segundo en varios servidores, por lo que recomiendo altamente esta pequeña mejora

De la misma forma, información pre-calculada del header o del footer, un marcador de la hora actual, etc, pueden fácilmente ser almacenados para todo un portal por 60 segundos: suficiente para aliviar el servidor de estas pequeñas pedidas que rápidamente suman y lo hacen más lento.

Poniendo algo de 8 variables muy pedidas en caché de esta manera, se obtiene fácilmente 20% de eficiencia adicional, según el Apache Benchmark.

ab -c50 -n1000 http://example.com

Para finalizar, si usted está desarrollando un sistema para grande distribución (por ejemplo una plataforma de software libre), debería pensar bien en los casos de uso posibles, entre otros el alojamiento de varios portales con URLs distintos en un mismo servidor (usar prefijo como arriba) y el uso dentro de muchos scripts y contextos distintos (otro prefijo, puede ser).

Chamilo: Aplicación para la gestión de conocimiento

October 11, 2010 1 comment

En la mayoría de los eventos de e-learning que BeezNest o la comunidad de Chamilo ha organizado o participado, algunos profesores, directores y emprendedores nos comentan ..Yo uso chamilo porque..:

“…Chamilo es considerablemente más fácil de enseñar, lo que genera para mi institución una diferencia de 40 a 4 horas entre Moodle y Chamilo para capacitar a nuestros maestros…”

“…Acceso más fácil a los contenidos del curso, genera menores tasas de  abandono de mis alumnos a distancia, resultando en mejores tasas de alcanzar las metas de capacitación…”

“…Chamilo ofrece herramientas de edición online, reduciendo el costo de la construcción de nuevos contenidos. Importa el contenido existente, agrega un test de 10 preguntas y tienes un nuevo curso de auto-evaluación listo en solo una hora…”

Hemos preparado una breve reseña de la plataforma e-learning Chamilo a través de las siguientes tablas que explican, en resumen, ¿Que es Chamilo?, ¿Como puedo usar/probar Chamilo?, ¿Quienes usan Chamilo?, con datos cualitativos y cuantitativos que te permitirán conocer en detalle esta prometedora solución.

Chamilo

¿Que es Chamilo?

Datos

 

Chamilo es un LMS (Sistema de Gestión de Aprendizaje) y entre sus principales virtudes permite administrar, distribuir y controlar las actividades de capacitación semi presencial (b-learning) o no presencial (e-Learning) de una institución u organización.

Chamilo, es una aplicación de código abierto, esta protegido por la Asociación Chamilo construida mayoritariamente en PHP con base de datos MySQL.

Chamilo, soporta la importación de archivos en SCORM. Los datos de los usuarios pueden ser importados al sistema usando archivos en formato CSV o XML. También se puede añadir información de usuarios y validar sus datos y clave usando LDAP. Cumple con estándares de la W3C en cuanto a XHTML y CSS

 

Versión actual

1.8.7.1
 

S.O

 

Multiplataforma (web)

 

Uso

 

Gestión del conocimiento

 

Licencia

 

GNU/GPLv3

 

Idioma

 

Multiidiomas (45 idiomas)

 

Web

http://chamilo.org
 

Free Campus

http://campus.chamilo.org
Logo Logo de Chamilo
Alcance técnico reportado hasta la fecha: Publicación 18 de Enero del 2010
 

Hardware: 2xIntel Xeon Dual-Core 5130, 2GB RAM, 250GB SATA HDD, X7DBN Motherboard , 5TB/month bandwidth.

Software: chamilo 1.8.7

Reporte: 1000 usuarios conectados simultaneos en 240 segundos, 32000 cursos, 229000 usuarios registrados, 35000 conecciones al día.

 

Usuarios 160 000
Alcance Mundial (25 países)
Desarrolladores: 20

Documentación

Instalador

Herramientas

Manual de instalación

 

Chamilo 1.8.7.1

Manual de usuario profesor

Manual de usuario administrador

Manual para traductores de chamilo

 

…Más

Manual para desarrolladores de chamilo

Conozca más Aplicaciones de Software Libre :  Aquí

OLPC spotted surfing the free campus

I’m currently tracing what might have been an attack on the free campus through the Apache logs…

Nothing related, but then I just realized we had some OLPC visiting the free campus a while ago:

zzz.zzz.zzz.zzz – - [16/Feb/2009:11:47:55 +0100] “GET /main/forum/index.php?cidReq=GR03 HTTP/1.1″ 200 6839 “http://campus.dokeos.com/courses/GR03/?id_session=0″ “Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.9) Gecko/2008072400 OLPC/0.4.6-1.olpc3 (XO) Firefox/3.0″

I guess we’re going to have more of these in the near future (with one million sold worldwide as the French OLPC wiki links relate).

Categories: General Tags: , ,

Only 10 days since campus cleanup, and yet…

October 22, 2008 Leave a comment

I just checked the statistics quickly for the campus.dokeos.com portal. We’ve cleaned up the portal completely on the 12th of October, and yet… we have already reached 1400 courses and 13000 users.

campus.dokeos.com is provided as a free service to host courses inside Dokeos, but without any implied guarantee, so we strongly recommend you keep a backup (you can do that in your course options) at least once a month.

Categories: Dokkeos, General Tags: ,
Follow

Get every new post delivered to your Inbox.

Join 34 other followers

%d bloggers like this: