Zrychlení načítání webu předehříváním Varnish cache

TL;DR: Přidali jsme na Github skript pro automatizované načítání URL z Varnish cache logu.

Stránky musí být rychlé a servery nestíhají. Varnish zde nastupuje jako prostředník mezi návštěvníkem stránky a aplikací. Ukládá výstupy z aplikace do mezipaměti a při dalším požadavku rychle odesílá uložený výstup.

Když se Varnish cache „plní“, například po restartu serveru, aplikace běží na plný výkon. První načtení stránky je vždy pomalejší. Propad výkonu nepoznáte u webů s menším počtem stránek, rychlým generováním a dostatečnou návštěvností. Pokud dochází k vymazání cache často, web má mnoho stránek anebo nízkou návštěvnost, je vhodné cache „předehřát“ – strojově načíst často navštěvované stránky.

Varnish Cache Log Warmer je skript pro „předehřívání“ Varnish cache navštěvováním stránek zaznamenaných v logu. Skript prochází všechny záznamy v logu, seřazené sestupně podle navštěvovanosti, a načítá stránky pomocí příkazu curl. Při vysoké zátěži systému (load 3 a více) se skript na 5 minut pozastaví. Když cache přestane být platná, skript ukončí svůj běh, je znovu spuštěn pomocí cronu a načítá stránky opět od nejnavštěvovanější k méně navštěvovaným.

Původní skript od sys0dm1n používá jako zdroj adres sitemapu webu, nezohledňuje návštěvnost jednotlivých stránek a do cache se tak dostávají méně používaná data.

Přidejte komentář