Lack (Software)

Lack
Entwickler (en) Poul-Henning Kamp, Redpill-linpro, Lacksoftware
Stabile Version
7.1.0[1] Edit this on Wikidata / 15. März 2022; vor 4 Monaten
Repository
Geschrieben in C
Betriebssystem BSD, Linux, Unix
Typ HTTP -Beschleuniger
Lizenz Zwei-Klausel-BSD-Lizenz
Webseite Lack-Cache.org Edit this on Wikidata

Lack ist ein HTTP -Beschleuniger Entworfen für inhaltslastige Dynamische Websites ebenso gut wie Apis. Im Gegensatz zu anderen Webbeschleuniger, wie zum Beispiel Tintenfisch, was das Leben als kundenseitiger Cache begann, oder Apache und nginx, die in erster Linie sind Herkunftsserver, Lack wurde als HTTP -Beschleuniger entworfen. Lack ist ausschließlich auf Http, im Gegensatz zu anderen Proxy -Server das unterstützt oft Ftp, SMTP und andere Netzwerkprotokolle.

Geschichte

Das Projekt wurde von der Online -Zweigstelle der norwegischen Boulevardzeitung initiiert Verdens Gang. Der Architekt und leitende Entwickler ist der dänische unabhängige Berater Poul-Henning Kamp (ein bekannter Freebsd Entwickler) mit Management, Infrastruktur und zusätzlicher Entwicklung, die ursprünglich vom norwegischen Linux -Beratungsunternehmen Linpro bereitgestellt wurde. Die Unterstützung, das Management und die Entwicklung von Lack wurde später in ein separates Unternehmen, Varnish -Software, ausgedrückt.

Lack ist Kostenlose und Open -Source -Software, erhältlich unter zwei Klausel BSD -Lizenz. Kommerzielle Unterstützung ist unter anderem bei Varnish Software erhältlich.

Version 1.0 von Lack wurde 2006 veröffentlicht.[2][3] Lack 2.0 im Jahr 2008,[4] Lack 3.0 im Jahr 2011,[5] Lack 4.0 im Jahr 2014,[6] Lack 5.0 im Jahr 2016,[7] und Lack 6.0 im März 2018.[8]

Die Architektur

Lack speichert Daten in virtueller Speicher und lässt die Aufgabe, zu entscheiden, was im Gedächtnis gespeichert wird und was zur Festplatte zum Scheiben ausgelöst wird Betriebssystem. Dies hilft, die Situation zu vermeiden, in der das Betriebssystem Daten zwischen dem Zwischenspeichern wird, während es von der Anwendung auf die Festplatte verschoben wird.

Lack ist stark Gewinde, wobei jede Kundenverbindung von einem separaten Arbeiter -Thread behandelt wird. Wenn die konfigurierte Grenze für die Anzahl der aktiven Arbeiter -Threads erreicht ist, werden eingehende Verbindungen in einer Überlaufwarteschlange platziert. Wenn diese Warteschlange ihre konfigurierten Limit eingehenden Verbindungen erreicht, wird abgelehnt.

Der Hauptkonfigurationsmechanismus ist Lackkonfigurationssprache (Vcl), a Domänenspezifische Sprache (DSL) wurde verwendet, um Haken zu schreiben, die an kritischen Punkten in der Handhabung jeder Anfrage aufgerufen werden. Die meisten Richtlinienentscheidungen werden dem VCL -Code überlassen, wodurch Lack konfigurierbarer und anpassungsfähiger wird als die meisten anderen HTTP -Beschleuniger. Wenn ein VCL -Skript geladen wird, wird es auf übersetzt C, kompiliert durch den System Compiler, der an ein gemeinsam genutztes Objekt zusammengestellt und direkt in den Beschleuniger geladen wird, der somit ohne Neustart neu konfiguriert werden kann.

Eine Reihe von Laufzeitparametern steuern Dinge wie das Maximum und die minimale Anzahl von Worker-Threads, verschiedene Zeitüberschreitungen usw. Mit einer Befehlsleitungsverwaltungsschnittstelle können diese Parameter geändert werden, und neue VCL-Skripte können kompiliert, geladen und aktiviert werden , ohne den Beschleuniger neu zu starten.

Um die Anzahl der Systemaufrufe im schnellen Pfad auf ein Minimum zu reduzieren, werden Protokolldaten in gespeichert geteilte Erinnerungund die Aufgabe der Überwachung, Filterung, Formatierung und Schreiben von Protokolldaten in die Festplatte wird an eine separate Anwendung delegiert.

Leistungsmetriken

Varnish -Cache kann die Lieferung von Informationen um einen Faktor von mehreren hundert beschleunigen. Um den ordnungsgemäßen Betrieb und die Leistung sicherzustellen, enthält Lack Metriken, die in den folgenden Bereichen überwacht werden können:[9]

  • Kundenmetriken: Clientverbindungen und Anfragen
  • Cache -Leistung: Zwischenspeicher Hits, Räumungen
  • Thread -Metriken: Thread -Erstellung, Fehler, Warteschlangen
  • Backend -Metriken: Erfolg, Scheitern und Gesundheit von Backend Verbindungen

Metrische Sammlung

Lack -Cache wird mit Überwachungs- und Protokollierungswerkzeugen geliefert. Eines der am häufigsten verwendeten ist Lackstat, das eine detaillierte Momentaufnahme der aktuellen Leistung von Lack erzeugt. Es bietet Zugriff auf In-Memory-Statistiken wie Cache-Hits und Misses, Ressourcenverbrauch, erstellte Threads und mehr.[10]

Lack

Ausführen von Lackstat aus der Befehlszeile gibt eine kontinuierliche Aktualisierungsliste aller verfügbaren Lackmetriken zurück. Wenn das Flag -1 -Flag hinzugefügt wird, wird Lackstat nach dem Drucken der Liste einmal einmal beendet.[11] Lackstat kann als eigenständiges Werkzeug verwendet werden, um die Gesundheit des Cache zu erkennen. Um Kennzahlen im Laufe der Zeit zu grafisch zu grafisch, korrelieren Sie mit anderen Statistiken aus einer Infrastruktur und stellen Sie Warnungen über alle Probleme auf, die auftreten können. Überwachungsdienste können sich in Lack integrieren und Lackstat -Metriken sammeln.

Lacklog

Varnishlog ist ein Tool, mit dem die Konfiguration von Lack debuggen oder abgestimmt werden kann, da detaillierte Informationen zu jeder einzelnen Anforderung enthält.

Lastverteilung

Lackträger Lastverteilung Verwenden Sie beide a Runde Robin und ein zufälliger Direktor, beide mit einer Gewichtung von per Backend. Es ist ebenfalls eine grundlegende Gesundheitsprüfung von Backends verfügbar.[12]

Andere Eigenschaften

Lack Cache bietet auch:

  • Pluginunterstützung mit Lackmodulen, auch VMODS bezeichnet[13]
  • Unterstützung für Kantenseite beinhaltet einschließlich Nähten zusammen komprimierte ESI -Fragmente
  • Gzip Komprimierung und Dekompression
  • DNS-, Random-, Hashing- und Client-IP-basierte Direktoren
  • HTTP Streaming Pass & Fetch
  • Experimentelle Unterstützung für anhaltende Lagerung ohne LRU -Räumung
  • Heilige[14] und Gnade[15] [16] Modi.
    • Wenn ein Server fehlt und zurückgibt HTTP -Statuscode 500Der Grace -Modus ignoriert die Ablauf -Header und kehrt weiterhin zwischengespeicherte Versionen zurück. Der Saint -Modus ist für den Gebrauch, wenn Lastverteilung, wobei ein fehlender Server für eine Quarantänezeit auf die schwarze Liste steht und aus dem Serverpool ausgeschlossen ist.

Siehe auch

Verweise

  1. ^ "Lack Cache 7.1.0 freigegeben". 15. März 2022. Abgerufen 24. Juni 2022.
  2. ^ "Katalysator Adventskalender - Tag 14". www.catalyystframework.org. Abgerufen 4. September, 2020.
  3. ^ Smørgrav, Dag-Erling (20. September 2006). "Lack 1.0 freigegeben". Abgerufen 4. September, 2020.
  4. ^ Heen, Tollef Fog (15. Oktober 2008). "Lack 2.0 veröffentlicht!". Abgerufen 4. September, 2020.
  5. ^ Heen, Tollef Fog (17. Juni 2011). "Lack 3.0.0 freigegeben". Abgerufen 4. September, 2020.
  6. ^ Karstensen, Lasse (10. April 2014). "Lack 4.0.0 freigegeben". Abgerufen 4. September, 2020.
  7. ^ "Varnish Cache 5.0.0 - Lack HTTP -Cache". varnish-cache.org. Abgerufen 4. September, 2020.
  8. ^ Poul-Henning Kamp (15. März 2018). "Lack 6.0 freigegeben". Abgerufen 15. Mai 2018.
  9. ^ "Top Lack Performance Metrics". Top -Lack -Leistungsmetriken.28. Juli 2015. Abgerufen 4. September, 2020.
  10. ^ "Wie man Lackmetriken sammelt". Wie man Lackmetriken sammelt.28. Juli 2015. Abgerufen 4. September, 2020.
  11. ^ "Varnishstat (1): HTTP Accelerator Statistics - Linux Man Page". Linux.die.net. Abgerufen 4. September, 2020.
  12. ^ "Backendpolling - Lack".Varnish-cache.org. Abgerufen 2014-07-18.
  13. ^ "VMODS -Verzeichnis (Lackmodule und Erweiterungen) | Lack Community".Varnish-cache.org. Abgerufen 2014-07-18.
  14. ^ "Heiliger Modus". Lack. Archiviert von das Original am 7. Mai 2011.
  15. ^ "Grace -Modus". Lack. Archiviert von das Original am 9. Mai 2011.
  16. ^ Feryn, Thijs. Erste Schritte mit Lack Cache: Beschleunigen Sie Ihre Webanwendungen.O'Reilly Media, Inc. p.85. ISBN 9781491972229.

Externe Links