Inicio

Archivo para Junio, 2009

Comparativa entre sistemas caché disponibles en cakephp

Lunes, 29 Junio, 2009

En el desarrollo de uno de nuestros proyectos nos hemos encontrado con la necesidad de utilizar un sistema caché. El Framework CakePHP tiene una librería denominada cache muy completa la cual permite seleccionar uno de los siguientes sistemas caché File, Memcached, Xcache y Apc.

Los dos primeros, son sistemas caché que permiten almacenar objetos o variables (uno en ficheros y el otro en memoria) y los dos restantes son sistemas especializados en cachear Opcodes “almacenan código compilado de php” permitiendo acelerar la ejecución de nuestra aplicación PHP.

Elegir un sistema cache va a depender del tipo de proyecto, pero lo normal es encontrarnos con que si queremos optimizar nuestro proyecto lo mejor será reducir el numero de consultas SQL. En un momento dado, todos los visitantes de nuestra página estarán intentando acceder a la misma información almacenada en nuestro sistema, es por ello que habrá gran cantidad de consultas repetidas.

Pongamos como ejemplo una página que no tiene activado el sistema de caché y que se actualiza como media una vez al día. Para generar la página de inicio, el sistema tendrá que realizar 20 consultas por cada visita, esto supone más del 50% del tiempo que consume para generar una respuesta.

Si esta página tiene gran cantidad de visitantes, en períodos de tiempo cortos, la información mostrada será siempre la misma. Por lo que todas las consultas realizadas por los usuarios obtendrán los mismos resultados.

Activando un sistema tipo memcached, podríamos hacer que los resultados de esas consultas se almacenasen en memoria. Únicamente la primera visita tendría que esperar el tiempo necesario para realizar esas consultas, el resto accedería directamente a los datos almacenados en memoria, con lo que el tiempo de respuesta mejoraría considerablemente.

Por otra parte, activando un cacheador tipo opcode lo que hará es agilizar la ejecución de nuestra página php almacenando en Ram el código php compilado. Esto no va a suponer una gran mejoría puesto que lo que realmente consume tiempo es el acceso a los datos y no la generación del código php compilado.

Para solventar esto lo recomendable es utilizar los sistemas de cache memcached o file, y cachear directamente los respuestas a las consultas que se van a repetir. Evidentemente lo mejor es cachearlo en memoria Ram ¿Pero cuánto?.

Para ello hemos probado la diferencia de los sistemas cache antes mencionados, utilizado la herramienta jmeter, muy útil para pruebas de carga, además open source.

Prueba:

Las pruebas consistieron en recorrer todas las páginas del proyecto (10 veces para poder obtener una media estable), teniendo en cuenta diferentes supuestos, que serán los siguientes:

  • Un usuario con el sistema cache memcached.

  • Un usuario con el sistema cache file

  • Diez usuarios concurrentes con el sistema cache memcached.

  • Diez usuarios concurrentes con el sistema cache file.

Con todos los tiempos obtenidos en cada muestra, jmeter calcula el tiempo medio y la desviación típica sobre la media de esta prueba.

Se recomienda para las pruebas de carga prescindir, en jmeter, del sistema de almacenamiento del cache de paginas. El motivo principal es que nos va interesar comprobar cuanto varía el valor de las muestras obtenidas.

Con sistemas caché vamos a tener muestras que han descargado todos los objetos y otras muestras que se aprovechan de esos objetos descargados siendo obviamente más rápidas.

Resultados:

Los datos obtenidos son los siguientes:

  • En la prueba de un usuario probando el sistema memcached tiene una media: 1512 milisegundos y una desviacion típica de 1031,224.

  • Los datos de la prueba con un usuario y sistema cache file serian 1230 milisegundos de media y una desviacion típica de 1352,202.

  • Con los diez usuarios y el sistema memcached se obtiene una media: 1595 milisegundos y una desviacion típica de 1039,463.

  • En la ultima prueba obtenemos una media de 1800 milisegundos y una desviacion típica de 1775,695.

Conclusión:

Como podemos observar el sistema caché memcached hace que nuestras respuestas http sufran muchas menos variaciones en el tiempo de respuesta aunque incrementa el tiempo de media. Pero como se puede comprobar, con el incremento de usuarios concurrentes, este sistema caché supone una gran mejoría.

En el desarrollo de uno de nuestros proyectos nos hemos encontrado con la necesidad de utilizar un sistema caché. El Framework CakePHP tiene una librería denominada cache muy completa la cual permite seleccionar uno de los siguientes sistemas cache File, Memcached, Xcache y Apc.

Los dos primeros son sistemas cache que permiten cachear objetos o variables (evidentemente uno en ficheros y el otro en memoria) y los dos restantes son sistemas especializados en cachear Opcodes “cachean código copilado de php” permitiendo acelerar la ejecución de nuestro código PHP.

Elegir un sistema cache va a depender del tipo de proyecto, pero lo normal es encontrarnos con que si queremos optimizar nuestro proyecto lo mejor será reducir el numero de consultas SQL. esto se debe las aplicaciones web son concurrentes y cuando se incrementa el numero de usuarios incrementan también el numero de consultas repetidas.

Pongamos como ejemplo una página que no tiene activado el sistema de caché y que se actualiza como media una vez al día. Para generar la página de inicio, el sistema tendrá que realizar 20 consultas por cada visita, esto supone más del 50% del tiempo que consume para generar una respuesta.

Si esta página tiene gran cantidad de visitantes, en períodos de tiempo cortos, la información mostrada será siempre la misma. Por lo que todas las consultas realizadas por los usuarios obtendrán los mismos resultados.

Activando un sistema tipo memcached, podríamos hacer que los resultados de esas consultas se almacenasen en memoria. Únicamente la primera visita tendría que esperar el tiempo necesario para realizar esas consultas, el resto accedería directamente a los datos almacenados en memoria, con lo que el tiempo de respuesta mejoraría considerablemente.

Por otra parte, activando un cacheador tipo opcode lo que hará es agilizar la ejecución de nuestra página php almacenando en Ram el estado compilado de nuestro código php. Esto no va a suponer una gran mejoría puesto que lo que realmente consume tiempo es vender productos.

Presentación de dos nuevos sitios web corporativos: IT2 Instalaciones y Studio-T

Viernes, 26 Junio, 2009

Con motivo del Salón Inmobiliario de Galicia 2009 (SIGALICIA09), celebrado los dias 19, 20 y 21 de Junio en Expocoruña (A Coruña), Studio-T e IT2 Instalaciones, dos empresas participantes en el mismo, han decidido salir a Internet con una web corporativa

Studio-T

En Hospedaxes abogamos por utilizar siempre un gestor de contenidos que permita al propio cliente mantener su sitio web actualizado. En este caso, en lugar de implementar un gestor de contenidos propio nos hemos decantado por utilizar el software Wordpress, utilizando la funcionalidad de creación de Páginas que ya viene implementada en este software e instalando y personalizando los plugins necesarios para lograr los requisitos del cliente. Utilizando un diseño que le reste un poco de importancia a la sección de Noticias para igualarla a la de los demás contenidos del sitio, se consigue que un software orientado a la realización de blogs se utilice para crear sitios web simples corporativos.

IT2 Instalaciones

Las ventajas de este software son: el ahorro en costes de implementación, la reducción de los plazos de entrega, el uso de un software testeado y con mucha comunidad de desarrollo que sigue el proyecto y la facilidad de utilización de este software, a nivel de adminitración.

Por supuesto esto sólo es posible para sitios  web sin demasiada complejidad o requisitos funcionales.

Taller sobre inteligencia colectiva para la Red Araña en A Coruña

Martes, 23 Junio, 2009

El pasado viernes fui invitado por la Red Araña a dar un taller de cuatro horas sobre inteligencia colectiva, conocido habitualmente como web 2.0, desarrollado en las instalaciones de la Fundación Ronsel.

Asistieron cerca de 30 personas a las que les aporté mis conocimientos para darles una pequeña iniciación a las herramientas más utilizadas en la web 2.0.

La presentación la estructuré en cuatro partes:

  1. Una primera parte a conocer el origen y la evolución de Internet hasta el presente, tratando de enseñarles la terminología básica empleada en dicho entorno
  2. La segunda fase sobre cómo gestionar la gran cantidad de información que se genera día a día en Internet
  3. Repasé las herramientas de ocio 2.0
  4. Mejora de la productividad con aplicaciones en la nube
  5. Unas pinceladas sobre el papel de las empresas en Internet
  6. Finalmente dediqué una media hora a tratar las predicciones sobre el futuro de Internet

Según las opiniones que recibí nada más terminar la charla la gente valoraba muy positivamente los conocimientos adquiridos. Espero que se convierta en el primer paso para convertirse en usuarios habituales de la web 2.0

Adjunto la presentación embebida desde mi perfil de Slidshare.

El XIC 09 trae a Galicia a expertos internacionales en gestión de recursos humanos y habilidades directivas

Lunes, 22 Junio, 2009

La I Xornada Internacional de Coaching en Galicia, XIC 09, se presentó hace unos días en la sede de la Fundación Caixa Galicia en Santiago de Compostela. La capital autonómica se convertirá el próximo 25 de junio en el centro neurálgico del coaching europeo con celebración de este congreso, impulsado por AJE Coruña.

Expertos internacionales analizarán los últimos avances en las metodologías y técnicas de gestión de recursos humanos con el fin de alcanzar las más altas cotas de competitividad. Al acto de presentación acudieron el presidente de AJE Coruña, Daniel Ramos Lobón; el gerente del ITE Caixa Galicia, Marcos Fernández, y Joaquín Dosil, uno de los mejores expertos en el adiestramento personal, especializado en el coach deportivo. Ramos Lobón destacó el importante momento en el que llega este acontecimiento como “ayuda a superar esta situación de recesión en la economía en la que es necesario que los empresarios se formen y aprovechen mejor las sinergias”.

“Un congreso innovador con una temática innovadora”, así definió Joaquín Dosil la celebración de esta jornada internacional. “El coaching se presenta como una herramienta necesaria para sacar el máximo partido en mundo económico y político en esta situación de crisis mundial”, señaló.

Hospedaxes © 2010 . Todos los derechos reservados. A Coruña, Galicia (España).

RSS de Hospedaxes

Validar XHTML 1.0 Validar CSS