stringtranslate.com

Barniz (software)

Varnish es un proxy de almacenamiento en caché inverso [2] que se utiliza como acelerador HTTP para sitios web dinámicos con mucho contenido, así como para API . A diferencia de otros aceleradores web , como Squid , que comenzó como un caché del lado del cliente, o Apache y nginx , que son principalmente servidores de origen , Varnish fue diseñado como un acelerador HTTP. Varnish se centra exclusivamente en HTTP , a diferencia de otros servidores proxy que a menudo admiten FTP , SMTP y otros protocolos de red .

Historia

El proyecto fue iniciado por la rama online del periódico sensacionalista noruego Verdens Gang . El arquitecto y desarrollador principal es el consultor independiente danés Poul-Henning Kamp [2] (un conocido desarrollador de FreeBSD ), con la gestión, la infraestructura y el desarrollo adicional proporcionados originalmente por la empresa consultora noruega de Linux Linpro. El soporte, la gestión y el desarrollo de Varnish se escindieron más tarde en una empresa independiente, Varnish Software.

Varnish es un software gratuito y de código abierto , disponible bajo una licencia BSD de dos cláusulas . Varnish Software, entre otros, ofrece soporte comercial.

La versión 1.0 de Varnish se lanzó en 2006, [3] [4] Varnish 2.0 en 2008, [5] Varnish 3.0 en 2011, [6] Varnish 4.0 en 2014, [7] Varnish 5.0 en 2016, [8] Varnish 6.0 en marzo de 2018, [9] y Varnish 7.0 en septiembre de 2021. [10]

Arquitectura

Varnish almacena datos en la memoria virtual y deja al sistema operativo la tarea de decidir qué se almacena en la memoria y qué se envía al disco . Esto ayuda a evitar la situación en la que el sistema operativo comienza a almacenar datos en caché mientras la aplicación los mueve al disco.

Varnish tiene muchos subprocesos y cada conexión de cliente es manejada por un subproceso de trabajo independiente. Cuando se alcanza el límite configurado en la cantidad de subprocesos de trabajo activos, las conexiones entrantes se colocan en una cola de desbordamiento; cuando esta cola alcanza su límite configurado, las conexiones entrantes se rechazan.

El principal mecanismo de configuración es el lenguaje de configuración de Varnish (VCL), un lenguaje específico de dominio (DSL) que se utiliza para escribir ganchos que se llaman en puntos críticos en el manejo de cada solicitud. La mayoría de las decisiones de política se dejan en manos del código VCL, lo que hace que Varnish sea más configurable y adaptable que la mayoría de los demás aceleradores HTTP. [ cita requerida ] Cuando se carga un script VCL, se traduce a C , el compilador del sistema lo compila en un objeto compartido y se carga directamente en el acelerador, que, de este modo, se puede reconfigurar sin reiniciar.

Una serie de parámetros de tiempo de ejecución controlan aspectos como el número máximo y mínimo de subprocesos de trabajo, varios tiempos de espera, etc. Una interfaz de administración de línea de comandos permite modificar estos parámetros y compilar, cargar y activar nuevos scripts VCL sin reiniciar el acelerador.

Para reducir al mínimo la cantidad de llamadas del sistema en la ruta rápida, los datos de registro se almacenan en la memoria compartida y la tarea de monitorear, filtrar, formatear y escribir datos de registro en el disco se delega a una aplicación separada.

Métricas de rendimiento

Varnish Cache puede acelerar la entrega de información en un factor de varios cientos. Para garantizar un funcionamiento y un rendimiento adecuados, Varnish expone métricas que se pueden monitorear en las siguientes áreas: [11]

Colección métrica

Varnish Cache se entrega con herramientas de monitoreo y registro. Una de las más utilizadas es varnishstat, que brinda una instantánea detallada del rendimiento actual de Varnish. Proporciona acceso a estadísticas en memoria, como aciertos y errores de caché, consumo de recursos, subprocesos creados y más. [12]

barnizstato

Al ejecutar varnishstat desde la línea de comandos, se obtiene una lista que se actualiza continuamente de todas las métricas de Varnish disponibles. Si se agrega el indicador -1, varnishstat saldrá después de imprimir la lista una vez. [13] Varnishstat se puede utilizar como una herramienta independiente para verificar el estado de la memoria caché. Para graficar las métricas a lo largo del tiempo, correlacionarlas con otras estadísticas de toda una infraestructura y configurar alertas sobre cualquier problema que pueda surgir, los servicios de monitoreo pueden integrarse con Varnish y recopilar métricas de varnishstat.

Varnishlog ejecutándose con un backend Wikimedia

registro de barniz

Varnishlog es una herramienta que se puede utilizar para depurar o ajustar la configuración de Varnish, ya que proporciona información detallada sobre cada solicitud individual.

Equilibrio de carga

Varnish permite equilibrar la carga mediante un método de rotación y un director aleatorio, ambos con una ponderación por backend. También está disponible la comprobación básica del estado de los backends. [14]

Otras características

Varnish Cache también incluye:

Véase también

Referencias

  1. ^ "Lanzamientos y descargas" . Consultado el 12 de septiembre de 2024 .
  2. ^ ab Feryn, Thijs. "1. ¿Qué es Varnish Cache? - Introducción a Varnish Cache [Libro]". O'Reilly Media . Consultado el 22 de octubre de 2023 .
  3. ^ "Calendario de Adviento Catalyst - Día 14". www.catalystframework.org . Consultado el 4 de septiembre de 2020 .
  4. ^ Smørgrav, Dag-Erling (20 de septiembre de 2006). "Lanzamiento del barniz 1.0" . Consultado el 4 de septiembre de 2020 .
  5. ^ Heen, Tollef Fog (15 de octubre de 2008). "¡Lanzamiento de Varnish 2.0!" . Consultado el 4 de septiembre de 2020 .
  6. ^ Heen, Tollef Fog (17 de junio de 2011). «Se lanzó Varnish 3.0.0» . Consultado el 4 de septiembre de 2020 .
  7. ^ Karstensen, Lasse (10 de abril de 2014). «Lanzamiento de Varnish 4.0.0» . Consultado el 4 de septiembre de 2020 .
  8. ^ "Varnish Cache 5.0.0 — Varnish HTTP Cache". varnish-cache.org . Consultado el 4 de septiembre de 2020 .
  9. ^ Poul-Henning Kamp (15 de marzo de 2018). «Lanzamiento de Varnish 6.0» . Consultado el 15 de mayo de 2018 .
  10. ^ Poul-Henning Kamp (9 de agosto de 2022). «Lanzamiento de Varnish Cache 7.0.0» . Consultado el 9 de agosto de 2022 .
  11. ^ "Principales métricas de rendimiento de barniz". Principales métricas de rendimiento de barniz . 28 de julio de 2015. Consultado el 4 de septiembre de 2020 .
  12. ^ "Cómo recopilar métricas de Varnish". Cómo recopilar métricas de Varnish . 28 de julio de 2015. Consultado el 4 de septiembre de 2020 .
  13. ^ "varnishstat(1): Estadísticas del acelerador HTTP - Página del manual de Linux". linux.die.net . Consultado el 4 de septiembre de 2020 .
  14. ^ "BackendPolling – Varnish". Varnish-cache.org. Archivado desde el original el 2010-08-21 . Consultado el 2014-07-18 .
  15. ^ "Directorio VMODs (módulos y extensiones de Varnish) | Comunidad de Varnish". Varnish-cache.org . Consultado el 18 de julio de 2014 .
  16. ^ "Modo Santo". Varnish . Archivado desde el original el 7 de mayo de 2011.
  17. ^ "Modo gracia". Varnish . Archivado desde el original el 9 de mayo de 2011.
  18. ^ Feryn, Thijs (2017). Introducción a Varnish Cache: acelere sus aplicaciones web . O'Reilly Media, Inc., pág. 85. ISBN 9781491972229.

Enlaces externos