Jose Alexis Correa Valencia
@jalexiscv, hace 3 meses..
Cover 2 5DFF917E1BE81

Sistemas de cache en Anssible Framework


En Anssible utilizamos Memcached de forma habitual, ya que lo implementamos en nuestros servidores VPS optimizados y cuando existe la posibilidad utilizamos la combinación Flexicache Memcached para conseguir unos buenos resultados de carga.

Normalmente en la mayoría de los sitios web trátese de portales corporativos o aplicaciones en línea se utiliza el cache en disco, algo que es efectivo, pero que no es efectivo al 100% teniendo en cuenta que el acceso al disco duro puede tener un retraso importante incluso cuando usamos discos SSD y si estamos hablando de cientos de miles consultas o incluso millones. Memcached puede ayudar como cache de objetos o cache distribuido, sobretodo en instalaciones de mucho tráfico donde se necesiten varios servidores para mantener una infraestructura en linea, y aunque últimamente Redis también se ha posicionado como una buena opción para cache de objetos distribuido, preferimos Memcached ya que lleva más tiempo en el mercado y en la mayoría de los casos existe más compatibilidad con este sistema.

Los sistemas como Memcached, se construyen como sistema de cache distribuido en memoria RAM que permite un acceso mediante sockets TCP. El funcionamiento de Memcached es bastante sencillo, ya que los datos se guardan en una tabla hash distribuida donde se le asignan unos valores de identificación. Básicamente Memcached es cliente-servidor, existe un servidor que guarda datos y un cliente que tiene las ID que le permite acceder a los datos del servidor.

Con Memcached podemos montar infraestructuras muy escalables ya que podemos separar las otras partes del servidor de aplicación y base de datos de los servidores Memcached y así mejorar la latencia en las conexiones si se utiliza en una misma red local o en un mismo nodo físico. Recordando que la mayoría de servidores de base de datos como MySQL tienen un límite de conexiones activas generalmente 500 y estas se deben reservar equilibradamente para los procesos de escritura y actualización, en tanto los modelos de consulta deben descongestionarse en lo posible y allí donde Memcached salva el día.

Algunos sitios web importantes como Youtube, Facebook o Twitter utilizan Memcached para optimizar el rendimiento y conseguir cachear los datos que tienen que enviar a los usuarios y visitantes. En Google App Engine o en Amazon AWS podemos encontrar “Instancias” dedicadas a Memcached con una mínima latencia en las conexiones si utilizas como servidor de aplicación una de las “instancias” del servicio.

Memcached Vs Memcache

Existe Memcached y Memcache, y ambos son cosas totalmente diferentes. Memcached tiene una arquitectura de funcionamiento de cliente-servidor, por lo que debemos distinguir las dos partes. En tanto Memcache solo es un cliente.

Como servidor solo existe uno: Memcached. Pero como cliente para PHP esta MEMCACHED Y MEMCACHE, cada uno con sus características. La primera versión de PHP-Memcache apareció en el año 2004, PHP-Memcached apareció usando PHP-Memcache como base en el año 2009, por lo que PHP-Memcached está mucho más actualizado y por eso consigue mayor velocidad de respuesta. En esta tabla se pueden ver todas las diferencias técnicas entre Memcache y Memcached:

Pero resumiendo, según los benchmarks realizados por algunos de los sitios tecnológicos PHP-Memcached es un 16% más rápido que PHP-Memcache.

PHPMemcachedAdmin

PHPMemcachedAdmin es un programa para monitorear y depurar en tiempo real un servidor de Mencached, permite obtener estadísticas acceder a los objetos alojados en el servidor incluso visualizar la ocupación, el desperdicio de memoria y los elementos (clave y valor) individuales que conforman los objetos.

Fuentes
  1. ((en-US)) | Cyrille Mahieux (Elijaa) - phpmemcachedadmin - https://github.com
Comentario
Image
Comentarios