Przejdź do zawartości

Pamięć podręczna stron dla Odoo: sklep i blog z RAM lub pliku – szybko dla użytkowników, wyszukiwarek i AI

Moduł open source website_page_cache dostarcza publiczne strony Odoo niemal statycznie, utrzymuje aktualność przy zmianach i tłumaczeniach oraz pokazuje w panelu, czy i ile pamięci RAM jest potrzebne
10 listopada 2026 przez
Pamięć podręczna stron dla Odoo: sklep i blog z RAM lub pliku – szybko dla użytkowników, wyszukiwarek i AI

10 listopada 2026  |  Własne rozwiązanie  |  Odoo, wydajność i wyszukiwarki

Pamięć podręczna stron dla stron Odoo: publiczne strony sklepu i bloga z pliku lub RAM zamiast renderowania od nowa przy każdym wywołaniu

Strona w Odoo renderuje każdą podstronę od nowa przy każdym wywołaniu: zapytania do bazy danych, szablony, tłumaczenia, ceny. Dla pojedynczego użytkownika jest to prawie niezauważalne. Gdy jednak wyszukiwarki i indeksery AI pobierają setki lub tysiące stron w wielu językach, powstaje stałe obciążenie, a razem z nimi czekają prawdziwi klienci. Dlatego opracowaliśmy moduł Odoo 19 website_page_cache i opublikowaliśmy go na GitHubie jako open source (LGPL-3): anonimowo wywoływane strony sklepu i bloga są dostarczane niemal statycznie z pamięci podręcznej, albo z plików, albo z pamięci operacyjnej (RAM), a każda zmiana – także w tłumaczeniu – automatycznie usuwa dotknięte nią strony z pamięci podręcznej.

Ważne dla wszystkich, którzy chcą być znalezieni: moduł nie blokuje żadnej wyszukiwarki ani crawlera AI. Wszystkie indeksery otrzymują te same treści co każdy użytkownik, tylko szybciej. Ten wpis wyjaśnia, jak działa pamięć podręczna, jak wygląda panel (ze zrzutami ekranu), jak sprawdzić, czy Państwa strony mieszczą się w pamięci operacyjnej i ile dodatkowej pamięci RAM byłoby potrzebne, jakie obowiązują zasady bezpieczeństwa i jak zainstalować moduł.

W skrócie

TematCo obowiązuje
Modułwebsite_page_cache dla Odoo 19, licencja LGPL-3, publicznie na GitHubie
Co jest buforowane?Publiczne strony sklepu i strony bloga (listy, kategorie, produkty, wpisy) w każdym języku każdej strony internetowej
Dla kogo?Tylko dla anonimowych użytkowników, tylko wywołania GET bez parametrów wyszukiwania, tylko status 200 z HTML
Miejsce przechowywaniaPliki na dysku lub RAM (tmpfs, współdzielony przez wszystkie procesy robocze); automatycznie w zależności od potrzebnego miejsca
AktualnośćKażda zmiana (także tłumaczenia, importy, skrypty) tworzy za pomocą wyzwalaczy bazy danych wpis w dzienniku i unieważnia dotknięte nią strony
PanelUstawienia, stan, statystyki (trafienia, chybienia, zaoszczędzony czas serwera) oraz sprawdzenie „Czy mieści się w pamięci operacyjnej?” wraz z informacją „dodatkowo potrzebna pamięć RAM”
Wyszukiwarki i AINic nie jest blokowane ani ograniczane; wszyscy otrzymują te same strony, tylko szybciej
Hamulec awaryjnyJeden przełącznik (enabled = 0) wyłącza pamięć podręczną we wszystkich procesach roboczych w ciągu 30 sekund

Problem: obciążenie przez crawlery na stronach Odoo

Odoo jest kompletnym systemem ERP, a strona internetowa to tylko jeden z wielu modułów. Każda strona, którą wywołuje użytkownik lub robot, przechodzi tę samą drogę: przetworzenie żądania, zapytanie do bazy danych, wczytanie danych produktów i cen, wyrenderowanie szablonu QWeb, wstawienie tłumaczeń i dostarczenie wyniku. W zależności od strony trwa to kilkaset milisekund i przez ten czas zajmuje jeden z nielicznych procesów roboczych.

Dla wyszukiwarek i indekserów AI jest to stały problem:

  • Wiele języków, wiele adresów: Strona dostępna w 46 językach to dla crawlera 46 różnych adresów.
  • Każdy adres jest pobierany osobno, często przez wielu rozproszonych nadawców jednocześnie. Klasyczna pamięć podręczna przeglądarki tu nie pomaga, ponieważ każde wywołanie dotyczy nowego adresu.
  • Niewiele procesów roboczych: Usługa Odoo działa zwykle z kilkoma procesami. Jeśli są zajęte żądaniami crawlerów, prawdziwi użytkownicy czekają w kolejce.
  • Ta sama treść, wciąż od nowa: Wpis na blogu rzadko się zmienia, ale przy każdym wywołaniu jest kosztownie składany od nowa.

Oczywiste wyjście – zablokowanie crawlerów – nie wchodzi w grę dla firmy, która chce być znaleziona. Widoczność w wyszukiwarkach i w odpowiedziach AI jest cenna. Lepiej dostarczać strony tak szybko, by obciążenie prawie nie miało znaczenia. Właśnie to robi pamięć podręczna stron.

Jak działa pamięć podręczna stron

Moduł podpina się pod wejście żądań Odoo (ir.http). Przy każdym wywołaniu strony w ułamku milisekundy rozstrzyga, czy strona może pochodzić z pamięci podręcznej, i wtedy dostarcza ją bez bazy danych, bez szablonu i bez renderowania.

Diagram przebiegu: żądanie, sprawdzenie, klucz pamięci podręcznej, trafienie lub chybienie, zapis i dostarczenie

  1. Sprawdzenie: Wchodzi w grę tylko anonimowe wywołanie GET bez parametrów wyszukiwania na dozwolonej ścieżce (sklep, kategorie, produkty, blog). Wszystko inne przechodzi przez Odoo jak zwykle.
  2. Klucz pamięci podręcznej: Składa się ze strony internetowej, klasy hosta, języka, ścieżki, cennika, pozycji podatkowej i stanu zgody na pliki cookie. Użytkownicy, którzy widzieliby coś innego, nigdy więc nie dzielą jednego wpisu. Host jest przy tym normalizowany: Odoo zawsze zapisuje adresy bezwzględne na podstawie domeny strony, a nie żądania; adres żądania decyduje tylko o tym, czy strona jest traktowana jako adres główny (odnośniki językowe) i czy ma być indeksowana. Wszystkie obce nazwy hostów dzielą więc jeden wpis wraz ze wskazówką noindex, zamiast zajmować po własnej kopii.
  3. Trafienie: Jeśli istnieje aktualny wpis, zostaje dostarczony. Token CSRF na stronie jest przy tym ustawiany od nowa dla każdego żądania. Wywołania wpisów na blogu są nadal liczone.
  4. Chybienie: Jeśli wpisu brakuje lub jest nieaktualny, Odoo renderuje stronę jak zwykle. Jeśli wynik nadaje się do buforowania (status 200, HTML, brak pliku cookie, brak identyfikatora sesji w treści), zostaje zapisany; następne wywołanie jest trafieniem.
  5. Widoczne w nagłówku: Każda odpowiedź zawiera nagłówek X-Page-Cache: HIT lub MISS. Dzięki temu dowolnym narzędziem można sprawdzić, co się stało.

O ile szybciej?

W naszym systemie testowym (kopia naszych stron, kilkaset podstron) średni czas renderowania strony wynosił około 490 milisekund, a dostarczenie z pamięci podręcznej około 23 milisekund: mniej więcej dwudziestokrotnie szybciej. Im bardziej złożona strona, tym większy zysk. Z obu wartości panel oblicza ponadto szacunkowo zaoszczędzony czas serwera.

Plik czy RAM: wybór miejsca przechowywania

Pamięć podręczna zna dwa miejsca przechowywania. Oba są wspólnie widoczne dla wszystkich procesów roboczych Odoo, więc każda strona istnieje tylko raz, a nie raz na proces.

Zestawienie pamięci podręcznej plikowej i pamięci podręcznej w RAM oraz reguła decyzyjna automatyki

UstawienieGdzie leżą strony?Właściwości
PlikiKatalog w folderze danych Odoo, osobno dla każdej bazy danychprzetrwa ponowne uruchomienia; system operacyjny i tak trzyma często używane strony w pamięci
Pamięć operacyjnatmpfs w /dev/shmnajszybsze dostarczanie; ginie przy ponownym uruchomieniu serwera i jest po prostu budowane od nowa
AutomatycznieRAM, dopóki wszystko się mieści; w przeciwnym razie plikiZadanie konserwacyjne (co 10 minut) decyduje na podstawie szacunku; przy ocenie „mieści się” i „ciasno” pozostaje przy RAM, aby wybór nie zmieniał się ciągle

Dla większości instalacji Automatycznie jest właściwym wyborem: uzyskują Państwo szybkość RAM, gdy jest miejsce, a w przeciwnym razie bez ingerencji następuje powrót do plików.

Czy strona mieści się w pamięci operacyjnej? I ile RAM brakuje?

To, czy pamięć podręczna w RAM jest możliwa, zależy od trzech rzeczy: od liczby stron, od ich średniej wielkości i od dostępnej pamięci. Panel wylicza to za Państwa:

  • Liczba stron: Dla każdej strony internetowej zlicza opublikowane produkty, strony list sklepu, kategorie, wpisy na blogu i listy bloga i mnoży przez liczbę języków.
  • Wielkość strony: Gdy tylko w pamięci podręcznej znajdą się strony, mierzona jest rzeczywista średnia; do tego czasu obowiązuje wartość założona.
  • Miejsce na pamięć podręczną: najmniejsza z wartości: ustawionego budżetu RAM, rozmiaru tmpfs i połowy dostępnej pamięci operacyjnej. Serwer nigdy nie ma popaść w niedobór pamięci z powodu pamięci podręcznej.
  • Ocena: „mieści się z zapasem”, „ciasno”, „za duże” lub „pamięć podręczna w RAM niedostępna”. „Mieści się” obowiązuje, gdy zapotrzebowanie wynosi najwyżej 80 procent dostępnego miejsca.

Sekcja panelu Czy mieści się w pamięci operacyjnej? z liczbą stron dla każdej strony internetowej, zapotrzebowaniem na miejsce i informacją o dodatkowo potrzebnej pamięci RAM

Nowość: ile dodatkowej pamięci RAM jest potrzebne?

Jeśli pamięć podręczna się nie mieści, chce się wiedzieć, co trzeba zmienić. Dlatego panel podaje pod oceną konkretną linijkę: „Dodatkowa pamięć RAM dla pamięci podręcznej w RAM: około … więcej pamięci operacyjnej na tym serwerze” – albo „brak”, jeśli miejsca już wystarcza. Jeżeli za mało jest nie serwera, lecz tylko jednego ustawienia, poniżej widać, którego: budżetu RAM modułu lub rozmiaru tmpfs (/dev/shm).

Panel ze zbyt małym budżetem RAM: ocena Nie i wezwanie do zwiększenia budżetu RAM co najmniej do wymaganej wartości

Obliczenie za tym stojące jest proste i możliwe do prześledzenia:

Przykład obliczeniowy: 12 000 stron razy 25 KB daje zapotrzebowanie około 300 MB, z zapasem około 375 MB, a więc co najmniej 750 MB wolnej pamięci

  1. Zapotrzebowanie = strony × średnia wielkość strony.
  2. Z zapasem = zapotrzebowanie podzielone przez 0,8. Ta wartość musi zmieścić się w budżecie RAM i w tmpfs, aby ocena brzmiała „mieści się”.
  3. Wolna pamięć: Ponieważ pamięć podręczna może zajmować najwyżej połowę dostępnej pamięci operacyjnej, serwer potrzebuje co najmniej dwukrotności wartości z kroku 2 jako wolnej dostępnej pamięci. Jeśli czegoś brakuje, różnica to dodatkowo potrzebna pamięć RAM.

Przykład na obrazku (12 000 stron po 25 KB) jest pomocą w obliczeniach, a nie pomiarem naszych stron. Przy małych stronach wystarczy już kilkadziesiąt megabajtów; dane przykładowe na zrzutach ekranu zmieściły się w około 13 MB.

Ważne dla właściwej oceny: szacunek nie uwzględnia dodatkowych wersji dla cenników lub krajów. Kto używa ich wiele, powinien zaplanować pewien zapas. Ponadto: zbyt mały budżet RAM jest najczęstszym powodem, dla którego automatyka pozostaje przy plikach – a nie brak pamięci operacyjnej. Panel pokazuje w takim przypadku właśnie tę linijkę.

Zmiany i tłumaczenia porządkują pamięć podręczną

Pamięć podręczna jest użyteczna tylko wtedy, gdy nigdy nie dostarcza nieaktualnych stron. Samo ograniczenie czasowe („odrzucać co dwanaście godzin”) byłoby zbyt grube: zmieniona cena lub poprawiona literówka musiałyby czekać do dwunastu godzin. Dlatego moduł działa w oparciu o zawartość.

Przebieg unieważniania: zmiana, wyzwalacz bazy danych, dziennik zmian, porównanie, strona odrzucona, ponowne renderowanie przy następnym wywołaniu

  1. Wyzwalacze bazy danych: Na wszystkich tabelach, które mogą wpływać na stronę (produkty, warianty, obrazy, stany magazynowe, atrybuty, kategorie, ceny, podatki, cenniki, wpisy na blogu i tagi, dane partnerów i firm, widoki, zasoby, menu, języki, ustawienia strony internetowej), działają wyzwalacze PostgreSQL. Zapisują każdą zmianę w dzienniku zmian.
  2. Zależności i stan bazy danych: Każda buforowana strona zapamiętuje, jakie rekordy pokazuje, oraz stan bazy danych, z którym została wygenerowana.
  3. Porównanie: Jeśli istnieje wpis w dzienniku, który powstał po tym stanie i dotyczy jednego z tych rekordów, strona jest nieaktualna.
  4. Ponowne buforowanie: Przy następnym wywołaniu nieaktualna strona jest odrzucana, renderowana od nowa i ponownie zapisywana.

Tłumaczenia też są objęte

Odoo 19 przechowuje przetłumaczone teksty w tym samym rekordzie co tekst oryginalny (jako pole JSON). Zmienione tłumaczenie jest więc dla bazy danych zupełnie zwykłą zmianą wiersza – a wyzwalacz ją widzi. Dotyczy to w równym stopniu edycji przez interfejs, importów, interfejsów programistycznych i skryptów zapisujących bezpośrednio do bazy danych. Automatyczne tłumaczenie na 46 języków unieważnia więc dokładnie te strony, których tekst się zmienił, i nic więcej.

  • Celowo, a nie hurtowo: Zmieniony produkt unieważnia jego strony, listy, na których się znajduje, i powiązaną kategorię. Reszta pozostaje w pamięci podręcznej.
  • Zmiany globalne (szablony, zasoby, języki, menu, podatki, waluty) unieważniają wszystko naraz, ponieważ mogą dotyczyć każdej strony.
  • Liczniki są pomijane: Licznik wyświetleń wpisów na blogu zmienia się przy każdej wizycie; celowo nie wywołuje unieważnienia, w przeciwnym razie pamięć podręczna byłaby nieskuteczna dla popularnych wpisów.
  • Siatka bezpieczeństwa: Dodatkowo istnieje maksymalny wiek każdej strony (domyślnie 12 godzin).
  • Żadnego błędu zapisu z winy pamięci podręcznej: Błąd wewnątrz wyzwalacza jest rejestrowany jako ostrzeżenie i nie powoduje niepowodzenia właściwego zapisu.

Panel i statystyki

Wszystko, czego potrzeba do eksploatacji, znajduje się w jednym miejscu: w Odoo w Strona internetowa → Raporty → Pamięć podręczna stron. Sekcja Przegląd to panel (z ustawieniami), sekcja Przebieg pokazuje liczby według dni i stron internetowych.

Panel pamięci podręcznej stron w Odoo: ustawienia, stan, statystyki i sprawdzenie Czy mieści się w pamięci operacyjnej

Zrzut ekranu z systemu testowego z kopiami naszych stron; nazwy stron zastąpiono symbolami zastępczymi.

Ustawienia

UstawienieZnaczenie
AktywnaGłówny przełącznik. Po wyłączeniu Odoo znów dostarcza każdą stronę jak dotychczas, we wszystkich procesach najpóźniej po 30 sekundach.
Miejsce przechowywaniaAutomatycznie, pliki lub pamięć operacyjna
Maksymalny wiek (godziny)Siatka bezpieczeństwa; strony są odnawiane po tym czasie niezależnie od zmian
Budżet RAM (MB)Tyle pamięci operacyjnej może zająć najwyżej pamięć podręczna w RAM; jest to jednocześnie granica oceny „mieści się”
Limit dysku (MB)Maksymalny rozmiar pamięci podręcznej plikowej; najstarsze wpisy są usuwane jako pierwsze

Stan i statystyki

Stan pokazuje aktywne miejsce przechowywania wraz z limitem, liczbę i wielkość buforowanych stron oraz śledzenie zmian: ile zmian zarejestrowano w ciągu ostatnich 24 godzin i ile tabel jest monitorowanych. Jeśli brakuje monitorowania, panel wyraźnie ostrzega, ponieważ wtedy pamięci podręcznej nie wolno ufać. Przyciski u góry pozwalają natychmiast uruchomić konserwację, opróżnić pamięć podręczną albo sprawdzić wyzwalacze i w razie potrzeby utworzyć je ponownie.

Statystyki (Dzisiaj, 7 dni, 30 dni) obejmują:

  • Z pamięci podręcznej i Wyrenderowano: trafienia i chybienia, a z nich współczynnik trafień
  • Usunięto (zmienione/wygasłe): ile stron odrzucono z powodu zmiany lub wygaśnięcia
  • Czas renderowania i czas z pamięci podręcznej: porównanie średniej na stronę
  • Szacunkowo zaoszczędzony czas serwera i ilość danych z pamięci podręcznej

Liczby zbiera osobno każdy proces roboczy i zapisuje raz na minutę; wiersze starsze niż 90 dni usuwa zadanie konserwacyjne.

Przebieg jako wykres, tabela przestawna i lista

W Przebiegu dostępne są wartości dzienne dla każdej strony internetowej – jako wykres, tabela przestawna lub lista. Pozwala to zobaczyć, czy współczynnik trafień po ponownym uruchomieniu lub po dużej zmianie znów rośnie i która strona internetowa otrzymuje z pamięci podręcznej najwięcej ruchu.

Przebieg pamięci podręcznej stron jako tabela przestawna z trafieniami, chybieniami i odrzuconymi stronami dla każdej strony internetowej

Bezpieczeństwo: co nigdy nie pochodzi z pamięci podręcznej

Pamięć podręczna stron nigdy nie może prowadzić do tego, że ktoś zobaczy treści innej osoby. Moduł kieruje się więc zasadą: w razie wątpliwości nie buforować.

  • Tylko anonimowi użytkownicy: Kto jest zalogowany, ma koszyk lub przynosi inny stan sesji, zawsze otrzymuje stronę wyrenderowaną w normalny sposób.
  • Tylko GET bez parametrów wyszukiwania: Wyszukiwania, filtry, sortowania, formularze, koszyk i kasa pozostają nietknięte.
  • Tylko status 200 i HTML: Strony błędów, przekierowania i pliki nie są zapisywane.
  • Żadnych identyfikatorów sesji w pamięci podręcznej: Strona zawierająca identyfikator sesji lub ustawiająca plik cookie nie jest zapisywana (i jest rejestrowana jako ostrzeżenie).
  • Token CSRF dla każdego żądania: Token na buforowanej stronie jest symbolem zastępczym i przy każdym dostarczeniu wstawiany jest od nowa.
  • Drobiazgowy klucz: Strona internetowa, język, cennik, pozycja podatkowa i zgoda na pliki cookie należą do klucza pamięci podręcznej; kto widzi coś innego, dostaje inny wpis.
  • Wiele baz danych: Każda baza danych ma własne wpisy, własny dziennik i własne statystyki.
  • Brak wycieku danych: Pamięć podręczna znajduje się lokalnie na serwerze (plik lub RAM). Żadne dane nie są przekazywane osobom trzecim.

Wyszukiwarki i indeksery AI: nic nie jest blokowane

Niektórzy operatorzy reagują na obciążenie przez crawlery blokadami. To chroni serwer, ale kosztuje widoczność. Moduł wybiera drogę odwrotną:

  • Te same treści dla wszystkich: Wyszukiwarki, indeksery AI i użytkownicy otrzymują tę samą stronę. Nie ma osobnej „wersji dla crawlerów” ani rozpoznawania według identyfikatora przeglądarki.
  • Szybsze odpowiedzi pomagają w indeksowaniu: Strona odpowiadająca w 20 zamiast w 500 milisekund mniej obciąża budżet indeksowania, a crawlery mogą w tym samym czasie przetworzyć więcej stron.
  • Aktualne treści: Ponieważ zmiany natychmiast unieważniają strony, crawlery nigdy nie widzą nieaktualnej wersji – ważne, jeśli utrzymują Państwo treści dla wyszukiwania i odpowiedzi AI.
  • Dane strukturalne zostają zachowane: JSON-LD, dane meta i odwołania hreflang są częścią buforowanej strony; mapy witryn i pliki nie są przez pamięć podręczną dotykane.

Jeśli chcą Państwo dodatkowo ograniczyć obciążenie, jest to osobna decyzja, którą można podjąć świadomie – moduł jej nie narzuca.

Minimalizacja HTML i dostarczanie w postaci skompresowanej

Pamięć podręczna oszczędza nie tylko czas obliczeń, ale także ilość danych. Moduł minimalizuje HTML przed zapisaniem i dostarcza go w postaci skompresowanej, jeśli przeglądarka lub crawler to obsługuje:

  • Minimalizacja (parametr website_page_cache.minify): komentarze HTML są usuwane, białe znaki są łączone. Całkowicie usuwa się je tylko tam, gdzie przeglądarka i tak je ignoruje, na przykład między elementami blokowymi. Odstępy między elementami liniowymi zostają, pre, textarea i skrypty pozostają niezmienione, dane strukturalne (JSON-LD) są zapisywane od nowa w postaci zwartej. W zależności od strony strony są mniejsze o 10 do 30 %. W teście z siedmioma prawdziwymi stronami tekst, liczba elementów, położenie wszystkich elementów i zrzut ekranu były identyczne z oryginałem. Pierwsze dostarczenie (MISS) jest zminimalizowane tak samo jak każde kolejne (HIT).
  • Kompresja (parametr website_page_cache.compress): Strony z pamięci podręcznej wychodzą przez gzip (Content-Encoding: gzip, Vary: Accept-Encoding). Duże pakiety zasobów (CSS i JavaScript, do kilku MB) Odoo dostarcza samo bez kompresji; moduł kompresuje je jeden raz, zapisuje kopię na dysku i potem dostarcza ją bezpośrednio. Z 2,1 MB CSS powstało w ten sposób 0,27 MB, z 4,8 MB JavaScript 1,1 MB. Stare kopie usuwa zadanie konserwacyjne.
  • Po ponownym uruchomieniu maszyny: Pamięć podręczna w RAM zostaje zachowana przy ponownym uruchomieniu Odoo, ale nie przy ponownym uruchomieniu serwera. Dlatego zadanie konserwacyjne stopniowo kopiuje ją na dysk (parametr website_page_cache.persist) i przywraca przy starcie. To, czy przywrócony wpis jest jeszcze ważny, sprawdza ten sam mechanizm co zwykle: wiek i dziennik zmian. Minimalizacja nie jest przy tym obliczana ponownie.

Instalacja i ustawienia

  1. Pobranie modułu: Pobrać kod źródłowy z GitHuba i umieścić go w ścieżce addons Państwa instalacji Odoo 19: github.com/Alex0176/odoo-website-page-cache
  2. Instalacja: odoo-bin -d <Datenbank> -i website_page_cache --stop-after-init. Powstają przy tym dziennik zmian, wyzwalacze i zadanie konserwacyjne (co 10 minut).
  3. Ponowne uruchomienie usługi, aby wszystkie procesy robocze załadowały moduł.
  4. Otwarcie panelu: Strona internetowa → Raporty → Pamięć podręczna stron. Sprawdzić, czy śledzenie zmian jest kompletne, i wybrać miejsce przechowywania (ustawienie domyślne: automatycznie).
  5. Kontrola: Wywołać stronę sklepu lub bloga dwa razy i obejrzeć nagłówek X-Page-Cache: za pierwszym razem MISS, potem HIT.

Ustawienia istnieją jako parametry systemowe (website_page_cache.enabled, .backend, .ttl_hours, .max_mb_file, .max_mb_ram) i zwykle są zarządzane w panelu. Moduł jest przetłumaczony na język niemiecki. Odinstalowanie całkowicie usuwa wyzwalacze, dziennik i wszystkie buforowane strony.

Wskazówka dla pamięci podręcznej w RAM: budżet RAM w panelu i rozmiar tmpfs (/dev/shm, opcja montowania size=) muszą odpowiadać zapotrzebowaniu. Oba podaje Państwu sprawdzenie „Czy mieści się w pamięci operacyjnej?” wraz z konkretnymi wartościami.

Ograniczenia, które warto znać

  • Krótkie opóźnienie po zmianach: Indeks dziennika zmian jest odświeżany co dwie sekundy. Do tego czasu zmieniona strona może być jeszcze dostarczana w starej wersji.
  • Teksty zależne od stanu magazynowego są aktualizowane przez zmiany stanów magazynowych i maksymalny wiek.
  • Szacowanie zapotrzebowania na miejsce: Dodatkowe wersje dla cennika lub kraju nie są wliczone; zaplanować pewien zapas.
  • Nie zastępuje wszystkiego: Pamięć podręczna odciąża żądania, które może obsłużyć. Zalogowani użytkownicy, wyszukiwania i formularze nadal przechodzą przez Odoo.
  • Pierwsze wywołanie pozostaje wolne: Po ponownym uruchomieniu serwera (RAM) lub zmianie globalnej każda strona jest raz renderowana normalnie, zanim trafi do pamięci podręcznej.

Najczęstsze pytania

Czym jest pamięć podręczna stron dla Odoo?

Moduł open source (website_page_cache, Odoo 19, LGPL-3), który dostarcza publiczne strony sklepu i bloga anonimowym użytkownikom z pamięci podręcznej zamiast renderować je od nowa przy każdym wywołaniu. Pamięć podręczna znajduje się według wyboru w plikach lub w pamięci operacyjnej.

Czy moduł blokuje wyszukiwarki lub crawlery AI?

Nie. Wyszukiwarki i indeksery AI otrzymują te same strony co każdy inny użytkownik, tylko szybciej. Nie ma blokady, ograniczania ani osobnej wersji dla crawlerów.

Czy zmienione strony i tłumaczenia są automatycznie buforowane na nowo?

Tak. Wyzwalacze PostgreSQL zgłaszają każdą zmianę istotnych tabel do dziennika; dotknięte nią strony są odrzucane, a przy następnym wywołaniu renderowane od nowa i zapisywane. Tłumaczenia są objęte, ponieważ Odoo 19 przechowuje je w tym samym rekordzie.

Czy wybrać plik, czy RAM?

Zasadniczo Automatycznie: moduł używa RAM, dopóki wszystkie strony się mieszczą, a w przeciwnym razie przechodzi na pliki. Pliki nadają się, gdy pamięć podręczna ma przetrwać ponowne uruchomienia lub gdy RAM jest ograniczony; RAM jest wariantem najszybszym.

Jak sprawdzić, czy moja strona mieści się w pamięci operacyjnej?

W panelu w Strona internetowa → Raporty → Pamięć podręczna stron. Sekcja „Czy mieści się w pamięci operacyjnej?” zlicza strony według stron internetowych i języków, mierzy wielkość strony i porównuje zapotrzebowanie z budżetem RAM, rozmiarem tmpfs i dostępną pamięcią.

Ile dodatkowej pamięci RAM potrzeba dla pamięci podręcznej w RAM?

Panel podaje to w osobnej linijce. Obliczenie: zapotrzebowanie = strony × wielkość strony; z zapasem bezpieczeństwa dzieli się przez 0,8. Ponieważ pamięć podręczna może zajmować najwyżej połowę dostępnej pamięci, dwukrotność tej wartości to potrzebna wolna pamięć; różnica to dodatkowa pamięć RAM. Jeśli za mały jest tylko budżet RAM lub tmpfs, panel podaje ustawienie wraz z wartością docelową.

Czy pamięć podręczna może pokazać komuś cudze treści?

Nie. Buforowane są tylko anonimowe wywołania GET bez parametrów wyszukiwania. Zalogowani użytkownicy, koszyki, formularze i wyszukiwania nigdy nie pochodzą z pamięci podręcznej; język, cennik, pozycja podatkowa i zgoda na pliki cookie są częścią klucza.

Jak wyłączyć pamięć podręczną w sytuacji awaryjnej?

W panelu wyłączyć przełącznik „Aktywna” lub ustawić parametr systemowy website_page_cache.enabled na 0. Obowiązuje to we wszystkich procesach roboczych najpóźniej po 30 sekundach. Odinstalowanie usuwa ponadto wyzwalacze, dziennik i buforowane strony.

Po czym poznać, czy strona pochodziła z pamięci podręcznej?

Po nagłówku odpowiedzi X-Page-Cache: HIT oznacza z pamięci podręcznej, MISS oznacza świeżo wyrenderowaną i zapisaną.

Czy moduł zmniejsza HTML i kompresuje go?

Tak. Buforowane strony są zachowawczo minimalizowane (komentarze i zbędne białe znaki są usuwane, treść i wygląd pozostają takie same), a przy trafieniach w pamięci podręcznej dostarczane przez gzip; pakiety zasobów są kompresowane raz i dostarczane z dysku. Oba mechanizmy można wyłączyć parametrami website_page_cache.minify i website_page_cache.compress.

Wsparcie ze strony Biricon IT Services

Czy Państwa strona w Odoo reaguje wolno przy obciążeniu przez crawlery, albo chcą Państwo, aby sklep i blog były szybsze i lepiej widoczne? Wspieramy w analizie obciążenia, w konfiguracji pamięci podręcznej stron, w doborze pamięci operacyjnej i procesów roboczych oraz w wielojęzycznej optymalizacji pod kątem wyszukiwarek Państwa strony w Odoo. Kod źródłowy modułu znajdą Państwo na GitHubie.

Skontaktuj się z nami

Stan na: 10 listopada 2026. Wartości pomiarowe pochodzą z systemu testowego z danymi przykładowymi i nie stanowią zapewnienia dla innych instalacji.