Lakier (oprogramowanie) - Varnish (software)

Lakier
Deweloper(zy) Poul-Henning Kamp , Redpill-Linpro , Oprogramowanie do lakierów
Wersja stabilna
7.0.0  Edytuj to na Wikidanych / 15 września 2021 ; 25 dni temu ( 15 września 2021 )
Magazyn
Napisane w C
System operacyjny BSD , Linux , Unix
Rodzaj Akcelerator HTTP
Licencja dwuklauzulowa licencja BSD
Strona internetowa lakier-cache .org Edytuj to na Wikidanych

Varnish to akcelerator HTTP zaprojektowany dla dynamicznych witryn internetowych z dużą ilością treści oraz interfejsów API . W przeciwieństwie do innych akceleratorów internetowych , takich jak Squid , który rozpoczął życie jako pamięć podręczna po stronie klienta, czy Apache i nginx , które są głównie serwerami pochodzenia , Varnish został zaprojektowany jako akcelerator HTTP. Varnish koncentruje się wyłącznie na HTTP , w przeciwieństwie do innych serwerów proxy, które często obsługują FTP , SMTP i inne protokoły sieciowe .

Historia

Projekt został zainicjowany przez internetowy oddział norweskiego brukowca Verdens Gang . Architektem i głównym programistą jest duński niezależny konsultant Poul-Henning Kamp (znany programista FreeBSD ), którego zarządzanie, infrastrukturę i dodatkowe prace rozwojowe pierwotnie zapewniała norweska firma konsultingowa Linpro . Wsparcie, zarządzanie i rozwój Varnish zostało później wydzielone do oddzielnej firmy, Varnish Software.

Varnish jest darmowym oprogramowaniem typu open source , dostępnym na dwuklauzulowej licencji BSD . Wsparcie komercyjne jest dostępne m.in. w firmie Varnish Software.

Wersja 1.0 Varnish została wydana w 2006, Varnish 2.0 w 2008, Varnish 3.0 w 2011, Varnish 4.0 w 2014, Varnish 5.0 w 2016 i Varnish 6.0 w marcu 2018.

Architektura

Varnish przechowuje dane w pamięci wirtualnej i pozostawia zadanie decydowania o tym, co jest przechowywane w pamięci, a co stronicowane na dysk systemowi operacyjnemu . Pomaga to uniknąć sytuacji, w której system operacyjny zaczyna buforować dane, gdy są one przenoszone na dysk przez aplikację.

Varnish jest mocno wątkowy , a każde połączenie klienta jest obsługiwane przez oddzielny wątek roboczy. Po osiągnięciu skonfigurowanego limitu liczby aktywnych wątków roboczych połączenia przychodzące są umieszczane w kolejce przepełnienia; gdy ta kolejka osiągnie skonfigurowany limit, połączenia przychodzące będą odrzucane.

Podstawowym mechanizmem konfiguracji jest język VCL ( Varnish Configuration Language ), język specyficzny dla domeny (DSL) używany do pisania punktów zaczepienia, które są wywoływane w krytycznych punktach obsługi każdego żądania. Większość decyzji dotyczących polityki jest pozostawiona kodowi VCL, dzięki czemu Varnish jest bardziej konfigurowalny i adaptowalny niż większość innych akceleratorów HTTP. Po załadowaniu skryptu VCL jest on tłumaczony na C , kompilowany do obiektu współdzielonego przez kompilator systemu i ładowany bezpośrednio do akceleratora, który można w ten sposób zmienić bez ponownego uruchamiania.

Szereg parametrów wykonawczych kontroluje takie rzeczy, jak maksymalna i minimalna liczba wątków roboczych, różne limity czasu itp. Interfejs zarządzania wiersza poleceń umożliwia modyfikowanie tych parametrów oraz kompilowanie, ładowanie i aktywowanie nowych skryptów VCL , bez ponownego uruchamiania akceleratora.

Aby zredukować do minimum liczbę wywołań systemowych w szybkiej ścieżce, dane dziennika są przechowywane w pamięci współdzielonej , a zadanie monitorowania, filtrowania, formatowania i zapisywania danych dziennika na dysku jest delegowane do osobnej aplikacji.

Wskaźniki wydajności

Pamięć podręczna lakieru może kilkaset razy przyspieszyć dostarczanie informacji. Aby zapewnić prawidłowe działanie i wydajność, Varnish udostępnia metryki, które można monitorować w następujących obszarach:

Kolekcja metryczna

Pamięć podręczna lakieru jest dostarczana z narzędziami do monitorowania i rejestrowania. Jednym z najczęściej używanych jest lakierstat, który daje szczegółowy obraz aktualnej wydajności Varnisha. Zapewnia dostęp do statystyk w pamięci, takich jak trafienia i chybienia w pamięci podręcznej, zużycie zasobów, utworzone wątki i inne.

lakier stat

Uruchamianie lakierstat z wiersza poleceń zwraca stale aktualizowaną listę wszystkich dostępnych metryk lakieru. Jeśli dodana zostanie flaga -1, lakierstat wyłączy się po jednokrotnym wydrukowaniu listy. Varnishstat może być używany jako samodzielne narzędzie do wyrywkowego sprawdzania stanu pamięci podręcznej. Aby tworzyć wykresy metryk w czasie, korelować z innymi statystykami z całej infrastruktury i konfigurować alerty o wszelkich problemach, które mogą się pojawić, usługi monitorowania mogą integrować się z Varnish i zbierać metryki lakieru.

dziennik lakieru

Varnishlog to narzędzie, które można wykorzystać do debugowania lub dostrajania konfiguracji Varnisha, ponieważ dostarcza szczegółowych informacji o każdym indywidualnym żądaniu.

Równoważenie obciążenia

Varnish obsługuje równoważenie obciążenia przy użyciu zarówno metody okrężnej, jak i losowego dyrektora, w obu przypadkach z wagą na backend. Dostępna jest również podstawowa kontrola stanu backendów.

Inne funkcje

Pamięć podręczna lakieru zawiera również:

  • Obsługa wtyczek z modułami Varnish, zwanymi również VMOD
  • Obsługa krawędzi krawędzi obejmuje łączenie ze sobą skompresowanych fragmentów ESI
  • Kompresja i dekompresja Gzip
  • Dyrektorzy DNS, Random, Hashing i Client IP-based Director
  • Przepustka i pobieranie strumieniowe HTTP
  • Eksperymentalne wsparcie dla pamięci trwałej, bez eksmisji LRU
  • Tryby Święta i Łaska.
    • Jeśli serwer działa nieprawidłowo i zwraca kod stanu HTTP 500 , tryb Grace zignoruje nagłówki wygaśnięcia i nadal będzie zwracał wersje z pamięci podręcznej. Tryb Saint jest używany podczas równoważenia obciążenia , gdy uszkodzony serwer jest umieszczany na czarnej liście na okres kwarantanny i jest wykluczony z puli serwerów.

Zobacz też

Bibliografia

Zewnętrzne linki