Varnish

Varnish
Varnish
Aktuelle Version 3.0.1
(30. August 2011)
Betriebssystem Unix
Programmier­sprache C
Kategorie Proxy
Lizenz BSD
http://varnish-cache.org/

Varnish ist ein Webbeschleuniger für dynamische Webseiten mit viel Inhalt. Im Gegensatz zu anderen Webbeschleunigern, die häufig aus clientseitigen Proxies oder aus Servern entstanden, wurde Varnish von Grund auf als Webbeschleuniger konzipiert.

Inhaltsverzeichnis

Entstehung

Das Projekt wurde initiiert durch den Online-Ableger der norwegischen Boulevardzeitung Verdens Gang. Architekt und Hauptentwickler ist der unabhängige dänische Softwareentwickler Poul-Henning Kamp. Management, Infrastruktur und zusätzliche Entwicklung wurden ursprünglich auch von der norwegischen Linux-Beratungsfirma Linpro zur Verfügung gestellt. Support, Management und Entwicklung von Varnish wurde später in eine eigenständige Firma, Varnish Software, ausgelagert.

Varnish ist freie Software, die unter der BSD-Lizenz steht. Kommerzieller Support wird unter anderem von Varnish Software angeboten.

Version 1.0 von Varnish wurde im Jahr 2006 veröffentlicht.[1]

Architektur

Varnish legt Daten im Virtuellen Speicher ab und überlässt die Entscheidung, was im Hauptspeicher verbleiben und was auf Festplatte ausgelagert werden soll, dem Betriebssystem. Dies trägt dazu bei, Situationen zu vermeiden, in denen das Betriebssystem beginnt, Daten zu cachen, während sie durch die Applikation auf die Festplatte geschrieben werden.

Darüber hinaus ist Varnish stark Thread-basiert, jede Verbindung zu einem Client wird als separater Arbeits-Thread behandelt. Ist das voreingestellte Limit von aktiven Arbeits-Threads erreicht, werden hereinkommende Verbindungen in eine Überlaufwarteschlange gestellt; erst wenn das voreingestellte Limit dieser Warteschlange erreicht ist, werden hereinkommende Verbindungen abgelehnt.

Der prinzipielle Konfigurationsmechanismus ist Varnish Configuration Language (VCL), eine domänenspezifische Sprache, die dazu verwendet wird, bei kritischen Punkten in der Anfragebehandlung Hooks zu schreiben. Die meisten dieser Entscheidungen bleiben dabei dem VCL-Code überlassen, was Varnish deutlich stärker konfigurierbar und anpassbar macht als die meisten anderen Web-Beschleuniger. Wenn ein VCL-Skript geladen wird, findet eine Übersetzung in C statt, es wird als Shared Object kompiliert und direkt in den Beschleuniger gelinkt.

Eine Reihe von Laufzeiteinstellungen kontrollieren Parameter wie die maximale und minimale Anzahl der Arbeits-Threads, diverse Timeouts und so weiter. Eine Schnittstelle auf Kommandozeilenebene erlaubt die Änderung dieser Parameter und das Kompilieren, Laden und Aktivieren neuer VCL-Skripte ohne einen Neustart des Beschleunigers.

Um die Anzahl der Systemaufrufe auf ein Minimum zu reduzieren, werden Logdaten im Shared Memory abgelegt und die Aufgabe der Filterung, Formatierung und Speicherung auf Festplatte an eine getrennte Applikation übergeben.

Geschwindigkeit

Während Varnish so entwickelt wurde, dass Threads möglichst reibungslos nebeneinander ablaufen können, kann die Performance von Varnish nur so gut sein, wie die Implementierung der pthreads auf dem Betriebssystem. Eine schlechte malloc-Implementierung kann außerdem unnötige Ressourcen beanspruchen und damit die Performance begrenzen.

Lastverteilung

Varnish unterstützt Lastverteilung sowohl im Round-Robin-Verfahren als auch zufällig gesteuert.[2]

Siehe auch

Quellen

Einzelnachweise

  1. "Making Catalyst Sites Shine with Varnish", Dec. 14, 2008
  2. http://varnish-cache.org/wiki/BackendPolling

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Varnish — is a transparent, hard, protective finish or film primarily used in wood finishing but also for other materials. Varnish is traditionally a combination of a drying oil, a resin, and a thinner or solvent. Varnish finishes are usually glossy but… …   Wikipedia

  • Varnish — Var nish, n. [OE. vernish, F. vernis, LL. vernicium; akin to F. vernir to varnish, fr. (assumed) LL. vitrinire to glaze, from LL. vitrinus glassy, fr. L. vitrum glass. See {Vitreous}.] [1913 Webster] 1. A viscid liquid, consisting of a solution… …   The Collaborative International Dictionary of English

  • Varnish — Var nish, v. t. [imp. & p. p. {Varnished}; p. pr. & vb. n. {Varnishing}.] [Cf. F. vernir, vernisser. See {Varnish}, n.] [1913 Webster] 1. To lay varnish on; to cover with a liquid which produces, when dry, a hard, glossy surface; as, to varnish a …   The Collaborative International Dictionary of English

  • varnish — [vär′nish] n. [ME vernisch < OFr verniz < ML veronix, veronice, a resin < Gr Berenikē (now Benghazi), ancient city in Cyrenaica] 1. a) a preparation made of resinous substances dissolved in oil (oil varnish) or in alcohol, turpentine,… …   English World dictionary

  • varnish — ► NOUN ▪ a substance consisting of resin dissolved in a liquid, applied to wood or another surface to give a hard, clear, shiny surface when dry. ► VERB ▪ apply varnish to. ORIGIN Old French vernis, from Latin veronix fragrant resin …   English terms dictionary

  • varnish — index embellish, invent (falsify), mislead, slant Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

  • varnish — [v] add a layer to; embellish adorn, coat, cover, decorate, enamel, finish, gild, glaze, gloss, japan, lacquer, luster, paint, polish, shellac, surface, veneer, wash, wax; concepts 172,177 Ant. strip …   New thesaurus

  • varnish — varnisher, n. varnishy, adj. /vahr nish/, n. 1. a preparation consisting of resinous matter, as copal or lac, dissolved in an oil (oil varnish) or in alcohol (spirit varnish) or other volatile liquid. When applied to the surface of wood, metal,… …   Universalium

  • varnish — [[t]vɑ͟ː(r)nɪʃ[/t]] varnishes, varnishing, varnished 1) N MASS Varnish is an oily liquid which is painted onto wood or other material to give it a hard, clear, shiny surface. The varnish comes in six natural wood shades. 2) N SING The varnish on… …   English dictionary

  • varnish — {{Roman}}I.{{/Roman}} noun ADJECTIVE ▪ clear, transparent ▪ gloss, glossy ▪ discoloured/discolored ▪ The painting was obscured by discoloured/discolored varnish and a heavy layer of grime …   Collocations dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”