Röviden: A rossz cache key és a hibás TTL megöli a CDN értékét, és feleslegesen terheli az origint. Néhány beállítás, amivel a találati arány — és a számla — helyre kerül.
A tartalomelosztó hálózat (CDN) egyszerű ígérete, hogy a tartalmat a felhasználóhoz közel gyorsítótárazza, így csökken a késleltetés és az origin terhelése. A gyakorlatban sok CDN úgy fut, hogy alig gyorsítótáraz bármit — a kérések nagy része átmegy az originre —, és senki nem érti, miért lassú és drága, ha egyszer „be van kapcsolva a CDN”. A hiba szinte mindig a cache key és a TTL beállításában van.
Miért nem talál a cache?
A CDN akkor tud kiszolgálni a gyorsítótárból, ha felismeri, hogy egy kérés ugyanaz, mint egy korábbi. Ezt a cache key dönti el. Ha a cache key túl sok mindent tartalmaz — például minden fejlécet, minden sütit, minden query paramétert —, akkor gyakorlatilag minden kérés egyedinek számít, és sosem lesz találat. A CDN ilyenkor csak egy drága átjáró az originhez.
A cache key karcsúsítása
- Vedd ki a cache keyből azt, ami nem befolyásolja a választ (irreleváns sütik, tracking-paraméterek).
- Tartsd meg azt, ami tényleg más választ ad (nyelv, verzió, ami valóban variálja a tartalmat).
- A statikus tartalomnál a lehető legegyszerűbb cache key a cél — sokszor csak az útvonal.
A TTL: meddig érvényes a másolat?
A másik gyakori hiba a túl rövid vagy be sem állított TTL (élettartam). Ha a tartalom másodpercekig él a cache-ben, a CDN folyamatosan visszakérdez az originhez, és az előny elolvad. A statikus, ritkán változó tartalomnak hosszú TTL-t adj; a dinamikusnak rövidebbet vagy célzott érvénytelenítést.
| Tartalomtípus | Javasolt TTL | Megjegyzés |
|---|---|---|
| Verziózott statikus fájl | Nagyon hosszú | A név változik verziónként |
| Ritkán változó oldal | Hosszú | Érvénytelenítés kiadáskor |
| Gyakran változó adat | Rövid | Vagy ne cache-eld |
| Személyre szabott | Ne cache-eld | Vagy edge-en számold |
A verziózott fájlnév trükkje
A statikus eszközöknél (JS, CSS, kép) a legjobb minta a tartalom-hash a fájlnévben. Így a fájl gyakorlatilag örökre gyorsítótárazható, mert ha a tartalom változik, a neve is változik — új URL, új cache-bejegyzés. Nem kell érvénytelenítéssel bajlódni, és a találati arány közel száz százalék lehet.
Mérd a találati arányt
A CDN egészségének legjobb egyetlen mutatója a cache-találati arány. Ha ez alacsony, akkor a CDN nem végzi a dolgát: a felhasználók lassan kapják a tartalmat, és az origined feleslegesen terhelt. Ezt a mutatót érdemes folyamatosan figyelni, mert egy rossz kiadás vagy egy elrontott beállítás azonnal leviheti — és vele a teljesítményt meg a költséghatékonyságot is.
A cache key mérnöki finomítása
A CDN teljesítményének kulcsa a cache key gondos megtervezése. A cache key dönti el, mikor tekint a CDN két kérést azonosnak — és ha túl sok mindent tartalmaz (minden fejléc, minden süti, minden query paraméter), akkor gyakorlatilag minden kérés egyedi lesz, és sosem lesz találat. A cél a minimális cache key: csak az, ami tényleg befolyásolja a választ.
A leggyakoribb gyilkos a nyomkövető query paraméter: ha minden marketinglink más paraméterrel érkezik, és ezek a cache keybe kerülnek, akkor ugyanaz az oldal ezerféle egyedi bejegyzésként tárolódik. Ezeket ki kell szűrni a cache keyből — a tartalom szempontjából irrelevánsak.
A TTL és a verziózás összjátéka
A statikus eszközöknél (JS, CSS, kép) a legjobb minta a tartalom-hash a fájlnévben. Így a fájl gyakorlatilag örökre gyorsítótárazható, mert ha a tartalom változik, a neve is változik — új URL, új cache-bejegyzés. Nem kell érvénytelenítéssel bajlódni, és a találati arány közel száz százalék lehet.
- Verziózott, hash-elt fájlnevek a statikus eszközökhöz.
- Hosszú TTL a ritkán változó tartalomhoz.
- Rövid TTL vagy célzott érvénytelenítés a dinamikushoz.
Az origin védelme
A jól beállított CDN nemcsak gyorsít, hanem védi az origint is. Magas találati aránynál a kérések nagy része a peremen kiszolgálódik, és az origin csak a cache-miss forgalmat kapja. Ez teljesítménytartalékot és költségmegtakarítást is jelent (kevesebb origin-terhelés, kevesebb egress). Ha az origined váratlanul terhelt, gyakran a rossz cache-beállítás a magyarázat — nem a valós forgalomnövekedés.
Mit jelent ez neked?
A CDN csak akkor ér valamit, ha tényleg talál a gyorsítótárban. Karcsúsítsd a cache keyt — dobd ki a tracking-paramétereket és az irreleváns sütiket —, adj hosszú TTL-t a statikus tartalomnak, és használj tartalom-hasht a fájlnevekben. Figyeld a találati arányt mint egészségmutatót: ha alacsony, a CDN csak egy drága átjáró. A jól beállított cache egyszerre gyorsabb élményt és alacsonyabb origin-terhelést ad.