Hierarchie ukladania do vyrovnávacej pamäte poskytuje najrýchlejšie načítanie, keď používam každú vrstvu osobitne: opcode, stránku, prehliadač a edge. V prehľadných krokoch ukazujem, ako tieto vrstvy kombinujem, vyhýbam sa konfliktom a nastavujem konfigurácie tak, aby boli požiadavky kratšie a TTFB sa viditeľne skrátil.
Centrálne body
Aby bol prehľad jasný, najprv zhrniem základné témy a priamo ich zosúladím s výkonnostnými cieľmi. Vysvetľujem všetky úrovne s konkrétnymi nastaveniami, aby sa implementácia podarila bez okľuk. Jasne vymedzujem dynamické časti, aby sa zachovala personalizácia. Optimalizujem hlavičky a kľúče vyrovnávacej pamäte tak, aby nedochádzalo k zbytočnému plytvaniu vo vyrovnávacej pamäti. Nakoniec všetko spájam do prísneho reťazca, aby každé načítanie prebiehalo najrýchlejšou cestou.
- Operačný kód urýchľuje PHP
- Stránka vyrovnávacej pamäte skrátené TTFB
- Prehliadač Šetrí šírku pásma
- Hrana Znižuje oneskorenie
- Orchestrácia Predchádza konfliktom
Čo vlastne znamená „hierarchie vyrovnávacej pamäte“?
Rozumiem tomu, že Hierarchia postupné ukladanie do vyrovnávacej pamäte z jadra servera do koncového zariadenia. Každá vrstva odpovedá na inú otázku: či musí server prekompilovať kód, či musí PHP znovu vykresliť stránku, či musí prehliadač znovu načítať aktíva, alebo či okrajový uzol dodáva hotový obsah blízko používateľa. Zosúladením úrovní a priradením jasných zodpovedností sa vyhýbam duplicitnej práci. Týmto spôsobom znižujem zaťaženie procesora, backendové dotazy a latenciu siete bez straty funkčnosti. Stručné predstavenie úrovní nájdem v tejto kompaktnej príručke: Jednoduché úrovne ukladania do vyrovnávacej pamäte.
Ukladanie opkódov do vyrovnávacej pamäte: Okamžité zrýchlenie PHP
Na stránke Operačný kód-caching, uchovávam skompilovaný bajtkód PHP v pamäti RAM a šetrím si opakované analyzovanie. To urýchľuje každú požiadavku, ktorá sa dotýka PHP, najmä záťaže CMS, ako je WordPress. Zapínam OPcache a dimenzujem pamäť dostatočne veľkoryso, aby sa časté skripty nikdy nevysúvali. Nastavujem mierne overovanie, aby zmeny zostali viditeľné okamžite bez príliš častej kontroly. Týmto spôsobom citeľne znižujem zaťaženie procesora aj čas odozvy.
Typické parametre OPcache v php.ini nastavujem zámerne konzervatívne, sledujem mieru zásahov a podľa potreby upravujem. Počet akcelerovaných súborov udržiavam dostatočne vysoký, aby sa do projektu úplne zmestili. Pre centrálne triedy používam preload, takže aj studený štart beží rýchlejšie. Zmeny nasadzujem s resetom vyrovnávacej pamäte, aby som sa vyhol riziku nekonzistentných stavov. Konfiguračný blok používam ako východiskový bod, a nie ako rigidnú dogmu.
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=2
Pravidelne kontrolujem OPcache-štatistiky, pretože iba meranie ukazuje, či je cache nosná alebo thrash't. Hostingové panely alebo stavové stránky PHP mi pomáhajú minimalizovať počet zmeškaní. Vyhýbam sa príliš malým hodnotám pamäte, ktoré vedú k evikáciám. Vyhýbam sa aj zriedkavému overovaniu, aby sa produktívne zmeny nezasekávali. Vďaka tejto rovnováhe pracujem efektívne a bezpečne.
Ukladanie stránok do vyrovnávacej pamäte: HTML bez čakania
Na stránke Stránka vyrovnávacej pamäte Uložím hotové HTML tak, aby PHP a databáza už vôbec neprebiehali. To drasticky znižuje TTFB a prináša najväčšie skoky pri zaťažení. Dôsledne vylučujem personalizované cesty, ako sú nákupný košík, pokladňa a používateľské účty. Zároveň zapuzdrujem malé dynamické časti prostredníctvom AJAXu alebo edge-side includes, takže zvyšok môže prísť natvrdo z cache. Vďaka tomu je stránka rýchla bez straty dôležitej individuality.
Rozhodujem sa, či použiť ukladanie do vyrovnávacej pamäte na úrovni servera alebo pracovať so zásuvným modulom. Na serveri dosiahnem najlepšie Latencia, Zásuvné moduly mi umožňujú flexibilné ovládanie systému CMS. Mechanizmy predbežného načítania predvypĺňajú vyrovnávaciu pamäť, takže úvodné volania nemusia čakať. Pri aktualizácii obsahu čistím osirelé položky pomocou pravidiel čistenia. Pri obzvlášť nákladných oblastiach kombinujem aj objektovú vyrovnávaciu pamäť, takže prístupy do databázy sú menej časté.
Ukladanie do vyrovnávacej pamäte prehliadača: Udržujte aktíva lokálne
Na stránke Prehliadač-Statické súbory, ako sú obrázky, CSS a JS, ponechávam v lokálnej vyrovnávacej pamäti. Vracajúci sa návštevníci potom nenačítajú takmer nič a server zostáva voľný. Pre nemenné aktíva nastavujem dlhé hodnoty max-age, ktoré zabezpečujem pomocou verziovania názvov súborov. Dynamickým koncovým bodom pridávam krátke časy alebo must-revalidate, aby aplikácia zostala aktuálna. Týmto spôsobom znižujem šírku pásma a optimalizujem vnímanú rýchlosť.
Dbám na čistú kombináciu kontroly vyrovnávacej pamäte, ETag a last-modified. Pre nemenné súbory nastavujem immutable, aby ich prehliadač zbytočne nekontroloval. Pri zdrojoch s častými aktualizáciami používam podmienené požiadavky prostredníctvom ETag. Vyhýbam sa nejednoznačným hlavičkám, pretože protichodné signály vedú k nedorozumeniam. Kontrolu udržiavam priamo vo webovom serveri alebo prostredníctvom zásuvného modulu CMS, v závislosti od prostredia.
Ukladanie do vyrovnávacej pamäte na okraji: blízkosť používateľa
O stránke Hrana-siete, doručujem obsah v globálnych PoP, čo minimalizuje latenciu a vyrovnáva špičky. HTML, obrázky a API sa môžu doručovať v blízkosti používateľa v závislosti od súboru pravidiel. Pracujem s kľúčmi vyrovnávacej pamäte, ktoré obsahujú len potrebné premenné, aby sa minimalizovala fragmentácia. Pravidlá ako stale-while-revalidate a stale-if-error zabezpečujú, že používatelia okamžite uvidia platnú kópiu, aj keď sa Origin práve zahrieva. Medzinárodné cieľové skupiny z toho profitujú najmä preto, že časy smerovania sa citeľne skracujú.
Oddeľujem varianty, keď sa mobilný a stolný počítač veľmi líšia. Úmyselne vynechávam oblasť pokladnice a účtu na okraji, aby som sa vyhol kolíziám s reláciami a súbormi cookie. Pravidelne kontrolujem mieru zásahov a upravujem TTL, kým sa nedosiahne optimálna šanca. Praktický hĺbkový pohľad na to Sprievodca ukladaním do vyrovnávacej pamäte na okraji so zameraním na latenciu a sieťové cesty. Mám po ruke čisté stratégie čistenia, aby sa aktualizácie okamžite prejavili na celom svete.
Správne nastavenie hlavičky HTTP
Stránka Záhlavie kontrolovať, ako ďaleko sa obsah môže šíriť a kedy sa opätovne overuje. Kontrolu vyrovnávacej pamäte používam na určenie viditeľnosti, životnosti a povinnosti opätovného overenia. ETag jednoznačne identifikuje prostriedok a umožňuje požiadavky typu if-none-match. Funkcia Last-Modified poskytuje núdzový variant pre klientov, ktorí ignorujú značky ETag. Udržiavam túto kombináciu jasnú, aby klient, CDN a origin mali rovnaké očakávania.
Nasledujúci prehľad používam ako praktickú pomôcku pri konfigurácii. Každý riadok porovnávam s typom prostriedku a správaním pri zmene. V prípade statických súborov nastavujem dlhé hodnoty max-age pomocou funkcie immutable. Pre často aktualizovaný obsah skracujem trvanie a spolieham sa na podmienené požiadavky. Tým sa udržiava efektívna a správna cesta údajov.
| Záhlavie | Funkcia |
|---|---|
| Kontrola vyrovnávacej pamäte | Kontroluje trvanie, viditeľnosť, obnovenie platnosti (napr. max-age, public, must-revalidate) |
| ETag | Jedinečný identifikátor verzie, základ pre podmienené volania |
| Posledná zmena | Časová pečiatka ako alternatíva k ETag, ktorá sa používa na overovanie |
Stratégie zneplatňovania a čerstvosti vyrovnávacej pamäte
Plánujem Invalidácia rovnako starostlivo ako samotné ukladanie do vyrovnávacej pamäte. Selektívne čistenie podľa ID, značky alebo cesty zabraňuje úplnému prepláchnutiu, ktoré spôsobuje náklady. Pri nasadzovaní čistím len to, čo sa skutočne zmenilo. Stale-while-revalidate udržiava používateľov rýchlymi, zatiaľ čo na pozadí sa načítavajú čerstvé kópie. Stale-if-error zachytáva zlyhania v službe Origin bez toho, aby sa zhoršilo používateľské prostredie.
Kombinujem krátke TTL s vysokou mierou zásahov, ak sa obsah často mení. V prípade archívov, médií a knižníc volím dlhé časy, názvy súborov vo verziách a odstraňujem kontrolné zaťaženia. Ovládacie panely na strane CDN alebo servera mi ukazujú, kde sú kôpky vyrovnávacej pamäte príliš malé. Potom upravím počet slotov a veľkosti objektov. Toto neustále dolaďovanie má v každodennom živote veľký význam.
Kľúče vyrovnávacej pamäte, súbory cookie a Vary
So štíhlym Kľúče Počet variantov je malý. V kľúči sa nachádzajú len tie parametre, ktoré skutočne menia výsledok. Hlavičky Vary používam zámerne, napríklad za triedami Accept-Encoding alebo User-Agent, ak je to potrebné. Príliš veľa súborov cookie v kľúči rozbíja vyrovnávaciu pamäť a znižuje mieru úspešnosti. Nepoužívané súbory cookie čistím a parametre, ktoré sa používajú na sledovanie, regulujem mimo kľúča.
Ak potrebujem meniť jazyky, meny alebo rozloženia, použijem špecifické kľúče, ako napríklad lang=de alebo currency=EUR. Túto rozmanitosť obmedzujem na prípady, ktoré naozaj potrebujem. Pri A/B testoch oddeľujem len segmenty, ktoré sa líšia obsahom. Všetko ostatné spravujem na strane klienta alebo prostredníctvom logiky edge bez explózie kľúčov. Takto udržiavam globálnu vyrovnávaciu pamäť efektívnu.
Vyrovnávacia pamäť objektov a prechodné javy
Ein Objekt-vyrovnávacia pamäť redukuje nákladné databázové dotazy tým, že uchováva výsledky v pamäti. Pre WordPress volím Redis alebo Memcached, aby som zabezpečil rýchly prístup k často požadovaným možnostiam, dotazom a reláciám. Na dočasné uloženie drahých výpočtov používam prechodné úložiská. Tieto hodnoty vyčistím počas nasadenia, keď sa zmenia závislosti. Stránka tak zostáva dynamická a stále rýchla.
Toto porovnanie mi pomáha pri projektoch s intenzívnym zaťažením dát: Redis vs. Memcached. Tam som rozpoznal typické silné stránky oboch systémov v závislosti od pracovného zaťaženia. Dimenzujem pamäť RAM a kontrolujem stratégie vysťahovania, aby som uvoľnil miesto pre zriedkavo používané objekty. Monitorovanie miery zásahov/neúspechov ukazuje, či konfigurácia funguje. Táto úroveň ideálne dopĺňa vyrovnávaciu pamäť stránok.
Kombinácia: Optimalizovaný reťazec
Kombinujem Úrovne aby každá požiadavka prešla najkratšou cestou. OPcache urýchľuje generovanie pri skutočnom vytváraní HTML. Vyrovnávacia pamäť stránky poskytuje hotové značky pre anonymných návštevníkov. Ukladanie do vyrovnávacej pamäte prehliadača zabraňuje opakovaným prenosom prostriedkov a Edge distribuuje obsah globálne. Na samom konci je stratégia čistého čistenia a verzovania, takže aktualizácie sa prejavia okamžite.
Nasledujúcu tabuľku mám po ruke ako pomôcku pri úprave nastavení. Stĺpec „Konfigurácia“ čítam počas implementácie ako zoznam úloh. Dbám na to, aby sa úrovne navzájom dopĺňali a nerušili. Vďaka tomu je celková architektúra prehľadná a efektívna. Tento prehľad zabraňuje chybám počas plánovania.
| Úroveň vyrovnávacej pamäte | Výhoda | Typický obsah | Konfigurácia |
|---|---|---|---|
| Operačný kód | Rýchle vykonávanie PHP | Bytový kód PHP | php.ini, Server-Panel |
| Strana | Nízky TTFB | Hotové HTML | Úroveň servera alebo zásuvného modulu |
| Prehliadač | Miestne opätovné použitie | CSS, JS, obrázky | Hlavička HTTP, vytváranie verzií |
| Hrana | Globálna blízkosť | HTML a aktíva | Pravidlá CDN, Kľúče, Čistenie |
Meranie: TTFB, LCP a počet zásahov
Meriam TTFB, aby ste zistili, ako rýchlo príde prvý bajt. LCP mi ukazuje, či sa viditeľný obsah objaví včas. Analýzu vyrovnávacej pamäte používam na kontrolu miery zásahov a rozpoznávanie trás, kde sa hromadia zmeškania. Korelujem metriky s nasadením, zaťažením crawlerov a špičkami návštevnosti. Len čísla ukazujú, kde musím utiahnuť skrutky.
Zaznamenávam hlavičky odpovedí, ako je vek a stav vyrovnávacej pamäte CF, aby som mohol vizualizovať úspechy na okraji. Protokoly servera mi hovoria, či vyrovnávacia pamäť stránky funguje správne. Ak sú veľké odchýlky, hľadám súbory cookie, parametre dotazu alebo premenné, ktoré rozdeľujú vyrovnávaciu pamäť. Testujem varianty so stavom prihlásenia a bez neho. Takto môžem rýchlo nájsť úpravy pre stabilnú rýchlosť.
Typické chyby a opravy
Príliš veľa Varianty vo vyrovnávacej pamäti sú častou brzdou. Znižujem parametre dopytu v kľúči a neutralizujem sledovacie parametre. Ďalšou klasikou sú protichodné hlavičky, napríklad no-store spolu s dlhým max-age. Prázdne alebo nesprávne čistenie môže tiež vzbudzovať dojem, že vyrovnávacia pamäť nefunguje. Takéto problémy rýchlo vyriešim pomocou jasných pravidiel a protokolov.
Ďalším problémom sú zásuvné moduly, ktoré zapisujú dynamický obsah pevne zakódovaný do HTML. Takéto prvky presúvam do fragmentovaných koncových bodov, ktoré sa ukladajú do vyrovnávacej pamäte alebo sa načítavajú nezávisle. Súbory cookie často neúmyselne blokujú okrajovú vyrovnávaciu pamäť; nepotrebné súbory cookie odstraňujem hneď na začiatku. Zlé verzovanie núti prehliadače k opakovanému načítavaniu; súbory dôsledne číslujem. Vďaka tomu zostáva potrubie čisté a odolné.
Rozhodovací strom: Kto odpovedá na žiadosť?
Definujem jasnú rozhodovaciu cestu na určenie úrovne, ktorú je povolené dodať. Tým sa zabráni zbytočným zásahom do pôvodu a reprodukovateľne sa zníži TTFB.
- 1) Je zdroj nemenný (súbor s verziou)? Cache prehliadača s dlhým max-age a nemenný.
- 2) Je požiadavka anonymná, GET a bez citlivých súborov cookie? Edge/page cache s public, s-maxage a stale-while-revalidate.
- 3) Obsahuje požiadavka Auth-Cookies, Authorisation-Header alebo je POST? Origin, prípadne s Object-Cache.
- 4) Obsahuje adresa URL iba kozmetické parametre (utm, fbclid)? Odstránim ich z kľúča vyrovnávacej pamäte.
- 5) Potrebujete malé živé časti (napr. počet nákupných košíkov)? Fragmentované prostredníctvom AJAX alebo ESI.
// pseudologika
if (immutable_asset) return browser_cache;
if (is_get && is_anonymous && cacheable) return edge_or_page_cache;
if (needs_fragment) return cached_html + dynamic_fragment;
return origin_with_object_cache; Zvládnutie fragmentácie: ESI, AJAX a čiastočné vykresľovanie
Izolujem dynamické ostrovy, aby zvyšok mohol tvrdo kešovať. ESI je vhodné na injekcie na strane servera (napr. personalizované bloky), AJAX na body načítania na strane klienta. Je dôležité, aby fragmenty dostali vlastné, krátke TTL, aby zostali aktuálne bez zneplatnenia celého dokumentu.
- Statický základný rámec: long TTL, public, s-maxage, stale-while-revalidate.
- Dynamický fragment: krátky TTL, must-revalidate alebo no-store, ak je prispôsobený.
- Prípad chyby: stale-if-error na HTML wrapper zabraňuje vzniku bielych stránok.
// Príklad hlavičky pre obálku HTML
Cache-Control: public, max-age=0, s-maxage=600, stale-while-revalidate=60, stale-if-error=86400
// Príklad hlavičky pre osobný fragment
Cache-Control: private, no-store Vyhnite sa nájazdom na kešky a kontrolujte zahrievanie
Zabraňujem stádovitým efektom, keď veľa súčasných chýbajúcich hráčov zaplaví Pôvod. Moje nástroje sú mäkké TTL/tvrdé TTL, koalescencia požiadaviek a blokovanie. Používam preloadery, ktoré cyklicky zahrievajú mapy stránok alebo dôležité cesty a rozkladajú TTL tak, aby nevypršalo všetko naraz.
- Mäkké TTL: Pracovník môže obnovovať objekty, ktorým vypršala platnosť, zatiaľ čo ostatní konzumenti stále dostávajú neaktuálne objekty.
- Zlučovanie: Súbežné požiadavky na ten istý kľúč sa zlúčia.
- Odstupňované TTL: Kritické stránky dostávajú rozložené časy spustenia, aby sa vyrovnali vlny čistenia.
// Príklad odstupňovaných časov behu
/home, /category/* -> s-maxage=900
/article/* -> s-maxage=1800
/search -> s-maxage=120, stale-while-revalidate=30 Čisté zarovnanie konštrukcie TTL v reťazci
Vyladím TTL prehliadača, okraja a pôvodu tak, aby k overovaniu dochádzalo tam, kde je to najvýhodnejšie. V prípade HTML sa spolieham na s-maxage na okraji a v prehliadači udržiavam nízky max-age, aby som zaručil rýchle čistenie. V prípade aktív to otočím: veľmi dlhé TTL prehliadača, pretože verzovanie zaručuje aktuálnosť.
// HTML
Cache-Control: public, max-age=0, s-maxage=600, stale-while-revalidate=60
// Verzované aktíva
Cache-Control: public, max-age=31536000, immutable Vyhýbam sa protichodným špecifikáciám, ako je no-cache spolu s immutable. Jasné pravidlá vytvárajú konzistentné výsledky v celej hierarchii.
Kompresia, protokol HTTP/2/3 a určovanie priorít
Aktivujem Gzip/Brotli a správne nastavím hlavičku Vary, aby boli varianty čisto oddelené. Pri protokole HTTP/2/3 využívam výhody multiplexovania a prioritizácie; tým sa znižuje blokovanie hlavičky pri paralelnom načítaní mnohých zdrojov.
Príklad # NGINX
gzip zapnutý;
gzip_types text/css application/javascript application/json image/svg+xml;
brotli on;
brotli_types text/css application/javascript application/json image/svg+xml;
add_header Vary "Accept-Encoding" vždy;
# Dlhé TTL prehliadača pre aktíva
location ~* .(css|js|svg|woff2|jpg|png)$ {
expires 1y;
add_header Cache-Control "public, max-age=31536000, immutable";
} Overovanie, súbory cookie a zabezpečenie
Osobný obsah nikdy neukladám do vyrovnávacej pamäte verejne. Požiadavky s autorizačnými hlavičkami alebo súbormi cookie relácie označujem ako súkromné alebo špeciálne obchádzam vyrovnávaciu pamäť. Zároveň vytváram len bielu listinu nevyhnutných súborov cookie, aby kľúč vyrovnávacej pamäte zostal chudobný.
- Oblasti prihlásenia/konta: Kontrola vyrovnávacej pamäte: súkromná alebo bez ukladania.
- Verejné stránky HTML: public, s-maxage; vyhnúť sa nastaveniu cookie.
- Hygiena súborov cookie: Odstránenie nerelevantných súborov cookie (napr. sledovacích) z kľúča.
// Logika podobná VCL
if (req.http.Authorisation) { return(pass); }
if (req.http.Cookie ~ "session=") { return(pass); }
// V kľúči sú len potrebné súbory cookie
unset req.http.Cookie: ".*";
Efektívne ukladanie koncového bodu API a vyhľadávania do vyrovnávacej pamäte
Striktne rozlišujem medzi metódami: GET možno ukladať do vyrovnávacej pamäte, POST zvyčajne nie. Pri častých vyhľadávacích požiadavkách nastavujem krátke hodnoty s-maxage plus stale-while-revalidate, aby som vyhladil čas odozvy. Odpovede s chybami 4xx/5xx ukladám do vyrovnávacej pamäte len krátko alebo vôbec, aby sa opravy prejavili okamžite.
// Príklad hlavičky pre verejné rozhranie API GET
Cache-Control: public, max-age=0, s-maxage=120, stale-while-revalidate=30
// Chyby vo vyrovnávacej pamäti šetrite
Cache-Control: public, s-maxage=10 Pozorovateľnosť: hlavičky, protokoly a kontrola TTFB
Na sprehľadnenie reťazca používam kontrolu hlavičky a protokoly. Vek, indikátory zásahu/nezistenia a stav v reťazci mi ukazujú, kde sa stráca čas. Používam jednoduché nástroje na reprodukovateľnú kontrolu TTFB a vyhľadávanie odľahlých hodnôt.
Opatrenie # TTFB
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}sn" https://example.org
Kontrola hlavičky #
curl -I https://example.org | sed -n '1,20p' # Protokol NGINX so stavom vyrovnávacej pamäte
log_format timed '$remote_addr "$request" $status $body_bytes_sent '
'$upstream_cache_status $upstream_response_time $request_time';
access_log /var/log/nginx/access.log timed; Porovnávam údaje denníka s nasadeniami a čisteniami. Vysoké špičky zmeškania bezprostredne po nasadeniach naznačujú chýbajúce zahrievanie alebo príliš krátke TTL. Ak vek zostáva trvalo nízky, skontrolujem, či súbory cookie neúmyselne neobchádzajú okrajovú vyrovnávaciu pamäť.
Nasadenie: vytváranie verzií a priebežné čistenie
Do názvov súborov zabudovávam verzie (napr. app.9f3c1.js), aby bolo ukladanie do vyrovnávacej pamäte prehliadača agresívne. V prípade HTML používam priebežné čistenie, pri ktorom sa najprv aktualizujú kritické stránky a potom hĺbkové a dlhodobé stránky. Modré/zelené nasadenia oddeľujú zostavenie od vydania a poskytujú mi čas na cielené zahriatie vyrovnávacej pamäte.
// Potrubie aktív
style.[hash].css
app.[hash].js
// HTML vždy odkazuje na nové hashe Plánujem čistiace okná mimo času špičky a bezprostredne po nich monitorujem mieru zásahov. Týmto spôsobom sa vyhnem špičkám v zaťažení systému Origin.
Varianty obrázkov, DPR a responzívne ukladanie do vyrovnávacej pamäte
Varianty obrázkov (veľkosť, formát) generujem deterministicky, aby kľúč vyrovnávacej pamäte zostal stabilný. V prípade variantov WebP/AVIF ich explicitne oddeľujem prostredníctvom cesty k súboru alebo parametrov, a nie iba prostredníctvom hlavičiek Accept, aby som zabránil explóziám Vary. Pre zobrazenia s vysokým rozlíšením (DPR) používam súbory srcset/sizes, ktoré umožňujú prehliadaču vybrať najlepší variant a vyrovnávacej pamäti, aby sa prejavil pre každý konkrétny zdroj.
<img src="img/hero-1024.jpg"
srcset="img/hero-768.jpg 768w, img/hero-1024.jpg 1024w, img/hero-1600.jpg 1600w"
sizes="(max-width: 768px) 90vw, 1024px" alt=""> Udržiavam malý počet variantov na motív a vymazávam neaktuálne veľkosti z potrubia, aby sa vyrovnávacia pamäť nefragmentovala.
Plánovanie kapacity: pamäť cache a veľkosti objektov
Veľkosť vyrovnávacej pamäte určujem podľa skutočných vzorcov prístupu: niekoľko veľkých objektov (obrázky, videá) si vyžaduje iné stratégie ako mnoho malých objektov (HTML, JSON). Nastavujem limity pre maximálnu veľkosť objektov a kontrolujem, či obľúbené objekty zostávajú v pamäti. Vysoká miera opakovaného použitia je dôležitejšia ako absolútna veľkosť; preto orezávam kľúče, zlučujem varianty a zabraňujem duplikátom.
// Príklad: Limity
max_object_size = 10m
default_ttl = 600
nuke_limit = mierny (vysťahovanie bez stánkov) Praktický kontrolný zoznam na implementáciu
Aktivujem OPcache s dostatočnou pamäťou a skontrolujte mieru zásahov. Potom nastavím ukladanie stránok do vyrovnávacej pamäte, vylúčim kritické cesty a vopred načítam dôležité adresy URL. Potom nastavím hlavičky prehliadača s dlhými časmi pre nemenné súbory a verzovanie. V sieti CDN definujem kľúče vyrovnávacej pamäte, TTL a stratégie čistenia a aktivujem funkciu stale-while-revalidate. Nakoniec používam nástroje na meranie, aby som skontroloval, či TTFB, LCP a edge hit rate dosahujú ciele.
Stručné zhrnutie
Používam Ukladanie do vyrovnávacej pamäte hierarchické: OPcache urýchľuje kód, vyrovnávacia pamäť stránky poskytuje HTML, hlavičky prehliadača udržiavajú lokálne zdroje a Edge približuje obsah používateľom. Vďaka jasným kľúčom, vhodným TTL a inteligentnému zneplatňovaniu znižujem zaťaženie servera, šírku pásma a latenciu. Merané hodnoty zabezpečujú pokrok a ukazujú potenciál optimalizácie. Vytvára sa tak spoľahlivý reťazec od pôvodu až po koncové zariadenie. Každý, kto hľadá ďalšie podrobnosti o globálnom doručovaní, nájde v praxi dostatok východísk na to, aby svoju vlastnú architektúru citeľne zrýchlil.


