2026 m. lapkričio 10 d. | Nuosava plėtra | Odoo, našumas ir paieškos sistemos
„Odoo“ svetainė kiekvieną puslapį kiekvieno atidarymo metu generuoja iš naujo: duomenų bazės užklausos, šablonai, vertimai, kainos. Vienam lankytojui to beveik nepastebima. Tačiau kai paieškos sistemos ir DI indeksuokliai nuskaito šimtus ar tūkstančius puslapių įvairiomis kalbomis, tai virsta nuolatine apkrova, o kartu priversti laukti ir tikri klientai. Todėl sukūrėme Odoo 19 modulį website_page_cache ir paskelbėme jį GitHub kaip atvirąjį kodą (LGPL-3): anonimiškai atidaromi parduotuvės ir tinklaraščio puslapiai pateikiami beveik kaip statiniai iš talpyklos – arba iš failų, arba iš operatyviosios atminties (RAM), o bet koks pakeitimas – taip pat ir vertimo – paveiktus puslapius automatiškai vėl pašalina iš talpyklos.
Svarbu visiems, kurie nori būti randami: modulis neblokuoja nei paieškos sistemų, nei DI šliaužiklių. Visi indeksuokliai gauna tą patį turinį kaip ir bet kuris lankytojas, tik greičiau. Šiame straipsnyje paaiškinama, kaip veikia talpykla, kaip atrodo skydelis (su ekrano nuotraukomis), kaip nustatyti, ar jūsų puslapiai telpa į operatyviąją atmintį ir kiek papildomos RAM prireiktų, kokios saugumo taisyklės galioja ir kaip įdiegti modulį.
Straipsnio turinys
- Santrauka
- Problema: šliaužiklių apkrova Odoo svetainėms
- Kaip veikia puslapių talpykla
- Failai ar RAM: saugojimo vietos pasirinkimas
- Ar svetainė telpa į operatyviąją atmintį? Ir kiek RAM trūksta?
- Pakeitimai ir vertimai išvalo talpyklą
- Skydelis ir statistika
- Saugumas: kas niekada neateina iš talpyklos
- Paieškos sistemos ir DI indeksuokliai: niekas neblokuojama
- HTML sumažinimas ir suspaustas pateikimas
- Diegimas ir nustatymai
- Apribojimai, kuriuos verta žinoti
- Dažni klausimai
- Pagalba iš Biricon IT Services
Santrauka
| Tema | Tai galioja |
|---|---|
| Modulis | website_page_cache, skirtas Odoo 19, licencija LGPL-3, viešai prieinamas GitHub |
| Kas talpinama? | Vieši parduotuvės ir tinklaraščio puslapiai (sąrašai, kategorijos, produktai, straipsniai) visomis kalbomis kiekvienoje svetainėje |
| Kam? | Tik anonimiškiems lankytojams, tik GET užklausoms be paieškos parametrų, tik būsenos kodui 200 su HTML |
| Saugojimo vieta | Failai diske arba RAM (tmpfs, bendras visiems darbiniams procesams); automatiškai pagal reikiamą vietą |
| Aktualumas | Kiekvienas pakeitimas (taip pat vertimai, importai, skriptai) per duomenų bazės trigerį sukuria žurnalo įrašą ir paveiktus puslapius paskelbia nebegaliojančiais |
| Skydelis | Nustatymai, būsena, statistika (pataikymai, nepataikymai, sutaupytas serverio laikas) ir patikra „Ar telpa į operatyviąją atmintį?“, įskaitant „papildomai reikalingą RAM“ |
| Paieškos sistemos ir DI | Niekas neblokuojama ir nevaržoma; visi gauna tuos pačius puslapius, tik greičiau |
| Avarinis stabdis | Vienas jungiklis (enabled = 0) per 30 sekundžių išjungia talpyklą visuose darbiniuose procesuose |
Problema: šliaužiklių apkrova Odoo svetainėms
Odoo yra pilnavertė ERP sistema, o svetainė – tik vienas iš daugelio modulių. Kiekvienas puslapis, kurį atidaro lankytojas ar robotas, eina tuo pačiu keliu: apdorojama užklausa, kreipiamasi į duomenų bazę, įkeliami produktų ir kainų duomenys, atvaizduojamas QWeb šablonas, įterpiami vertimai ir pateikiamas rezultatas. Priklausomai nuo puslapio tai trunka kelis šimtus milisekundžių ir visą tą laiką užima vieną iš nedaugelio darbinių procesų.
Paieškos sistemoms ir DI indeksuokliams tai nuolatinė tema:
- Daug kalbų, daug adresų: puslapis, egzistuojantis 46 kalbomis, šliaužikliui yra 46 skirtingi adresai.
- Kiekvienas adresas nuskaitomas atskirai, dažnai vienu metu iš daugelio paskirstytų siuntėjų. Įprasta naršyklės talpykla čia nepadeda, nes kiekviena užklausa skirta naujam adresui.
- Mažai darbinių procesų: Odoo tarnyba paprastai veikia su saujele procesų. Jei jie užimti šliaužiklių užklausų, tikri lankytojai laukia eilėje.
- Tas pats turinys, vėl ir vėl iš naujo: tinklaraščio straipsnis keičiasi retai, bet kiekvieno atidarymo metu sudėtingai surenkamas iš naujo.
Akivaizdus išsigelbėjimas – užblokuoti šliaužiklius – įmonei, norinčiai būti randamai, nėra variantas. Matomumas paieškos sistemose ir DI atsakymuose yra vertingas. Geriau puslapius pateikti taip greitai, kad apkrova beveik nebesvarbi. Būtent tai ir daro puslapių talpykla.
Kaip veikia puslapių talpykla
Modulis prisijungia prie Odoo užklausų įėjimo (ir.http). Kiekvieno puslapio atidarymo metu per milisekundės dalį jis nusprendžia, ar puslapį leidžiama pateikti iš talpyklos, ir tada pateikia jį be duomenų bazės, be šablono ir be atvaizdavimo.
- Patikra: Galimas tik anonimiškas
GETužklausas be paieškos parametrų leidžiamu keliu (parduotuvė, kategorijos, produktai, tinklaraštis). Viskas kita eina kaip įprasta per Odoo. - Talpyklos raktas: Jį sudaro svetainė, pagrindinio kompiuterio klasė, kalba, kelias, kainoraštis, mokesčių pozicija ir sutikimo dėl slapukų būsena. Todėl lankytojai, kurie matytų kažką kita, niekada nesidalija vienu įrašu. Pagrindinio kompiuterio vardas normalizuojamas: Odoo absoliučius adresus visada rašo iš svetainės domeno, o ne iš užklausos; užklausos adresas lemia tik tai, ar puslapis laikomas pagrindiniu adresu (kalbų nuorodos) ir ar jį reikia indeksuoti. Todėl visi svetimi pagrindinio kompiuterio vardai dalijasi vienu įrašu kartu su
noindexnurodymu, užuot užėmę po atskirą kopiją. - Pataikymas: Jei yra aktualus įrašas, jis pateikiamas. CSRF žetonas puslapyje kiekvienai užklausai nustatomas iš naujo. Tinklaraščio straipsnių atidarymai ir toliau skaičiuojami.
- Nepataikymas: Jei įrašo nėra arba jis pasenęs, Odoo puslapį atvaizduoja kaip įprasta. Jei rezultatą galima talpinti (būsena 200, HTML, be slapuko, be sesijos ID tekste), jis išsaugomas; kitas atidarymas yra pataikymas.
- Matoma antraštėje: Kiekvienas atsakymas turi antraštę
X-Page-Cache: HITarbaMISS. Taip bet kuria priemone galima patikrinti, kas įvyko.
Kiek greičiau?
Mūsų bandomojoje sistemoje (mūsų svetainių kopija, keli šimtai puslapių) vidutinis puslapio atvaizdavimo laikas buvo maždaug 490 milisekundžių, o pateikimas iš talpyklos – maždaug 23 milisekundės: apie dvidešimt kartų greičiau. Kuo sudėtingesnis puslapis, tuo didesnė nauda. Skydelis iš abiejų verčių taip pat apskaičiuoja apytikslį sutaupytą serverio laiką.
Failai ar RAM: saugojimo vietos pasirinkimas
Talpykla turi dvi saugojimo vietas. Abi yra bendrai matomos visiems Odoo darbiniams procesams, todėl kiekvienas puslapis egzistuoja tik vieną kartą, o ne po vieną kiekviename procese.
| Nustatymas | Kur laikomi puslapiai? | Savybės |
|---|---|---|
| Failai | Katalogas Odoo duomenų aplanke, atskirai kiekvienai duomenų bazei | išlieka po paleidimo iš naujo; operacinė sistema dažnai naudojamus puslapius vis tiek laiko atmintyje |
| Operatyvioji atmintis | tmpfs aplanke /dev/shm | greičiausias pateikimas; serverį paleidus iš naujo prarandama ir tiesiog sukuriama iš naujo |
| Automatiškai | RAM, kol viskas telpa; kitu atveju failai | Priežiūros užduotis (kas 10 minučių) sprendžia pagal įvertį; esant „telpa“ ir „ankštoka“ lieka RAM, kad pasirinkimas nuolat nesikeistų |
Daugumai diegimų Automatiškai yra tinkamiausias pasirinkimas: gaunate RAM greitį, kai vietos pakanka, o kitu atveju be jūsų įsikišimo grįžtama prie failų.
Ar svetainė telpa į operatyviąją atmintį? Ir kiek RAM trūksta?
Ar įmanoma RAM talpykla, priklauso nuo trijų dalykų: puslapių skaičiaus, jų vidutinio dydžio ir turimos atminties. Skydelis tai paskaičiuoja už jus:
- Puslapių skaičius: kiekvienai svetainei jis suskaičiuoja paskelbtus produktus, parduotuvės sąrašo puslapius, kategorijas, tinklaraščio straipsnius ir tinklaraščio sąrašus bei padaugina iš kalbų skaičiaus.
- Puslapio dydis: kai tik talpykloje atsiranda puslapių, išmatuojamas tikrasis vidurkis; iki tol naudojama prielaidos reikšmė.
- Vieta talpyklai: mažiausia iš nustatyto RAM biudžeto, tmpfs dydžio ir pusės turimos operatyviosios atminties. Dėl talpyklos serveriui niekada neturi pritrūkti atminties.
- Vertinimas: „telpa su atsarga“, „ankštoka“, „per didelė“ arba „RAM talpykla nepasiekiama“. „Telpa“ galioja, kai poreikis neviršija 80 procentų turimos vietos.
Nauja: kiek papildomos RAM prireiktų?
Kai talpykla netelpa, norima žinoti, ką reikia pakeisti. Todėl skydelis po vertinimu nurodo konkrečią eilutę: „Papildoma RAM RAM talpyklai: maždaug … daugiau operatyviosios atminties šiame serveryje“ – arba „nereikia“, jei vietos jau pakanka. Jei per mažas ne serveris, o tik koks nors nustatymas, žemiau nurodoma, kuris: modulio RAM biudžetas arba tmpfs dydis (/dev/shm).
Skaičiavimas paprastas ir lengvai atsekamas:
- Poreikis = puslapiai × vidutinis puslapio dydis.
- Su atsarga = poreikis, padalytas iš 0,8. Ši reikšmė turi tilpti į RAM biudžetą ir tmpfs, kad vertinimas būtų „telpa“.
- Laisva atmintis: kadangi talpykla gali naudoti ne daugiau kaip pusę turimos operatyviosios atminties, serveriui kaip laisvos turimos atminties reikia bent dvigubos 2 žingsnio reikšmės. Jei ko nors trūksta, skirtumas yra papildomai reikalinga RAM.
Paveikslėlyje pateiktas pavyzdys (12 000 puslapių po 25 KB) yra skaičiavimo pagalbinė priemonė, o ne mūsų puslapių matavimas. Mažoms svetainėms pakanka kelių dešimčių megabaitų; ekrano nuotraukų pavyzdiniams duomenims pakako maždaug 13 MB.
Svarbu įvertinti: įvertis neskaičiuoja papildomų kainoraščių ar šalių versijų. Kas jų naudoja daug, turėtų numatyti šiek tiek atsargos. Ir dar: per mažas RAM biudžetas yra dažniausia priežastis, kodėl automatika lieka prie failų – o ne operatyviosios atminties trūkumas. Skydelis tokiu atveju rodo būtent šią eilutę.
Pakeitimai ir vertimai išvalo talpyklą
Talpykla naudinga tik tada, jei niekada nepateikia pasenusių puslapių. Vien laiko limitas („atmesti kas dvylika valandų“) būtų pernelyg grubus: pakeista kaina ar ištaisyta klaida turėtų laukti iki dvylikos valandų. Todėl modulis veikia pagal turinį.
- Duomenų bazės trigeriai: Visose lentelėse, galinčiose paveikti puslapį (produktai, variantai, paveikslėliai, atsargos, atributai, kategorijos, kainos, mokesčiai, kainoraščiai, tinklaraščio straipsniai ir žymos, partnerių ir įmonių duomenys, rodiniai, ištekliai, meniu, kalbos, svetainės nustatymai), įdiegti PostgreSQL trigeriai. Jie kiekvieną pakeitimą įrašo į pakeitimų žurnalą.
- Priklausomybės ir duomenų bazės būsena: Kiekvienas talpykloje esantis puslapis įsimena, kuriuos įrašus jis rodo, ir duomenų bazės būseną, kuria remiantis jis sukurtas.
- Palyginimas: Jei yra žurnalo įrašas, atsiradęs po šios būsenos ir susijęs su vienu iš tų įrašų, puslapis yra pasenęs.
- Talpinti iš naujo: Kitą kartą atidarius pasenęs puslapis atmetamas, atvaizduojamas iš naujo ir vėl išsaugomas.
Vertimai taip pat apimti
Odoo 19 išverstus tekstus saugo tame pačiame įraše kaip ir originalų tekstą (kaip JSON lauką). Todėl pakeistas vertimas duomenų bazei yra visiškai įprastas eilutės pakeitimas – ir trigeris jį mato. Tai vienodai galioja redaguojant per sąsają, importuojant, per sąsajas ir skriptus, rašančius tiesiai į duomenų bazę. Taigi automatinis 46 kalbų vertimas paskelbia nebegaliojančiais būtent tuos puslapius, kurių tekstas pasikeitė, ir ne daugiau.
- Tikslingai, o ne bendrai: Pakeistas produktas paskelbia nebegaliojančiais jo puslapius, sąrašus, kuriuose jis yra, ir susijusią kategoriją. Likusi dalis lieka talpykloje.
- Visuotiniai pakeitimai (šablonai, ištekliai, kalbos, meniu, mokesčiai, valiutos) paskelbia nebegaliojančiu viską iš karto, nes gali paveikti kiekvieną puslapį.
- Skaitikliai nevertinami: Tinklaraščio straipsnių peržiūrų skaitiklis keičiasi su kiekvienu apsilankymu; jis sąmoningai neišjungia galiojimo, kitaip talpykla populiariems straipsniams būtų bevertė.
- Saugos tinklas: Be to, kiekvienam puslapiui nustatytas didžiausias amžius (pagal numatytuosius nustatymus 12 valandų).
- Talpykla nesukelia rašymo klaidų: Klaida trigerio viduje užregistruojama kaip įspėjimas ir nesutrukdo tikrajam išsaugojimui.
Skydelis ir statistika
Viskas, ko reikia eksploatacijai, yra vienoje vietoje: Odoo meniu Svetainė → Ataskaitos → Puslapių talpykla. Skyrius Apžvalga yra skydelis (su nustatymais), skyrius Istorija rodo skaičius pagal dieną ir svetainę.
Ekrano nuotrauka iš bandomosios sistemos su mūsų svetainių kopijomis; svetainių pavadinimai pakeisti vietos žymėmis.
Nustatymai
| Nustatymas | Reikšmė |
|---|---|
| Aktyvu | Pagrindinis jungiklis. Išjungus, Odoo vėl pateikia kiekvieną puslapį kaip anksčiau, visuose procesuose ne vėliau kaip po 30 sekundžių. |
| Saugojimo vieta | Automatiškai, failai arba operatyvioji atmintis |
| Didžiausias amžius (valandomis) | Saugos tinklas; puslapiai nepriklausomai nuo pakeitimų atnaujinami praėjus šiam laikui |
| RAM biudžetas (MB) | Tiek operatyviosios atminties daugiausia gali užimti RAM talpykla; kartu tai yra vertinimo „telpa“ riba |
| Disko riba (MB) | Didžiausias failų talpyklos dydis; seniausi įrašai pašalinami pirmiausia |
Būsena ir statistika
Būsena rodo aktyvią saugojimo vietą su riba, talpinamų puslapių skaičių ir dydį bei pakeitimų sekimą: kiek pakeitimų užregistruota per pastarąsias 24 valandas ir kiek lentelių stebima. Jei kurios nors lentelės stebėjimo trūksta, skydelis aiškiai įspėja, nes tada talpykla nebegali būti laikoma patikima. Viršuje esantys mygtukai leidžia nedelsiant paleisti priežiūrą, išvalyti talpyklą arba patikrinti trigerius ir prireikus juos sukurti iš naujo.
Statistika (Šiandien, 7 dienos, 30 dienų) apima:
- Iš talpyklos ir Atvaizduota: pataikymai ir nepataikymai, iš jų pataikymų dalis
- Pašalinta (pakeista/pasibaigė): kiek puslapių atmesta dėl pakeitimo ar galiojimo pabaigos
- Atvaizdavimo laikas ir talpyklos laikas: vidutinės vieno puslapio reikšmės palyginimui
- Apytikslis sutaupytas serverio laikas ir duomenų kiekis iš talpyklos
Skaičius kiekvienas darbinis procesas renka atskirai ir įrašo kartą per minutę; senesnes nei 90 dienų eilutes pašalina priežiūros užduotis.
Istorija kaip diagrama, suvestinė ir sąrašas
Skiltyje Istorija pateikiamos dienos reikšmės pagal svetainę – kaip diagrama, suvestinė lentelė arba sąrašas. Taip matote, ar pataikymų dalis vėl didėja po paleidimo iš naujo ar didelio pakeitimo ir kuri svetainė gauna daugiausia srauto iš talpyklos.
Saugumas: kas niekada neateina iš talpyklos
Puslapių talpykla niekada negali lemti, kad kas nors pamatytų kito asmens turinį. Todėl modulis laikosi principo: kilus abejonių netalpinti.
- Tik anonimiški lankytojai: Prisijungęs, krepšelį turintis ar kitą sesijos būseną atsinešęs lankytojas visada gauna įprastai atvaizduotą puslapį.
- Tik
GETbe paieškos parametrų: Paieška, filtrai, rūšiavimas, formos, krepšelis ir apmokėjimas lieka nepaliesti. - Tik būsena 200 ir HTML: Klaidų puslapiai, nukreipimai ir failai neišsaugomi.
- Jokių sesijos ID talpykloje: Puslapis, kuriame yra sesijos ID arba kuris nustato slapuką, neišsaugomas (ir užregistruojamas kaip įspėjimas).
- CSRF žetonas kiekvienai užklausai: Žetonas talpinamame puslapyje yra vietos žyma ir kiekvieno pateikimo metu įterpiamas iš naujo.
- Smulkus raktas: Svetainė, kalba, kainoraštis, mokesčių pozicija ir sutikimas dėl slapukų sudaro talpyklos raktą; kas mato kitaip, gauna kitą įrašą.
- Kelios duomenų bazės: Kiekviena duomenų bazė turi savo įrašus, savo žurnalą ir savo statistiką.
- Jokio duomenų nutekėjimo: Talpykla yra vietoje serveryje (failai arba RAM). Jokie duomenys trečiosioms šalims neperduodami.
Paieškos sistemos ir DI indeksuokliai: niekas neblokuojama
Kai kurie operatoriai į šliaužiklių apkrovą reaguoja blokavimu. Tai apsaugo serverį, bet kainuoja matomumą. Modulis pasirenka priešingą kelią:
- Tas pats turinys visiems: Paieškos sistemos, DI indeksuokliai ir lankytojai gauna tą patį puslapį. Nėra atskiros „šliaužiklio versijos“ ir atpažinimo pagal naršyklės identifikatorių.
- Greitesni atsakymai padeda indeksavimui: Puslapis, atsakantis per 20, o ne per 500 milisekundžių, mažiau apkrauna šliaužimo biudžetą, o šliaužikliai per tą patį laiką gali aprėpti daugiau puslapių.
- Aktualus turinys: Kadangi pakeitimai puslapius iškart paskelbia nebegaliojančiais, šliaužikliai niekada nemato pasenusios versijos – tai svarbu, jei prižiūrite turinį paieškai ir DI atsakymams.
- Struktūriniai duomenys išsaugomi: JSON-LD, meta duomenys ir
hreflangnuorodos yra talpinamo puslapio dalis; svetainių žemėlapių ir failų talpykla neliečia.
Jei papildomai norite apriboti apkrovą, tai atskiras sprendimas, kurį galite priimti sąmoningai – modulis jo jums neprimeta.
HTML sumažinimas ir suspaustas pateikimas
Talpykla taupo ne tik skaičiavimo laiką, bet ir duomenų apimtį. Modulis sumažina HTML prieš jį išsaugodamas ir pateikia suspaustą, jei naršyklė ar šliaužiklis tai palaiko:
- Sumažinimas (parametras
website_page_cache.minify): HTML komentarai pašalinami, tarpai sujungiami. Visiškai jie pašalinami tik ten, kur naršyklė jų vis tiek nepaiso, pavyzdžiui, tarp blokinių elementų. Tarpai tarp įterptinių elementų išlieka,pre,textareair skriptai lieka nepakeisti, struktūriniai duomenys (JSON-LD) perrašomi kompaktiškai. Priklausomai nuo puslapio, jie sumažėja 10–30 %. Bandant su septyniais tikrais puslapiais tekstas, elementų skaičius, visų elementų padėtis ir ekrano nuotrauka sutapo su originalu. Pirmasis pateikimas (MISS) sumažintas lygiai taip pat kaip ir visi vėlesni (HIT). - Suspaudimas (parametras
website_page_cache.compress): Puslapiai iš talpyklos siunčiami su gzip (Content-Encoding: gzip,Vary: Accept-Encoding). Dideles išteklių pakuotes (CSS ir JavaScript, iki kelių MB) Odoo pateikia nesuspaustas; modulis jas vieną kartą suspaudžia, kopiją išsaugo diske ir vėliau pateikia tiesiogiai. Iš 2,1 MB CSS taip gauta 0,27 MB, iš 4,8 MB JavaScript – 1,1 MB. Senas kopijas išvalo priežiūros užduotis. - Po kompiuterio paleidimo iš naujo: RAM talpykla išlieka paleidžiant Odoo iš naujo, bet ne paleidžiant iš naujo serverį. Todėl priežiūros užduotis palaipsniui kopijuoja ją į diską (parametras
website_page_cache.persist) ir paleidimo metu atkuria. Ar atkurtas įrašas vis dar galioja, tikrina tas pats mechanizmas kaip ir kitais atvejais: amžius ir pakeitimų žurnalas. Sumažinimas čia iš naujo neskaičiuojamas.
Diegimas ir nustatymai
- Gaukite modulį: atsisiųskite šaltinio kodą iš GitHub ir padėkite jį į savo Odoo 19 diegimo addons kelią: github.com/Alex0176/odoo-website-page-cache
- Įdiekite:
odoo-bin -d <Datenbank> -i website_page_cache --stop-after-init. Taip sukuriamas pakeitimų žurnalas, trigeriai ir priežiūros užduotis (kas 10 minučių). - Paleiskite tarnybą iš naujo, kad visi darbiniai procesai įkeltų modulį.
- Atidarykite skydelį: Svetainė → Ataskaitos → Puslapių talpykla. Patikrinkite, ar pakeitimų sekimas išsamus, ir pasirinkite saugojimo vietą (numatytoji: automatiškai).
- Patikrinkite: Parduotuvės ar tinklaraščio puslapį atidarykite du kartus ir pažiūrėkite antraštę
X-Page-Cache: pirmą kartąMISS, po toHIT.
Nustatymai saugomi kaip sistemos parametrai (website_page_cache.enabled, .backend, .ttl_hours, .max_mb_file, .max_mb_ram) ir paprastai tvarkomi skydelyje. Modulis išverstas į vokiečių kalbą. Pašalinus visiškai pašalinami trigeriai, žurnalas ir visi talpinami puslapiai.
Patarimas RAM talpyklai: RAM biudžetas skydelyje ir tmpfs dydis (/dev/shm, prijungimo parinktis size=) turi atitikti poreikį. Abu dydžius su konkrečiomis reikšmėmis nurodo patikra „Ar telpa į operatyviąją atmintį?“.
Apribojimai, kuriuos verta žinoti
- Trumpas vėlavimas po pakeitimų: Pakeitimų žurnalo indeksas atnaujinamas kas dvi sekundes. Iki tol pakeistas puslapis dar gali būti pateikiamas sena versija.
- Nuo atsargų priklausomi tekstai atnaujinami per atsargų pakeitimus ir didžiausią amžių.
- Vietos poreikio įvertis: Papildomos versijos pagal kainoraštį ar šalį neįskaičiuotos; numatykite šiek tiek atsargos.
- Ne visko pakaitalas: Talpykla palengvina užklausas, kurias gali aptarnauti. Prisijungę naudotojai, paieškos ir formos ir toliau eina per Odoo.
- Pirmas atidarymas lieka lėtas: Po serverio paleidimo iš naujo (RAM) arba visuotinio pakeitimo kiekvienas puslapis vieną kartą atvaizduojamas įprastai, kol atsiduria talpykloje.
Dažni klausimai
Kas yra Odoo puslapių talpykla?
Atvirojo kodo modulis (website_page_cache, Odoo 19, LGPL-3), kuris viešus parduotuvės ir tinklaraščio puslapius anonimiškiems lankytojams pateikia iš talpyklos, užuot kiekvieną kartą atvaizdavęs iš naujo. Talpykla laikoma pasirinktinai failuose arba operatyviojoje atmintyje.
Ar modulis blokuoja paieškos sistemas ar DI šliaužiklius?
Ne. Paieškos sistemos ir DI indeksuokliai gauna tuos pačius puslapius kaip ir bet kuris kitas lankytojas, tik greičiau. Nėra nei blokavimo, nei apribojimo, nei atskiros šliaužiklio versijos.
Ar pakeisti puslapiai ir vertimai automatiškai talpinami iš naujo?
Taip. PostgreSQL trigeriai kiekvieną svarbių lentelių pakeitimą praneša žurnalui; paveikti puslapiai atmetami ir kitą kartą atidarius atvaizduojami iš naujo bei išsaugomi. Vertimai apimti, nes Odoo 19 juos saugo tame pačiame įraše.
Ką rinktis: failus ar RAM?
Paprastai Automatiškai: modulis naudoja RAM, kol telpa visi puslapiai, o kitu atveju pereina prie failų. Failai tinka, kai talpykla turi išlikti po paleidimo iš naujo arba RAM trūksta; RAM yra greičiausias variantas.
Kaip sužinoti, ar mano svetainė telpa į operatyviąją atmintį?
Skydelyje: Svetainė → Ataskaitos → Puslapių talpykla. Skyrius „Ar telpa į operatyviąją atmintį?“ suskaičiuoja puslapius pagal svetainę ir kalbą, išmatuoja puslapio dydį ir palygina poreikį su RAM biudžetu, tmpfs dydžiu ir turima atmintimi.
Kiek papildomos RAM reikia RAM talpyklai?
Skydelis tai nurodo atskira eilute. Skaičiuojama taip: poreikis = puslapiai × puslapio dydis; su saugos atsarga padalijama iš 0,8. Kadangi talpykla gali naudoti ne daugiau kaip pusę turimos atminties, to dvigubas dydis yra reikalinga laisva atmintis; skirtumas yra papildoma RAM. Jei per mažas tik RAM biudžetas arba tmpfs, skydelis nurodo nustatymą kartu su tikslo reikšme.
Ar talpykla gali kam nors parodyti svetimą turinį?
Ne. Talpinama tik anonimiškoms GET užklausoms be paieškos parametrų. Prisijungę naudotojai, krepšeliai, formos ir paieškos niekada neateina iš talpyklos; kalba, kainoraštis, mokesčių pozicija ir sutikimas dėl slapukų yra rakto dalis.
Kaip avariniu atveju išjungti talpyklą?
Skydelyje išjunkite jungiklį „Aktyvu“ arba sistemos parametrą website_page_cache.enabled nustatykite į 0. Tai galioja visuose darbiniuose procesuose ne vėliau kaip po 30 sekundžių. Pašalinus modulį taip pat pašalinami trigeriai, žurnalas ir talpinami puslapiai.
Kaip atpažinti, ar puslapis atėjo iš talpyklos?
Pagal atsakymo antraštę X-Page-Cache: HIT reiškia iš talpyklos, MISS reiškia šviežiai atvaizduota ir išsaugota.
Ar modulis sumažina ir suspaudžia HTML?
Taip. Talpinami puslapiai atsargiai sumažinami (komentarai ir nereikalingi tarpai pašalinami, turinys ir išvaizda nesikeičia), o pataikymų atveju pateikiami su gzip; išteklių pakuotės vieną kartą suspaudžiamos ir pateikiamos iš disko. Abu dalykus galima išjungti parametrais website_page_cache.minify ir website_page_cache.compress.
Pagalba iš Biricon IT Services
Jūsų Odoo svetainė lėtai reaguoja esant šliaužiklių apkrovai arba norite, kad parduotuvė ir tinklaraštis būtų greitesni ir labiau matomi? Padedame analizuojant apkrovą, įdiegiant puslapių talpyklą, nustatant operatyviosios atminties ir darbinių procesų dydį bei daugiakalbėje paieškos sistemų optimizacijoje jūsų Odoo svetainei. Modulio šaltinio kodą rasite GitHub.
Būklė: 2026 m. lapkričio 10 d. Matavimo rezultatai gauti iš bandomosios sistemos su pavyzdiniais duomenimis ir nėra pažadas kitiems diegimams.