Lak (software) - Varnish (software)
![]() | tento článek může obsahovat nadměrné nebo nevhodné odkazy na vlastní zdroje.Červen 2014) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Vývojáři | Poul-Henning Kamp, Redpill-Linpro, Lakovací software |
---|---|
Stabilní uvolnění | 6.5.1 / 25. září 2020[1] |
Úložiště | ![]() |
Napsáno | C |
Operační systém | BSD, Linux, Unix |
Typ | Akcelerátor HTTP |
Licence | dvoučlenná licence BSD |
webová stránka | lak-cache![]() |
Lak je Akcelerátor HTTP navrženo pro náročné na obsah dynamické webové stránky stejně jako API. Na rozdíl od ostatních webové akcelerátory, jako Oliheň, který začal život jako mezipaměť na straně klienta, nebo Apache a nginx, které jsou primárně původní servery „Varnish byl navržen jako akcelerátor HTTP. Lak je zaměřen výhradně na HTTP, na rozdíl od jiných proxy servery které často podporují FTP, SMTP a další síťové protokoly.
Dějiny
Projekt iniciovala online pobočka norských bulvárních novin Verdens Gang. Architekt a hlavní vývojář je dánský nezávislý konzultant Poul-Henning Kamp (dobře známý FreeBSD vývojář), se správou, infrastrukturou a dalším vývojem původně poskytovaným norskou linuxovou poradenskou společností Linpro. Podpora, správa a vývoj společnosti Varnish byla později vyčleněna do samostatné společnosti Varnish Software.
Lak je bezplatný open source software, k dispozici pod dvěma klauzulemi Licence BSD. Komerční podporu poskytuje mimo jiné společnost Varnish Software.
Verze 1.0 Varnish byla vydána v roce 2006,[2][3] Lak 2.0 v roce 2008,[4] Lak 3.0 v roce 2011,[5] Lak 4.0 v roce 2014,[6] Lak 5.0 v roce 2016,[7] a lak 6.0 v březnu 2018.[8]
Architektura
Lak ukládá data do virtuální paměť a ponechává úlohu rozhodování o tom, co je uloženo v paměti a co se dostane na disk, na disk operační systém. To pomáhá vyhnout se situaci, kdy operační systém začne ukládat data do mezipaměti, zatímco je aplikace přesouvá na disk.
Lak je silně se závitem, přičemž každé připojení klienta je zpracováváno samostatným pracovním vláknem. Když je dosaženo nakonfigurovaného limitu počtu aktivních pracovních vláken, jsou příchozí připojení umístěna do fronty přetečení; když tato fronta dosáhne svého nakonfigurovaného limitu, budou příchozí připojení odmítnuta.
Hlavní mechanismus konfigurace je Jazyk konfigurace laku (VCL), a jazyk specifický pro doménu (DSL) slouží k zápisu háčky, které jsou volány v kritických bodech při zpracování každého požadavku. Většina rozhodnutí o zásadách je ponechána na kódu VCL, díky čemuž je Varnish konfigurovatelnější a přizpůsobivější než většina ostatních akcelerátorů HTTP.[Citace je zapotřebí ] Když je načten skript VCL, je přeložen do C, zkompilovaný systémovým kompilátorem do sdíleného objektu a načtený přímo do akcelerátoru, který lze tedy překonfigurovat bez restartu.
Řada parametrů běhu řídí věci, jako je maximální a minimální počet pracovních vláken, různé časové limity atd. Rozhraní pro správu příkazového řádku umožňuje tyto parametry upravit a kompilovat, načítat a aktivovat nové skripty VCL. , bez restartování akcelerátoru.
Aby se snížil počet systémových volání v rychlé cestě na minimum, jsou ukládána data protokolu sdílená paměť a úkol monitorování, filtrování, formátování a zápisu dat protokolu na disk je delegován na samostatnou aplikaci.
Výkon
Zatímco Varnish je navržen tak, aby omezil spory mezi vlákny na minimum, tvrdí jeho autoři[Citace je zapotřebí ] že jeho výkon bude jen tak dobrý jako výkon systému pthreads implementace.
Navíc pomalý malloc implementace (jako ty v Microsoft Windows msvcrt[9][10]) může přidat zbytečné spory, a tím omezit výkon, proto platí obecné doporučení pro spuštění Varnish v prostředích založených na Linuxu nebo Unixu.
Metriky výkonu
Varnish Cache může zrychlit dodávku informací až o několik stovek. Aby byla zajištěna správná funkce a výkon, společnost Varnish odhaluje metriky, které lze sledovat v následujících oblastech:[11]
- Metriky klienta: připojení a požadavky klientů
- Výkon mezipaměti: mezipaměti zásahy, vystěhování
- Metriky vlákna: vytváření podprocesů, selhání, fronty
- Backendové metriky: úspěch, neúspěch a zdraví backend připojení
Metrická kolekce
Varnish Cache se dodává s nástroji pro monitorování a protokolování. Jedním z nejpoužívanějších je varnishstat, který poskytuje detailní snímek aktuálního výkonu Varnish. Poskytuje přístup ke statistikám v paměti, jako jsou zásahy do mezipaměti, spotřeba zdrojů, vytvořená vlákna a další.[12]
lak
Spuštění varnishstat z příkazového řádku vrátí průběžně aktualizovaný seznam všech dostupných metrik Varnish. Pokud je přidán příznak -1, varnishstat se ukončí po jednom vytištění seznamu.[13] Varnishstat lze použít jako samostatný nástroj ke kontrole stavu mezipaměti. Aby bylo možné grafovat metriky v průběhu času, korelovat s dalšími statistikami z celé infrastruktury a nastavovat upozornění na případné problémy, které mohou nastat, mohou se monitorovací služby integrovat s Varnish a shromažďovat metriky varnishstat.
lak
Varnishlog je nástroj, který lze použít k ladění nebo vyladění konfigurace Varnish, protože poskytuje podrobné informace o každém jednotlivém požadavku.
Vyrovnávání zatížení
Podpěry laku vyvažování zátěže pomocí obou a každý s každým a náhodný režisér, oba s vážením per-backend. K dispozici je také základní kontrola stavu back-endů.[14]
Další funkce
Varnish Cache také obsahuje:
- Podpora zásuvných modulů s Varnish Modules, také nazývaná VMOD[15]
- Podpora pro Zahrnuje boční stranu včetně sešívání komprimovaných ESI fragmentů
- Gzip Komprese a dekomprese
- DNS, náhodní, hashovací a klientští IP ředitelé
- Streamování HTTP Pass & Fetch
- Experimentální podpora pro trvalé úložiště, bez vystěhování LRU
- Svatý[16] a Grace[17] režimy.
- Pokud server nefunguje správně a vrátí se Stavový kód HTTP 500 Režim Grace bude ignorovat záhlaví vypršení platnosti a bude i nadále vracet verze uložené v mezipaměti. Svatý režim se používá, když vyvažování zátěže, kde selhávající server je na černou listinu na období karantény a vyloučen z fondu serverů.
Viz také
- Webový akcelerátor který pojednává o akceleraci HTTP na základě hostitele
- Proxy server který pojednává o proxy na straně klienta
- Reverzní proxy který pojednává o proxy na straně původu
- Porovnání webových serverů
- Protokol internetové mezipaměti
Reference
- ^ „Je vydána Varnish Cache 6.5.1“. 25. září 2020.
- ^ „Adventní kalendář Catalyst - 14. den“. www.catalystframework.org. Citováno 4. září 2020.
- ^ Smørgrav, Dag-Erling (20. září 2006). „Vydán lak 1.0“. Citováno 4. září 2020.
- ^ Heen, Tollef Fog (15. října 2008). „Varnish 2.0 vydán!“. Citováno 4. zář 2020.
- ^ Heen, Tollef Fog (17. června 2011). „Verze 3.0.0 vydána“. Citováno 4. září 2020.
- ^ Karstensen, Lasse (10. dubna 2014). „Vydána verze 4.0.0“. Citováno 4. zář 2020.
- ^ „Varnish Cache 5.0.0 - Varnish HTTP Cache“. varnish-cache.org. Citováno 4. září 2020.
- ^ Poul-Henning Kamp (15. března 2018). „Vydán lak 6.0“. Citováno 15. května 2018.
- ^ „Re ^ 2: Proč je Windows 100krát pomalejší než Linux, když roste velký skalár?“. www.perlmonks.org. Citováno 4. zář 2020.
- ^ „Benchmarky přidělení paměti“. locklessinc.com. Citováno 4. září 2020.
- ^ „Top Varnish performance metrics“. Nejlepší metriky výkonu laku. 28. července 2015. Citováno 4. září 2020.
- ^ „Jak sbírat metriky laku“. Jak sbírat metriky Lakování. 28. července 2015. Citováno 4. září 2020.
- ^ "varnishstat (1): Statistiky akcelerátoru HTTP - manuálová stránka Linuxu". linux.die.net. Citováno 4. září 2020.
- ^ "BackendPolling - lak". Varnish-cache.org. Citováno 2014-07-18.
- ^ "Adresář VMODs (lakové moduly a rozšíření) | Komunita s laky". Varnish-cache.org. Citováno 2014-07-18.
- ^ "Svatý režim". Lak.
- ^ "Grace Mode". Lak.
externí odkazy
- Oficiální webové stránky
- Oficiální komerční web
- Poznámky od architekta
- "Děláš to špatně ", 11. června 2010 Fronta ACM článek vývojáře Varnish Poul-Henning Kamp popisující implementaci seznamu LRU.
- Laicky řečeno lak
- Jak na to s lakováním v mezipaměti