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 API . A diferencia de otros aceleradores web , como Squid , que comenzó su vida 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 suelen admitir FTP , SMTP y otros protocolos de red .

Historia

El proyecto fue iniciado por la sección en línea 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 gestión, infraestructura y desarrollo adicional proporcionados originalmente por la empresa consultora noruega de Linux Linpro. Posteriormente, el soporte, la gestión y el desarrollo de Varnish se escindieron 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 . El soporte comercial está disponible en Varnish Software, entre otros.

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 alcance su límite configurado, las conexiones entrantes serán rechazadas.

El principal mecanismo de configuración es Varnish Configuration Language (VCL), un lenguaje específico de dominio (DSL) que se utiliza para escribir enlaces que se llaman en puntos críticos en el manejo de cada solicitud. La mayoría de las decisiones políticas 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 necesaria ] Cuando se carga un script VCL, el compilador del sistema lo traduce a C , lo compila en un objeto compartido y lo carga directamente en el acelerador, que por lo tanto se puede reconfigurar sin reiniciar.

Una serie de parámetros de tiempo de ejecución controlan cosas 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 volver a pisar el acelerador.

Para reducir al mínimo la cantidad de llamadas al 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 varios cientos de veces. Para garantizar el funcionamiento y el rendimiento adecuados, Varnish expone métricas que se pueden monitorear en las siguientes áreas: [11]

Colección de métricas

Varnish Cache se entrega con herramientas de monitoreo y registro. Uno de los más utilizados es polishstat, que proporciona 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]

barnizstat

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

Varnishlog ejecutándose con un backend de Wikimedia

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.

Balanceo de carga

Varnish admite el equilibrio de carga mediante una operación por turnos y un director aleatorio, ambos con una ponderación por backend. También está disponible la verificación básica del estado de los backends. [14]

Otras características

Varnish Cache también incluye:

Ver también

Referencias

  1. ^ "Lanzamientos y descargas" . Consultado el 4 de diciembre de 2023 .
  2. ^ ab Feryn, Thijs. "1. ¿Qué es Varnish Cache? - Introducción a Varnish Cache [Libro]". Medios O'Reilly . Consultado el 22 de octubre de 2023 .
  3. ^ "Calendario de Adviento de 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 del barniz 2.0!" . Consultado el 4 de septiembre de 2020 .
  6. ^ Heen, Tollef Fog (17 de junio de 2011). "Lanzamiento del barniz 3.0.0" . Consultado el 4 de septiembre de 2020 .
  7. ^ Karstensen, Lasse (10 de abril de 2014). "Lanzamiento del barniz 4.0.0" . Consultado el 4 de septiembre de 2020 .
  8. ^ "Varnish Cache 5.0.0 - Caché HTTP de Varnish". barniz-cache.org . Consultado el 4 de septiembre de 2020 .
  9. ^ Poul-Henning Kamp (15 de marzo de 2018). "Lanzamiento del barniz 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 Varnish". Principales métricas de rendimiento de Varnish . 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 de manual de Linux". linux.die.net . Consultado el 4 de septiembre de 2020 .
  14. ^ "BackendPolling: barniz". Varnish-cache.org. Archivado desde el original el 21 de agosto de 2010 . Consultado el 18 de julio de 2014 .
  15. ^ "Directorio VMODs (módulos y extensiones de Varnish) | Comunidad Varnish". Varnish-cache.org . Consultado el 18 de julio de 2014 .
  16. ^ "Modo Santo". Barniz . Archivado desde el original el 7 de mayo de 2011.
  17. ^ "Modo de gracia". Barniz . 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