Siirry sisältöön

Sivuvälimuisti Odoolle: kauppa ja blogi RAM-muistista tai tiedostosta – nopeaa kävijöille, hakukoneille ja tekoälylle

Avoimen lähdekoodin moduuli website_page_cache toimittaa julkiset Odoo-sivut lähes staattisina, pysyy ajan tasalla muutosten ja käännösten yhteydessä ja näyttää koontinäytössä, tarvitaanko RAM-muistia ja kuinka paljon
10. marraskuuta 2026 kirjoittanut
Sivuvälimuisti Odoolle: kauppa ja blogi RAM-muistista tai tiedostosta – nopeaa kävijöille, hakukoneille ja tekoälylle

10. marraskuuta 2026  |  Oma kehitystyö  |  Odoo, suorituskyky ja hakukoneet

Sivuvälimuisti Odoo-verkkosivustoille: julkiset kaupan ja blogin sivut tiedostosta tai RAM-muistista sen sijaan, että ne renderöidään uudelleen jokaisella haulla

Odoo-verkkosivusto renderöi jokaisen sivun uudelleen jokaisella kutsulla: tietokantakyselyt, mallipohjat, käännökset, hinnat. Yksittäiselle kävijälle tämä ei ole havaittavaa. Kun hakukoneet ja tekoälyindeksoijat kuitenkin hakevat satoja tai tuhansia sivuja monella kielellä, siitä tulee jatkuva kuormitus, ja myös oikeat asiakkaat joutuvat odottamaan. Kehitimme tätä varten Odoo 19 -moduulin website_page_cache ja julkaisimme sen GitHubissa avoimena lähdekoodina (LGPL-3): nimettömänä avatut verkkokaupan ja blogin sivut tulevat välimuistista lähes staattisina, joko tiedostoista tai keskusmuistista (RAM), ja jokainen muutos – myös käännöksen – poistaa asianomaiset sivut automaattisesti takaisin välimuistista.

Tärkeää kaikille, jotka haluavat tulla löydetyiksi: moduuli ei estä yhtään hakukonetta eikä tekoälyn indeksointirobottia. Kaikki indeksoijat saavat samat sisällöt kuin jokainen kävijä, vain nopeammin. Tässä artikkelissa kerrotaan, miten välimuisti toimii, miltä koontinäyttö näyttää (kuvakaappauksin), miten tunnistatte, mahtuvatko sivunne keskusmuistiin ja kuinka paljon lisää RAM-muistia tarvittaisiin, mitkä turvallisuussäännöt ovat voimassa ja miten moduuli asennetaan.

Tiivistelmä

AiheNäin se toimii
Moduuliwebsite_page_cache Odoo 19:lle, lisenssi LGPL-3, julkisesti GitHubissa
Mitä välimuistiin tallennetaan?Julkiset verkkokaupan ja blogin sivut (luettelot, kategoriat, tuotteet, artikkelit) kaikilla kielillä jokaisella verkkosivustolla
Kenelle?Vain nimettömille kävijöille, vain GET-kutsut ilman hakuparametreja, vain tila 200 ja HTML
TallennuspaikkaTiedostot levyllä tai RAM (tmpfs, kaikkien työprosessien yhteiskäytössä); automaattisesti tilantarpeen mukaan
AjantasaisuusJokainen muutos (myös käännökset, tuonnit, skriptit) luo tietokantatriggerin kautta lokimerkinnän ja mitätöi asianomaiset sivut
KoontinäyttöAsetukset, tila, tilastot (osumat, ohitukset, säästetty palvelinaika) ja tarkistus ”Mahtuuko keskusmuistiin?” sisältäen ”tarvittavan lisä-RAM-muistin”
Hakukoneet ja tekoälyMitään ei estetä eikä hidasteta; kaikki saavat samat sivut, vain nopeammin
HätäjarruYksi kytkin (enabled = 0) poistaa välimuistin käytöstä kaikissa työprosesseissa 30 sekunnissa

Ongelma: hakurobottien kuormitus Odoo-verkkosivustoilla

Odoo on täydellinen ERP-järjestelmä, ja verkkosivusto on yksi sen monista moduuleista. Jokainen sivu, jonka kävijä tai robotti avaa, käy läpi saman reitin: pyynnön käsittely, tietokantakysely, tuote- ja hintatietojen lataus, QWeb-mallipohjan renderöinti, käännösten lisääminen ja tuloksen toimitus. Sivusta riippuen tähän kuluu muutama sata millisekuntia, ja sinä aikana yksi harvoista työprosesseista on varattuna.

Hakukoneille ja tekoälyindeksoijille tämä on pysyvä aihe:

  • Monta kieltä, monta osoitetta: sivu, joka on olemassa 46 kielellä, on robotille 46 eri osoitetta.
  • Jokainen osoite haetaan erikseen, usein monelta hajautetulta lähettäjältä samanaikaisesti. Perinteinen selainvälimuisti ei auta, koska jokainen haku koskee uutta osoitetta.
  • Vähän työprosesseja: Odoo-palvelu toimii tyypillisesti kourallisella prosesseja. Kun ne ovat robottien pyyntöjen varaamia, oikeat kävijät odottavat jonossa.
  • Sama sisältö, yhä uudelleen: blogiartikkeli muuttuu harvoin, mutta se kootaan työläästi uudelleen jokaisella haulla.

Ilmeinen ratkaisu – robottien sulkeminen pois – on yritykselle, joka haluaa tulla löydetyksi, ei vaihtoehto. Näkyvyys hakukoneissa ja tekoälyn vastauksissa on arvokasta. Parempi on toimittaa sivut niin nopeasti, ettei kuormitus enää juuri paina. Juuri sen sivuvälimuisti tekee.

Näin sivuvälimuisti toimii

Moduuli kytkeytyy Odoon pyyntöjen vastaanottoon (ir.http). Jokaisella sivunhaulla se päättää sekunnin murto-osassa, saako sivun toimittaa välimuistista, ja toimittaa sen silloin ilman tietokantaa, mallipohjaa ja renderöintiä.

Vuokaavio: pyyntö, tarkistus, välimuistiavain, osuma tai ohitus, tallennus ja toimitus

  1. Tarkistus: Vain nimetön GET-kutsu ilman hakuparametreja sallitulle polulle (kauppa, kategoriat, tuotteet, blogi) tulee kyseeseen. Kaikki muu kulkee Odoon läpi kuten ennenkin.
  2. Välimuistiavain: Se koostuu verkkosivustosta, isäntäluokasta, kielestä, polusta, hinnastosta, verokannasta ja evästesuostumuksen tilasta. Kävijät, jotka näkisivät jotain muuta, eivät siksi koskaan jaa samaa merkintää. Isäntä normalisoidaan: Odoo kirjoittaa absoluuttiset osoitteet aina verkkosivuston verkkotunnuksesta, ei pyynnöstä; pyynnön osoite ratkaisee vain, katsotaanko sivu pääosoitteeksi (kieliviittaukset) ja indeksoidaanko se. Kaikki vieraat isäntänimet jakavat siksi yhden merkinnän noindex-vihjeineen sen sijaan, että kukin varaisi oman kopionsa.
  3. Osuma: Jos ajantasainen merkintä on olemassa, se toimitetaan. Sivun CSRF-token asetetaan silloin uudelleen pyyntökohtaisesti. Blogiartikkelien katselut lasketaan edelleen.
  4. Ohitus: Jos merkintä puuttuu tai on vanhentunut, Odoo renderöi sivun kuten tavallisesti. Jos tulos kelpaa välimuistiin (tila 200, HTML, ei evästettä, ei istuntotunnusta tekstissä), se tallennetaan; seuraava haku on osuma.
  5. Näkyy otsakkeessa: Jokaisessa vastauksessa on otsake X-Page-Cache: HIT tai MISS. Näin mikä tahansa työkalu voi tarkistaa, mitä tapahtui.

Kuinka paljon nopeampi?

Testijärjestelmässämme (kopio verkkosivustoistamme, muutama sata sivua) sivun keskimääräinen renderöintiaika oli noin 490 millisekuntia ja toimitus välimuistista noin 23 millisekuntia: noin kaksikymmenkertainen ero. Mitä raskaampi sivu, sitä suurempi hyöty. Koontinäyttö laskee molemmista arvoista lisäksi arvioidun säästetyn palvelinajan.

Tiedosto vai RAM: tallennuspaikan valinta

Välimuistilla on kaksi tallennuspaikkaa. Molemmat ovat kaikkien Odoo-työprosessien yhteisesti nähtävissä, joten jokainen sivu on olemassa vain kerran, ei kerran prosessia kohden.

Tiedostovälimuistin ja RAM-välimuistin vertailu sekä automatiikan päätössääntö

AsetusMissä sivut sijaitsevat?Ominaisuudet
TiedostotHakemisto Odoon datakansiossa, tietokantakohtaisestisäilyy uudelleenkäynnistyksissä; käyttöjärjestelmä pitää usein käytetyt sivut joka tapauksessa muistissa
Keskusmuistitmpfs polussa /dev/shmnopein toimitus; katoaa palvelimen uudelleenkäynnistyksessä ja rakennetaan yksinkertaisesti uudelleen
AutomaattinenRAM niin kauan kuin kaikki mahtuu; muuten tiedostotHuoltotehtävä (10 minuutin välein) päättää arvion perusteella; pysyy RAM-muistissa tuloksilla ”mahtuu” ja ”niukasti”, jotta valinta ei vaihdu jatkuvasti

Useimmissa asennuksissa Automaattinen on oikea valinta: saatte RAM-nopeuden, kun tilaa on, ja palaatte muuten itsestään tiedostoihin.

Mahtuuko verkkosivusto keskusmuistiin? Ja kuinka paljon RAM-muistia puuttuu?

Se, onko RAM-välimuisti mahdollinen, riippuu kolmesta asiasta: sivujen määrästä, niiden keskimääräisestä koosta ja käytettävissä olevasta muistista. Koontinäyttö laskee tämän puolestanne:

  • Sivumäärä: Se laskee verkkosivustoa kohden julkaistut tuotteet, kaupan luettelosivut, kategoriat, blogiartikkelit ja blogiluettelot ja kertoo ne kielten lukumäärällä.
  • Sivun koko: Kun sivuja on välimuistissa, todellinen keskiarvo mitataan; siihen asti käytetään oletusarvoa.
  • Tila välimuistille: pienin arvo seuraavista: asetettu RAM-budjetti, tmpfs:n koko ja puolet käytettävissä olevasta keskusmuistista. Palvelin ei saa koskaan joutua muistipulaan välimuistin takia.
  • Arvio: ”mahtuu varalla”, ”niukasti”, ”liian suuri” tai ”RAM-välimuisti ei käytettävissä”. ”Mahtuu” pätee, kun tarve on enintään 80 prosenttia käytettävissä olevasta tilasta.

Koontinäytön osio Mahtuuko keskusmuistiin? sivumäärineen verkkosivustoa kohden, tilantarpeineen ja tietoineen tarvittavasta lisä-RAM-muistista

Uutta: kuinka paljon lisä-RAM-muistia tarvittaisiin?

Jos välimuisti ei mahdu, haluaa tietää, mitä on muutettava. Koontinäyttö näyttää siksi arvion alla konkreettisen rivin: ”Lisä-RAM RAM-välimuistia varten: noin … lisää keskusmuistia tällä palvelimella” – tai ”ei tarvita”, jos tila riittää jo. Jos palvelimen sijasta vain jokin asetus on liian pieni, sen alla kerrotaan, mikä: moduulin RAM-budjetti tai tmpfs:n koko (/dev/shm).

Koontinäyttö, jossa RAM-budjetti on liian pieni: arvio Ei ja kehotus nostaa RAM-budjetti vähintään tarvittavaan arvoon

Laskelma on yksinkertainen ja helppo seurata:

Laskuesimerkki: 12 000 sivua kertaa 25 kt tekee noin 300 Mt tarvetta, varalla noin 375 Mt, siihen vähintään 750 Mt vapaata muistia

  1. Tarve = sivut × keskimääräinen sivun koko.
  2. Varalla = tarve jaettuna luvulla 0,8. Tämän arvon on mahduttava RAM-budjettiin ja tmpfs:ään, jotta arvio on ”mahtuu”.
  3. Vapaa muisti: Koska välimuisti saa käyttää enintään puolet käytettävissä olevasta keskusmuistista, palvelin tarvitsee vapaana käytettävissä olevaa muistia vähintään kaksinkertaisesti vaiheen 2 arvoon nähden. Jos jotain puuttuu, erotus on tarvittava lisä-RAM.

Kuvan esimerkki (12 000 sivua á 25 kt) on laskentaapu, ei mittaus sivustoistamme. Pienillä verkkosivustoilla riittää muutama kymmenen megatavua; kuvakaappausten esimerkkitiedot tulivat toimeen noin 13 Mt:lla.

Tärkeää tulkinnan kannalta: arvio ei laske mukaan ylimääräisiä hinnasto- tai maaversioita. Jos käytätte niitä paljon, varatkaa hieman puskuria. Ja vielä: liian pieni RAM-budjetti on yleisin syy siihen, että automatiikka pysyy tiedostoissa – ei keskusmuistin puute. Koontinäyttö näyttää tässä tapauksessa juuri tämän rivin.

Muutokset ja käännökset siivoavat välimuistin

Välimuisti on käyttökelpoinen vain, jos se ei koskaan toimita vanhentuneita sivuja. Pelkkä aikaraja (”hylkää kahdentoista tunnin välein”) olisi liian karkea: muuttunut hinta tai korjattu kirjoitusvirhe joutuisi odottamaan jopa kaksitoista tuntia. Moduuli toimii siksi sisältöpohjaisesti.

Mitätöinnin kulku: muutos, tietokantatrigger, muutosloki, vertailu, sivu hylätty, uudelleenrenderöinti seuraavalla haulla

  1. Tietokantatriggerit: Kaikissa taulukoissa, jotka voivat vaikuttaa sivuun (tuotteet, variantit, kuvat, varasto, attribuutit, kategoriat, hinnat, verot, hinnastot, blogiartikkelit ja avainsanat, kumppani- ja yritystiedot, näkymät, assetit, valikot, kielet, verkkosivuston asetukset), on PostgreSQL-triggerit. Ne kirjaavat jokaisen muutoksen muutoslokiin.
  2. Riippuvuudet ja tietokannan tila: Jokainen välimuistiin tallennettu sivu muistaa, mitä tietueita se näyttää, ja minkä tietokannan tilan perusteella se luotiin.
  3. Vertailu: Jos on lokimerkintä, joka syntyi tämän tilan jälkeen ja koskee jotakin näistä tietueista, sivu on vanhentunut.
  4. Uudelleen välimuistiin: Seuraavalla haulla vanhentunut sivu hylätään, renderöidään uudelleen ja tallennetaan taas.

Myös käännökset katetaan

Odoo 19 tallentaa käännetyt tekstit samaan tietueeseen kuin alkuperäisen tekstin (JSON-kenttänä). Muuttunut käännös on tietokannalle siksi aivan tavallinen rivin muutos – ja trigger näkee sen. Tämä pätee yhtä lailla käyttöliittymän kautta tehtävään muokkaukseen, tuonteihin, rajapintoihin ja skripteihin, jotka kirjoittavat suoraan tietokantaan. 46 kielen automaattinen käännös mitätöi siis täsmälleen ne sivut, joiden teksti on muuttunut, eikä enempää.

  • Kohdennetusti, ei yleisesti: Muuttunut tuote mitätöi sen omat sivut, luettelot, joissa se on, ja siihen kuuluvan kategorian. Loput pysyvät välimuistissa.
  • Globaalit muutokset (mallipohjat, assetit, kielet, valikot, verot, valuutat) mitätöivät kaiken kerralla, koska ne voivat vaikuttaa jokaiseen sivuun.
  • Laskurit jäävät ulkopuolelle: Blogiartikkelien katselulaskuri muuttuu jokaisella käynnillä; se ei tarkoituksella aiheuta mitätöintiä, muuten välimuisti olisi tehoton suosituilla artikkeleilla.
  • Turvaverkko: Lisäksi jokaiselle sivulle on enimmäisikä (oletus 12 tuntia).
  • Välimuisti ei aiheuta tallennusvirhettä: Triggerin sisäinen virhe kirjataan varoituksena eikä estä varsinaista tallennusta.

Koontinäyttö ja tilastot

Kaikki, mitä käyttö vaatii, on yhdessä paikassa: Odoossa kohdassa Verkkosivusto → Raportit → Sivuvälimuisti. Osio Yleiskatsaus on koontinäyttö (asetuksineen), osio Historia näyttää luvut päivittäin ja verkkosivustoittain.

Sivuvälimuistin koontinäyttö Odoossa: asetukset, tila, tilastot ja tarkistus Mahtuuko keskusmuistiin

Kuvakaappaus testijärjestelmästä, jossa on kopiot verkkosivustoistamme; verkkosivustojen nimet on korvattu paikkamerkeillä.

Asetukset

AsetusMerkitys
AktiivinenPääkytkin. Pois kytkettynä Odoo toimittaa jokaisen sivun taas entiseen tapaan, kaikissa prosesseissa viimeistään 30 sekunnin kuluttua.
TallennuspaikkaAutomaattinen, tiedostot tai keskusmuisti
Enimmäisikä (tunteina)Turvaverkko; sivut uusitaan tämän ajan kuluttua muutoksista riippumatta
RAM-budjetti (Mt)Näin paljon keskusmuistia RAM-välimuisti saa enintään varata; samalla arvion ”mahtuu” raja
Levyraja (Mt)Tiedostovälimuistin enimmäiskoko; vanhimmat merkinnät poistetaan ensin

Tila ja tilastot

Tila näyttää aktiivisen tallennuspaikan rajoineen, välimuistissa olevien sivujen määrän ja koon sekä muutosten seurannan: kuinka monta muutosta on rekisteröity viimeisten 24 tunnin aikana ja kuinka monta taulukkoa valvotaan. Jos valvonta puuttuu, koontinäyttö varoittaa selvästi, sillä silloin välimuistiin ei voi luottaa. Yläreunan painikkeilla voi suorittaa huollon heti, tyhjentää välimuistin tai tarkistaa triggerit ja tarvittaessa luoda ne uudelleen.

Tilasto (Tänään, 7 päivää, 30 päivää) sisältää:

  • Välimuistista ja Renderöity: osumat ja ohitukset sekä niistä osumasuhde
  • Poistettu (muuttunut/vanhentunut): kuinka monta sivua hylättiin muutoksen tai vanhenemisen vuoksi
  • Renderöintiaika ja välimuistiaika: sivukohtainen keskiarvo vertailtuna
  • Arvioitu säästetty palvelinaika ja välimuistista toimitettu datamäärä

Luvut kerää jokainen työprosessi erikseen ja kirjoittaa ne kerran minuutissa; yli 90 päivää vanhat rivit huoltotehtävä siivoaa pois.

Historia kaaviona, pivot-taulukkona ja luettelona

Kohdassa Historia ovat käytettävissä päiväarvot verkkosivustoittain – kaaviona, pivot-taulukkona tai luettelona. Näin näette, nouseeko osumasuhde uudelleenkäynnistyksen tai suuren muutoksen jälkeen, ja mikä verkkosivusto saa eniten liikennettä välimuistista.

Sivuvälimuistin historia pivot-taulukkona osumineen, ohituksineen ja hylättyine sivuineen verkkosivustoa kohden

Turvallisuus: mikä ei koskaan tule välimuistista

Sivuvälimuisti ei saa koskaan johtaa siihen, että joku näkee toisen sisällöt. Moduuli noudattaa siksi periaatetta: epäselvässä tapauksessa ei välimuistiin.

  • Vain nimettömät kävijät: Kirjautunut käyttäjä, käyttäjä jolla on ostoskori tai jolla on muu istuntotila, saa aina normaalisti renderöidyn sivun.
  • Vain GET ilman hakuparametreja: Haut, suodattimet, lajittelut, lomakkeet, ostoskori ja kassa pysyvät koskemattomina.
  • Vain tila 200 ja HTML: Virhesivuja, uudelleenohjauksia ja tiedostoja ei tallenneta.
  • Ei istuntotunnuksia välimuistissa: Sivua, joka sisältää istuntotunnuksen tai asettaa evästeen, ei tallenneta (ja siitä kirjataan varoitus).
  • CSRF-token pyyntökohtaisesti: Välimuistissa olevan sivun token on paikkamerkki, joka korvataan uudella jokaisessa toimituksessa.
  • Hienojakoinen avain: Verkkosivusto, kieli, hinnasto, verokanta ja evästesuostumus kuuluvat välimuistiavaimeen; joka näkee jotain muuta, saa toisen merkinnän.
  • Useita tietokantoja: Jokaisella tietokannalla on omat merkinnät, oma loki ja omat tilastot.
  • Ei tietovuotoa: Välimuisti sijaitsee paikallisesti palvelimella (tiedosto tai RAM). Tietoja ei siirretä kolmansille osapuolille.

Hakukoneet ja tekoälyindeksoijat: mitään ei estetä

Jotkut ylläpitäjät vastaavat robottien kuormitukseen estoilla. Se suojaa palvelinta mutta maksaa näkyvyyttä. Moduuli valitsee päinvastaisen tien:

  • Samat sisällöt kaikille: Hakukoneet, tekoälyindeksoijat ja kävijät saavat saman sivun. Erillistä ”robottiversiota” ei ole, eikä selaintunnisteeseen perustuvaa tunnistusta.
  • Nopeammat vastaukset auttavat indeksointia: Sivu, joka vastaa 20 eikä 500 millisekunnissa, kuormittaa indeksointibudjettia vähemmän, ja robotit voivat kerätä samassa ajassa enemmän sivuja.
  • Ajantasaiset sisällöt: Koska muutokset mitätöivät sivut heti, robotit eivät koskaan näe vanhentunutta versiota – tärkeää, jos ylläpidätte sisältöjä haun ja tekoälyvastausten varalle.
  • Jäsennellyt tiedot säilyvät: JSON-LD, metatiedot ja hreflang-viittaukset ovat osa välimuistissa olevaa sivua; sivustokarttoihin ja tiedostoihin välimuisti ei koske.

Jos haluatte lisäksi rajoittaa kuormitusta, se on erillinen päätös, jonka voitte tehdä tietoisesti – moduuli ei pakota sitä teille.

HTML:n minimointi ja pakattu toimitus

Välimuisti säästää laskenta-ajan lisäksi myös tiedonsiirtomäärää. Moduuli minimoi HTML:n ennen tallennusta ja toimittaa sen pakattuna, jos selain tai robotti sitä tukee:

  • Minimointi (parametri website_page_cache.minify): HTML-kommentit poistetaan, tyhjät merkit yhdistetään. Kokonaan ne poistetaan vain siellä, missä selain ohittaa ne muutenkin, esimerkiksi lohkoelementtien välillä. Rivinsisäisten elementtien välit säilyvät, pre, textarea ja skriptit pysyvät muuttumattomina, jäsennellyt tiedot (JSON-LD) kirjoitetaan uudelleen tiiviisti. Sivusta riippuen sivut ovat 10–30 % pienempiä. Seitsemällä oikealla sivulla tehdyssä testissä teksti, elementtien määrä, kaikkien elementtien sijainti ja kuvakaappaus olivat identtiset alkuperäisen kanssa. Ensimmäinen toimitus (MISS) on minimoitu täsmälleen samoin kuin jokainen seuraava (HIT).
  • Pakkaus (parametri website_page_cache.compress): Välimuistin sivut lähtevät gzip-pakattuina (Content-Encoding: gzip, Vary: Accept-Encoding). Suuret asset-paketit (CSS ja JavaScript, jopa muutaman Mt:n kokoiset) Odoo toimittaa itse pakkaamattomina; moduuli pakkaa ne kerran, tallentaa kopion levylle ja toimittaa ne sen jälkeen suoraan. 2,1 Mt:n CSS:stä tuli näin 0,27 Mt ja 4,8 Mt:n JavaScriptistä 1,1 Mt. Vanhat kopiot huoltotehtävä siivoaa pois.
  • Tietokoneen uudelleenkäynnistyksen jälkeen: RAM-välimuisti säilyy Odoon uudelleenkäynnistyksissä mutta ei palvelimen uudelleenkäynnistyksessä. Siksi huoltotehtävä peilaa sen vaiheittain levylle (parametri website_page_cache.persist) ja palauttaa sen käynnistyksessä. Sama mekanismi tarkistaa kuten muulloinkin, onko palautettu merkintä vielä voimassa: ikä ja muutoslokki. Minimointia ei lasketa tällöin uudelleen.

Asennus ja asetukset

  1. Hae moduuli: lataa lähdekoodi GitHubista ja aseta se Odoo 19 -asennuksenne addons-polkuun: github.com/Alex0176/odoo-website-page-cache
  2. Asenna: odoo-bin -d <Datenbank> -i website_page_cache --stop-after-init. Samalla syntyvät muutosloki, triggerit ja huoltotehtävä (10 minuutin välein).
  3. Käynnistä palvelu uudelleen, jotta kaikki työprosessit lataavat moduulin.
  4. Avaa koontinäyttö: Verkkosivusto → Raportit → Sivuvälimuisti. Tarkista, että muutosten seuranta on täydellinen, ja valitse tallennuspaikka (oletus: automaattinen).
  5. Tarkista: Hae kaupan tai blogin sivu kahdesti ja katso otsaketta X-Page-Cache: ensimmäisellä kerralla MISS, sen jälkeen HIT.

Asetukset ovat järjestelmäparametreina (website_page_cache.enabled, .backend, .ttl_hours, .max_mb_file, .max_mb_ram), ja niitä ylläpidetään tavallisesti koontinäytössä. Moduuli on käännetty saksaksi. Asennuksen poisto poistaa triggerit, lokin ja kaikki välimuistissa olevat sivut täydellisesti.

Vinkki RAM-välimuistille: koontinäytön RAM-budjetin ja tmpfs:n koon (/dev/shm, liitosvalitsin size=) on vastattava tarvetta. Molemmat kertoo teille tarkistus ”Mahtuuko keskusmuistiin?” konkreettisin arvoin.

Rajoitukset, jotka kannattaa tuntea

  • Lyhyt viive muutosten jälkeen: Muutoslokin indeksi päivitetään kahden sekunnin välein. Muuttunut sivu voidaan siihen asti vielä toimittaa vanhassa versiossa.
  • Varastosta riippuvat tekstit päivittyvät varastomuutosten ja enimmäisiän kautta.
  • Tilantarpeen arvio: Hinnastokohtaisia tai maakohtaisia lisäversioita ei ole laskettu mukaan; varatkaa hieman puskuria.
  • Ei korvaa kaikkea: Välimuisti keventää pyyntöjä, joita se saa palvella. Kirjautuneet käyttäjät, haut ja lomakkeet kulkevat edelleen Odoon läpi.
  • Ensimmäinen haku pysyy hitaana: Palvelimen uudelleenkäynnistyksen (RAM) tai globaalin muutoksen jälkeen jokainen sivu renderöidään kerran normaalisti, ennen kuin se on välimuistissa.

Usein kysyttyä

Mikä on Odoon sivuvälimuisti?

Avoimen lähdekoodin moduuli (website_page_cache, Odoo 19, LGPL-3), joka toimittaa julkiset kaupan ja blogin sivut nimettömille kävijöille välimuistista sen sijaan, että ne renderöitäisiin uudelleen jokaisella haulla. Välimuisti sijaitsee valinnan mukaan tiedostoissa tai keskusmuistissa.

Estääkö moduuli hakukoneita tai tekoälyrobotteja?

Ei. Hakukoneet ja tekoälyindeksoijat saavat samat sivut kuin kuka tahansa muu kävijä, vain nopeammin. Estoa, hidastusta tai erillistä robottiversiota ei ole.

Tallentuvatko muuttuneet sivut ja käännökset automaattisesti uudelleen välimuistiin?

Kyllä. PostgreSQL-triggerit ilmoittavat jokaisesta olennaisten taulukoiden muutoksesta lokiin; asianomaiset sivut hylätään ja renderöidään ja tallennetaan uudelleen seuraavalla haulla. Käännökset katetaan, koska Odoo 19 tallentaa ne samaan tietueeseen.

Pitäisikö valita tiedosto vai RAM?

Yleensä Automaattinen: moduuli käyttää RAM-muistia niin kauan kuin kaikki sivut mahtuvat siihen, ja siirtyy muuten tiedostoihin. Tiedostot sopivat, kun välimuistin on säilyttävä uudelleenkäynnistyksissä tai RAM on niukalla; RAM on nopein vaihtoehto.

Mistä tiedän, mahtuuko verkkosivustoni keskusmuistiin?

Koontinäytössä kohdassa Verkkosivusto → Raportit → Sivuvälimuisti. Osio ”Mahtuuko keskusmuistiin?” laskee sivut verkkosivustoa ja kieltä kohden, mittaa sivun koon ja vertaa tarvetta RAM-budjettiin, tmpfs:n kokoon ja käytettävissä olevaan muistiin.

Kuinka paljon lisä-RAM-muistia RAM-välimuisti tarvitsee?

Koontinäyttö ilmoittaa sen omalla rivillään. Laskenta: tarve = sivut × sivun koko; turvavaralla jaettuna luvulla 0,8. Koska välimuisti saa käyttää enintään puolet käytettävissä olevasta muistista, sen kaksinkertainen arvo on vapaana tarvittava muisti; erotus on lisä-RAM. Jos vain RAM-budjetti tai tmpfs on liian pieni, koontinäyttö ilmoittaa asetuksen ja tavoitearvon.

Voiko välimuisti näyttää jollekulle toisen sisältöjä?

Ei. Välimuistiin tallennetaan vain nimettömät GET-kutsut ilman hakuparametreja. Kirjautuneet käyttäjät, ostoskorit, lomakkeet ja haut eivät koskaan tule välimuistista; kieli, hinnasto, verokanta ja evästesuostumus kuuluvat avaimeen.

Miten poistan välimuistin käytöstä hätätilanteessa?

Kytke koontinäytössä kytkin ”Aktiivinen” pois tai aseta järjestelmäparametri website_page_cache.enabled arvoon 0. Tämä pätee kaikissa työprosesseissa viimeistään 30 sekunnin kuluttua. Asennuksen poisto poistaa lisäksi triggerit, lokin ja välimuistissa olevat sivut.

Mistä tunnistan, tuliko sivu välimuistista?

Vastausotsakkeesta X-Page-Cache: HIT tarkoittaa välimuistista, MISS tarkoittaa juuri renderöityä ja tallennettua.

Pienentääkö ja pakkaako moduuli HTML:n?

Kyllä. Välimuistin sivut minimoidaan varovaisesti (kommentit ja tarpeeton tyhjä tila poistetaan, sisältö ja ulkoasu pysyvät samoina) ja toimitetaan välimuistiosumissa gzip-pakattuina; asset-paketit pakataan kerran ja toimitetaan levyltä. Molemmat voi kytkeä pois parametreilla website_page_cache.minify ja website_page_cache.compress.

Biricon IT Servicesin tuki

Reagoiko Odoo-verkkosivustonne hitaasti robottikuormituksen aikana, tai haluatteko tehdä kaupastanne ja blogistanne nopeamman ja näkyvämmän? Autamme kuormituksen analysoinnissa, sivuvälimuistin käyttöönotossa, keskusmuistin ja työprosessien mitoituksessa sekä Odoo-verkkosivustonne monikielisessä hakukoneoptimoinnissa. Moduulin lähdekoodin löydätte GitHubista.

Ota yhteyttä nyt

Tilanne: 10. marraskuuta 2026. Mittausarvot ovat peräisin testijärjestelmästä, jossa on esimerkkitietoja, eivätkä ne ole lupaus muille asennuksille.