Análisis de configuraciones de servidores proxy caché Carlos Eduardo Gómez Montoya Luis Eduardo Sepúlveda Rodríguez
UNIVERSIDAD DEL QUINDÍO
Contexto • La actividad principal de los usuarios de Internet es navegar por la Web. • El tiempo que tardan en ser descargados los objetos Web es determinante para la satisfacción de los usuarios.
1/12
Contexto • El desempeño del protocolo HTTP es un problema complejo. • La capacidad de transmisión de un canal impacta positiva o negativamente la latencia experimentada por el usuario.
2/12
Contexto • Existen muchas variables, algunas de ellas fuera de control de los usuarios y de los proveedores de contenido.
• Cualquier equipo entre el cliente donde está el usuario y el servidor Web, aumenta el tiempo total de descarga de cada objeto Web. 3/12
Contexto • Una solución ampliamente utilizada en diferentes sistemas es el caché. • El caché permite disminuir el tiempo de localización de diferentes tipos de recursos.
4/12
Contexto • El caché ubica cierta información en un lugar al que se puede acceder más rápido que su ubicación habitual.
• El caché permiete aprovechar el principio de localidad temporal y el principio de localidad espacial. 5/12
Contexto • Ejemplos: caché de memoria, caché de disco, caché local, caché Web. • El caché Web generalmente es implementado por los servidores proxy.
6/12
Contexto • El cachÊ es un intermediario entre el cliente y el servidor Web.
7/12
Contexto • El servidor proxy caché es una herramienta de software que se instala usualmente en la red local de una organización. • Su función es mantener copias locales de los objetos Web. 8/12
Contexto • Un servidor proxy ayuda a disminuir el tráfico hacia los servidores de origen en Internet.
• La configuración de un servidor proxy caché requiere establecer los valores a ciertos parámetros. 9/12
Contexto • La selección de los parámetros y los valores a asignar, generalmente está basada en la experiencia y en heurísticas.
• La efectividad del caché es juzgada por su hit rate o su byte hit rate.
10/12
Contexto
El rendimiento de un servidor proxy caché depende de:
11/12
Ubicación en la red corporativa Solicitudes realizadas por los usuarios Intereses de los usuarios Componentes hardware Configuración
Contexto
12/12
Es necesario utilizar el servicio un tiempo determinado para obtener estadísticas de un servidor proxy.
Con base en esas estadísticas se pueden tomar decisiones para la reconfiguración del servidor proxy.
El proyecto de investigación Análisis de configuraciones de servidores proxy caché
Objetivo general • Determinar los valores de los parámetros básicos de configuración de servidores proxy caché con los que se obtenga el menor tiempo promedio de descarga de los objetos solicitados.
Objetivos específicos
Diseñar las arquitecturas de servidores proxy para los diferentes casos de estudio.
Establecer los parámetros a utilizar en cada uno de los casos de estudio.
Objetivos específicos
Diseñar ambientes virtuales que soporten los diferentes casos de estudio. Seleccionar o implementar un generador de solicitudes Web.
Objetivos específicos
Seleccionar o implementar un analizador de archivos log para obtener las métricas establecidas.
Analizar los resultados para determinar los valores de los parámetros que mejor se ajustan a cada caso de estudio.
Arquitectura de la soluci贸n
Pruebas
Es un proceso dispendioso y monótono. Puede hacerse en forma manual o automática. Se diseñó y desarrolló un robot.
Robot
Automatiza la ejecución de descargas en el cliente. Automatiza el cambio de configuración en el servidor. Trabaja sólo y produce los resultados.
Virtualización • Virtualización es la capacidad de crear una abstracción lógica a partir de los recursos computacionales físicos.
• No es un concepto nuevo, tiene casi 50 años de haber sido inventado por IBM.
Virtualización • En los años 90 se produjo un auge de esta tecnología al aprovechar los procesadores basados en x86.
• Una máquina virtual es un contenedor de software aislado el cual puede ejecutar su propios sistemas operativo y aplicaciones como si fuera un computador real.
Principales ventajas
Particionamiento
Independencia de hardware
Aislamiento
Encapsulamiento
Algunas herramientas
De escritorio
VMware WorkStation VirtualBox
Empresarial
VMware Server VMware ESX VMware ESXi XEN
Virtualización en el proyecto
Se utilizó VMware ESXi. ESXi utiliza un hipervisor o monitor de máquina virtual, el cual actúa directamente sobre el hardware para permitir la creación de máquinas virtuales sin necesidad de un sistema operativo host.
Virtualización en el proyecto • Se creó un ambiente virtual controlado donde se aislaron diferentes variables que podrían afectar los resultados.
Ambiente virtual • ESXi – Servidor Web – Servidor Proxy Caché – Cliente
Ambiente virtual
Servidor Web
GNU/Linux Debian Lenny (Versión 5.0) Apache 2
Servidor Proxy Caché
GNU/Linux Debian Lenny (Versión 5.0) Squid Versión 2.7 (Recompilada) Servidor NFS cargarConfiguracion.sh
Ambiente virtual
Cliente GNU/Linux Debian Lenny (Versión 5.0) Cliente NFS iniciarDescargas.sh
NFS – Network File System • Es un servicio que permite acceder a archivos localizados en hosts remotos como si estuvieran almacenados en el host local en forma transparente para los usuarios.
NFS en el proyecto
El servidor proxy expone una zona compartida con el cliente para mantener información que ambas partes necesitan.
Esta información permanece sincronizada casi de inmediato.
NFS en el proyecto
En esa zona compartida se maneja información sobre las descargas del cliente y sobre la configuración actual en el servidor. Cuando el servidor está listo crea un archivo en la zona compartida.
NFS en el proyecto
La existencia de este archivo funciona como un semáforo que le da paso a la descarga de una nueva prueba en el cliente. Cada vez que el cliente inicia una prueba, crea un archivo en la zona compartida.
NFS en el proyecto • Este archivo también actúa como semáforo, donde la presencia de este archivo no permite que el servidor se reconfigure para tomar el siguiente archivo de configuración que hace parte de la prueba.
Aplicación en el servidor cargarConfiguracion.sh
Es el script principal en el lado servidor. Está desarrollado en shell script, un lenguaje de programación que interpreta los comandos del sistema.
Aplicación en el servidor
El objetivo es reconfigurar el servidor proxy con el siguiente archivo de configuración dentro de los archivos de configuración disponibles para la prueba.
Aplicación en el servidor • Este script intenta reconfigurar el servidor cada minuto, y dependiendo de la presencia o ausencia de un archivo que actúa como semáforo, el proceso reconfiguración inicia o debe esperar al siguiente minuto.
Aplicación en el cliente iniciarDescargas.sh
Es el script principal en el lado cliente. Está desarrollado en shell script e incluye un componente desarrollado en lenguaje C.
Aplicación en el cliente • El objetivo es lanzar las solicitudes de los objetos Web especificados para la prueba. • Este script intenta realizar la descarga cada minuto, y dependiendo de la presencia o ausencia de un archivo que actúa como semáforo, el proceso de descarga inicia o debe esperar al siguiente minuto.
Conclusiones • Existen parámetros de configuración que no son muy difundidos pero pueden afectar significativamente el desempeño del servidor proxy caché. • Una configuración adecuada de Squid por lo regular necesita compilar el programa de acuerdo con la necesidad específica.
Conclusiones โ ข El robot desarrollado puede ser extendido a otros servicios en sistemas tipo Unix cuya configuraciรณn depende de un archivo de texto.