{"id":16469,"date":"2026-01-02T11:51:38","date_gmt":"2026-01-02T10:51:38","guid":{"rendered":"https:\/\/webhosting.de\/php-opcache-invalidierung-performance-spikes-serverboost\/"},"modified":"2026-01-02T11:51:38","modified_gmt":"2026-01-02T10:51:38","slug":"php-opcache-uniewaznienie-wzrosty-wydajnosci-przyspieszenie-serwera","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/php-opcache-invalidierung-performance-spikes-serverboost\/","title":{"rendered":"Uniewa\u017cnienie PHP Opcache: dlaczego prowadzi to do skok\u00f3w wydajno\u015bci"},"content":{"rendered":"<p>Uniewa\u017cnienie PHP Opcache powoduje wymierne spadki wydajno\u015bci, poniewa\u017c wymaga odrzucenia skompilowanego kodu i ponownego jego zbudowania pod obci\u0105\u017ceniem. Poka\u017c\u0119, dlaczego. <strong>Uniewa\u017cnienia<\/strong> Zwi\u0119kszanie czasu pracy procesora, jak konfiguracje wzmacniaj\u0105 szczyt i jakie strategie wdra\u017cania zapobiegaj\u0105 szczytom obci\u0105\u017cenia.<\/p>\n\n<h2>Punkty centralne<\/h2>\n<ul>\n  <li><strong>Uniewa\u017cnienia<\/strong> powoduj\u0105 kosztowne rekompilacje i generuj\u0105 szczyty<\/li>\n  <li><strong>Sprawdzanie sygnatur czasowych<\/strong> wzrost produkcji B\u0142\u0119dy pami\u0119ci podr\u0119cznej<\/li>\n  <li><strong>Poziom wype\u0142nienia pami\u0119ci podr\u0119cznej<\/strong> Limity plik\u00f3w decyduj\u0105 o wsp\u00f3\u0142czynniku trafie\u0144<\/li>\n  <li><strong>Strategie wdra\u017cania<\/strong> wp\u0142ywaj\u0105 na blokowanie i op\u00f3\u017anienia<\/li>\n  <li><strong>Optymalizacja hostingu<\/strong> trwale stabilizuje czasy reakcji<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/php-opcache-serverraum-1842.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Jak dzia\u0142a OPCache wewn\u0119trznie \u2013 i dlaczego uniewa\u017cnianie jest kosztowne<\/h2>\n\n<p>OPcache zapisuje kod PHP przekszta\u0142cony w kod bajtowy w pami\u0119ci wsp\u00f3\u0142dzielonej, oszcz\u0119dzaj\u0105c w ten spos\u00f3b parsowanie i kompilacj\u0119 dla ka\u017cdego \u017c\u0105dania. Gdy tylko uruchomi\u0119 skrypt za pomoc\u0105 <code>opcache_invalidate()<\/code> oznaczam jako nieprawid\u0142owe, wymuszam kolejne wywo\u0142anie kompilacji wraz z optymalizacj\u0105 i zapisaniem. Kosztuje to <strong>CPU<\/strong> i powoduje kr\u00f3tkie, ale zauwa\u017calne op\u00f3\u017anienia podczas dost\u0119pu do wielu plik\u00f3w. Wraz ze wzrostem r\u00f3wnoleg\u0142o\u015bci wzrasta r\u00f3wnie\u017c liczba blokad w strukturach pami\u0119ci wsp\u00f3\u0142dzielonej i systemie plik\u00f3w. W ten spos\u00f3b \u017c\u0105danie, kt\u00f3re w innym przypadku by\u0142oby szybkie, nagle staje si\u0119 powolne, mimo \u017ce pozosta\u0142a cz\u0119\u015b\u0107 kodu w <strong>Schowek<\/strong> jest k\u0142amstwem.<\/p>\n\n<p>OPcache nie usuwa pliku natychmiast po uniewa\u017cnieniu, ale oznacza go do odnowienia. Gdy pojawi si\u0119 kolejne \u017c\u0105danie, PHP musi ponownie przeanalizowa\u0107 i zoptymalizowa\u0107 odpowiednie skrypty. Dotyczy to w szczeg\u00f3lno\u015bci framework\u00f3w i stos\u00f3w CMS z wieloma plikami include i autoload. Im wi\u0119cej plik\u00f3w jest zaanga\u017cowanych na stronie, tym wi\u0119kszy wp\u0142yw ma b\u0142\u0105d na ca\u0142kowity czas odpowiedzi. Dlatego \u015bwiadomie planuj\u0119 uniewa\u017cnienia, aby ograniczy\u0107 liczb\u0119 r\u00f3wnoleg\u0142ych rekompilacji i <strong>Wskaz\u00f3wki<\/strong> wyg\u0142adzi\u0107.<\/p>\n\n<h2>Dlaczego uniewa\u017cnienie prowadzi do skok\u00f3w wydajno\u015bci<\/h2>\n\n<p>Warm-hit na buforowanym kodzie bajtowym jest niezwykle tani, natomiast ponowna kompilacja jest znacznie dro\u017csza. Przej\u015bcie od hit do miss powoduje zauwa\u017calne <strong>Top<\/strong>: parsowanie, optymalizacja, wpisywanie do struktur wewn\u0119trznych i potencjalne blokady sumuj\u0105 si\u0119. Je\u015bli kilka plik\u00f3w jest jednocze\u015bnie uniewa\u017cnionych, efekt si\u0119 zwielokrotnia. W ruchu te operacje s\u0105 uruchamiane r\u00f3wnolegle, konkuruj\u0105c o <strong>Zasoby<\/strong> i wyd\u0142u\u017caj\u0105 czas obs\u0142ugi. Wyja\u015bnia to typowe wzorce: 16 \u017c\u0105da\u0144 w ~200 ms, a nast\u0119pnie jedno w ~1,2 s \u2013 klasyczny b\u0142\u0105d OPcache spowodowany uniewa\u017cnieniem.<\/p>\n\n<p>Aktywna kontrola znacznika czasu (<code>opcache.validate_timestamps=1<\/code>) mo\u017ce pog\u0142\u0119bi\u0107 problem. Pami\u0119\u0107 podr\u0119czna cz\u0119sto sprawdza znaczniki czasu plik\u00f3w i natychmiast zaznacza zmiany, co w produkcji sprzyja niepotrzebnym kompilacjom. Je\u015bli wdra\u017cam bez resetowania, stare i nowe pliki mieszaj\u0105 si\u0119, co prowadzi do b\u0142\u0119d\u00f3w. Je\u015bli pami\u0119\u0107 podr\u0119czna jest pe\u0142na, szkody s\u0105 wi\u0119ksze, poniewa\u017c dodatkowo wypierany jest kod bajtowy. Suma tych czynnik\u00f3w powoduje kr\u00f3tkie, ale wyra\u017ane szczyty op\u00f3\u017anie\u0144.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/phpopcachemeeting4823.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Cz\u0119ste czynniki wywo\u0142uj\u0105ce w produkcji<\/h2>\n\n<p>Widz\u0119 wzrosty przede wszystkim tam, gdzie weryfikacja znacznika czasu pozostaje aktywna. <code>opcache.validate_timestamps=1<\/code> pasuje do rozwoju, ale w \u015brodowiskach na \u017cywo powoduje niepotrzebne <strong>Czeki<\/strong>. Drugi klasyk: zbyt ma\u0142y <code>opcache.max_accelerated_files<\/code> w du\u017cych projektach. W\u00f3wczas pliki wzajemnie si\u0119 wypieraj\u0105 i wymuszaj\u0105 powtarzaj\u0105ce si\u0119 rekompilacje. Po trzecie: wsp\u00f3lna pami\u0119\u0107 podr\u0119czna mi\u0119dzy pulami PHP-FPM lub witrynami, co powoduje, \u017ce uniewa\u017cnienia jednej witryny wp\u0142ywaj\u0105 na inne. Po czwarte: wdro\u017cenia bez <code>opcache_reset()<\/code> zapisywa\u0107 nowe \u015bcie\u017cki atomowe, ale stare wpisy plik\u00f3w w <strong>Schowek<\/strong> pozostawi\u0107.<\/p>\n\n<h2>Wykrywanie objaw\u00f3w i prawid\u0142owy pomiar<\/h2>\n\n<p>Najpierw sprawdzam wsp\u00f3\u0142czynnik trafie\u0144 i liczb\u0119 zaj\u0119tych klawiszy za pomoc\u0105 <code>opcache_get_status()<\/code>. Wska\u017anik trafie\u0144 znacznie poni\u017cej 99 % w produkcji wskazuje na b\u0142\u0119dy, kt\u00f3re cz\u0119sto s\u0105 zwi\u0105zane z uniewa\u017cnieniami. Je\u015bli obci\u0105\u017cenie procesora wzrasta kr\u00f3tkotrwale bez szczytu ruchu, warto sprawdzi\u0107 poziom wype\u0142nienia pami\u0119ci podr\u0119cznej i <strong>ponownie zweryfikowa\u0107<\/strong>-Ustawienia. PHP-Info dostarcza informacje o aktywnym statusie, podczas gdy metryki po stronie serwera uwidaczniaj\u0105 skoki. Praktyczne wprowadzenie do sensownych <a href=\"https:\/\/webhosting.de\/pl\/php-opcache-konfiguracja-optymalizacja-wydajnosci-cacheboost\/\">Ustawienia OPcache<\/a> pomaga nada\u0107 odpowiednie znaczenie warto\u015bciom pomiarowym.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/php-opcache-performance-peak-6472.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Hosting Tuning: sensowne parametry OPcache<\/h2>\n\n<p>Za pomoc\u0105 kilku parametr\u00f3w zapobiegam wielu skokom i utrzymuj\u0119 stabiln\u0105 latencj\u0119. W produkcji wy\u0142\u0105czam sprawdzanie znacznik\u00f3w czasu i aktywnie kontroluj\u0119 uniewa\u017cnienia poprzez wdro\u017cenia. Aby nie dochodzi\u0142o do wypierania kodu bajtowego, konieczne jest zapewnienie wystarczaj\u0105cej ilo\u015bci pami\u0119ci wsp\u00f3\u0142dzielonej i slot\u00f3w na pliki. W przypadku framework\u00f3w z du\u017c\u0105 ilo\u015bci\u0105 ci\u0105g\u00f3w znak\u00f3w obliczam bufor z du\u017cym zapasem. Poni\u017csza tabela zawiera popularne <strong>Parametry<\/strong> w:<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Parametry<\/th>\n      <th>Zalecenie<\/th>\n      <th>Efekt<\/th>\n      <th>Wskaz\u00f3wka<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td><code>opcache.enable<\/code><\/td>\n      <td>1<\/td>\n      <td>Aktywowane <strong>OPcache<\/strong><\/td>\n      <td>Zawsze w\u0142\u0105czaj w \u015brodowiskach na \u017cywo<\/td>\n    <\/tr>\n    <tr>\n      <td><code>opcache.validate_timestamps<\/code><\/td>\n      <td>0 (Prod)<\/td>\n      <td>Wy\u0142\u0105cz trwa\u0142e <strong>Czeki<\/strong><\/td>\n      <td>Sygnalizowanie zmian poprzez reset\/wdro\u017cenie<\/td>\n    <\/tr>\n    <tr>\n      <td><code>opcache.revalidate_freq<\/code><\/td>\n      <td>0 (Prod)<\/td>\n      <td>Brak skanowania interwa\u0142owego<\/td>\n      <td>Unikaj nieprzewidzianych uniewa\u017cnie\u0144<\/td>\n    <\/tr>\n    <tr>\n      <td><code>opcache.memory_consumption<\/code><\/td>\n      <td>256\u2013512 MB<\/td>\n      <td>Wi\u0119cej miejsca na kod bajtowy<\/td>\n      <td>Du\u017ce stosy wymagaj\u0105 wi\u0119cej <strong>Pami\u0119\u0107<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td><code>opcache.max_accelerated_files<\/code><\/td>\n      <td>15000\u201330000<\/td>\n      <td>Wi\u0119cej miejsc na pliki<\/td>\n      <td>Du\u017ce sklepy\/frameworki odnosz\u0105 korzy\u015bci<\/td>\n    <\/tr>\n    <tr>\n      <td><code>opcache.interned_strings_buffer<\/code><\/td>\n      <td>16\u201332<\/td>\n      <td>Redukcja duplikat\u00f3w<\/td>\n      <td>Przydatne w wielu przypadkach <strong>klasy<\/strong>\/Przestrzenie nazw<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Po wprowadzeniu zmian szybko restartuj\u0119 PHP-FPM lub Apache i obserwuj\u0119 wska\u017aniki. Dzi\u0119ki temu od razu widz\u0119, czy klucze i pami\u0119\u0107 s\u0105 wystarczaj\u0105co wydajne. Je\u015bli wsp\u00f3\u0142czynnik trafie\u0144 wzro\u015bnie do ~100 %, krzywa op\u00f3\u017anie\u0144 wyra\u017anie si\u0119 sp\u0142aszczy. Im bardziej sp\u00f3jne s\u0105 \u015bcie\u017cki wdra\u017cania i warto\u015bci konfiguracyjne, tym mniejsze s\u0105 obci\u0105\u017cenia zwi\u0105zane z uniewa\u017cnianiem. Zmniejsza to zar\u00f3wno szczyty, jak i ponowne uruchomienia po <a href=\"https:\/\/webhosting.de\/pl\/serwer-zimny-start-vs-cieply-start-roznice-w-wydajnosci-optymalizacja\/\">Zimny start a ciep\u0142y start<\/a>.<\/p>\n\n<h2>Strategie wdra\u017cania bez zb\u0119dnych szczyt\u00f3w<\/h2>\n\n<p>Stawiam na jasny przebieg: wdro\u017cenie kodu, kontrole stanu, a nast\u0119pnie ukierunkowane <code>opcache_reset()<\/code> lub idealnie dopasowane <code>opcache_invalidate()<\/code>-Po\u0142\u0105czenia z <code>force=true<\/code>. Reset nie tylko usuwa oznaczenia, ale tak\u017ce ca\u0142kowicie czy\u015bci pami\u0119\u0107 \u2013 co jest przydatne w przypadku du\u017cych wyda\u0144. W przypadku wdro\u017ce\u0144 typu blue-green lub symlink zwracam uwag\u0119 na sp\u00f3jno\u015b\u0107 \u015bcie\u017cek, aby pami\u0119\u0107 podr\u0119czna nie przechowywa\u0142a porzuconych wpis\u00f3w. Reset uruchamiam dopiero wtedy, gdy nowa wersja jest gotowa i zosta\u0142o wykonanych kilka \u017c\u0105da\u0144 typu \u201ewarmer\u201d. W ten spos\u00f3b rozk\u0142adam kosztowne kompilacje i utrzymuj\u0119 <strong>Op\u00f3\u017anienie<\/strong> niski.<\/p>\n\n<p>Kilka r\u00f3wnoleg\u0142ych <code>opcache_invalidate()<\/code>-Wywo\u0142ania mog\u0105 powodowa\u0107 konflikty blokad. W takich przypadkach najpierw dostarczam now\u0105 aplikacj\u0119 w trybie tylko do odczytu, podgrzewam najwa\u017cniejsze trasy, a nast\u0119pnie resetuj\u0119 raz i otwieram ruch. W przypadku backend\u00f3w API skupiam si\u0119 na punktach ko\u0144cowych o du\u017cym nat\u0119\u017ceniu ruchu. W ten spos\u00f3b trafiam na gor\u0105ce \u015bcie\u017cki przed g\u0142\u00f3wnym ruchem, unikam efekt\u00f3w thundering herd i zmniejszam kr\u00f3tkoterminowe <strong>CPU<\/strong>-Peaks.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/php-opcache-techoffice-9482.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Konfiguracje wielodost\u0119pne: izolowanie OPcache<\/h2>\n\n<p>Je\u015bli kilka projekt\u00f3w korzysta z tego samego OPcache, uniewa\u017cnienie jednego z nich wp\u0142ywa na wszystkie pozosta\u0142e. Dlatego rozdzielam pule PHP-FPM i ich segmenty pami\u0119ci podr\u0119cznej dla ka\u017cdej witryny. Zapobiega to sytuacji, w kt\u00f3rej wdro\u017cenie sklepu powoduje wzrost op\u00f3\u017anienia bloga lub zadanie cronjob opr\u00f3\u017cnia pami\u0119\u0107 podr\u0119czn\u0105 aplikacji. Dodatkowo ustawiam odpowiednie limity dla ka\u017cdego <strong>basen<\/strong>, aby \u017cadna instancja nie zajmowa\u0142a ca\u0142ej pami\u0119ci. W ten spos\u00f3b wsp\u00f3\u0142czynnik trafie\u0144 dla ka\u017cdej aplikacji pozostaje sta\u0142y, a <strong>Wskaz\u00f3wki<\/strong> pozostaj\u0105 lokalne.<\/p>\n\n<p>Sp\u00f3jno\u015b\u0107 \u015bcie\u017cek r\u00f3wnie\u017c odgrywa wa\u017cn\u0105 rol\u0119: je\u015bli rzeczywista struktura \u015bcie\u017cek zmienia si\u0119 przy ka\u017cdym wdro\u017ceniu, pomocna jest stabilna, wersjonowana \u015bcie\u017cka docelowa, kt\u00f3ra nie generuje za ka\u017cdym razem nowych kluczy pami\u0119ci podr\u0119cznej. W tym celu stosuj\u0119 autoloady Composer i unikam niepotrzebnych zmian w tysi\u0105cach plik\u00f3w. Mniejsza r\u00f3\u017cnica oznacza mniej blok\u00f3w bajt\u00f3w, kt\u00f3re nale\u017cy uniewa\u017cni\u0107. Znacznie zmniejsza to trudno\u015bci zwi\u0105zane z migracj\u0105 podczas aktualizacji i stabilizuje ruch na \u017cywo.<\/p>\n\n<h2>WordPress, Shopware i inne: konkretne wskaz\u00f3wki<\/h2>\n\n<p>W WordPressie \u0142\u0105cz\u0119 OPcache z pami\u0119ci\u0105 podr\u0119czn\u0105 obiekt\u00f3w (np. Redis), aby jednocze\u015bnie odci\u0105\u017cy\u0107 wykonywanie PHP i zapytania do bazy danych. W przypadku Shopware i podobnych sklep\u00f3w u\u017cywam <code>opcache.max_accelerated_files<\/code> wystarczaj\u0105co wysoka, poniewa\u017c dotyczy wielu plik\u00f3w. Wy\u0142\u0105czam sprawdzanie znacznik\u00f3w czasu i zapewniam przewidywalno\u015b\u0107. <strong>Resety<\/strong> bezpo\u015brednio po wdro\u017ceniu. Motywy, wtyczki i aktualizacje Composer podgrzewam celowo na najcz\u0119\u015bciej odwiedzanych trasach. W ten spos\u00f3b minimalizuje si\u0119 zimne starty i utrzymuje <strong>Przepustowo\u015b\u0107<\/strong> stabilny.<\/p>\n\n<p>W trybie programowania sprawdzanie sygnatury czasowej mo\u017ce pozosta\u0107 aktywne, na przyk\u0142ad za pomoc\u0105 <code>opcache.revalidate_freq=2<\/code>. Przyspiesza to lokalne iteracje bez obci\u0105\u017cania system\u00f3w produkcyjnych. W \u015brodowiskach stagingowych odtwarzam konfiguracj\u0119 na \u017cywo, aby unikn\u0105\u0107 niespodzianek. W ten spos\u00f3b wcze\u015bnie wykrywam w\u0105skie gard\u0142a i przenosz\u0119 kosztowne kompilacje poza przedzia\u0142 czasowy rzeczywistego ruchu u\u017cytkownik\u00f3w.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/php_opcache_desk_4927.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Przyk\u0142ad praktyczny i strategia pomiarowa<\/h2>\n\n<p>Typowy wzorzec: 16 \u017c\u0105da\u0144 trwa oko\u0142o 200 ms, a 17. skacze do oko\u0142o 1,2 s. W \u015bladach rozpoznaj\u0119 kilka kompilacji plik\u00f3w, kt\u00f3re zosta\u0142y wywo\u0142ane przez poprzedni\u0105 <strong>Uniewa\u017cnienie<\/strong> . Po celowym zresetowaniu i rozgrzaniu op\u00f3\u017anienia powracaj\u0105 do normalnych warto\u015bci. Poprawa o 30\u201370 % jest realistyczna, je\u015bli OPcache dzia\u0142a poprawnie, a b\u0142\u0119dy s\u0105 rzadkie. Raporty z praktyki pokazuj\u0105 dodatkowo niewielkie korzy\u015bci na ka\u017cde \u017c\u0105danie, je\u015bli kontrole znacznik\u00f3w czasu pozostaj\u0105 wy\u0142\u0105czone.<\/p>\n\n<p>Mierz\u0119 r\u00f3wnolegle trzy rzeczy: wsp\u00f3\u0142czynnik trafie\u0144, zaj\u0119te klucze i wykorzystanie pami\u0119ci. Je\u015bli wsp\u00f3\u0142czynnik trafie\u0144 spada, zwi\u0119kszam liczb\u0119 slot\u00f3w lub ograniczam niepotrzebne zmiany. Je\u015bli wykorzystanie pami\u0119ci osi\u0105ga maksymalny poziom, przypisuj\u0119 dodatkowe megabajty i sprawdzam stare wpisy. W przypadku zauwa\u017calnych skok\u00f3w na wykresie filtruj\u0119 przedzia\u0142y czasowe za pomoc\u0105 wdro\u017ce\u0144, zada\u0144 cron lub czyszczenia pami\u0119ci podr\u0119cznej. W ten spos\u00f3b odkrywam przyczyn\u0119 i zapobiegam przypadkowym <strong>Wskaz\u00f3wki<\/strong> w przysz\u0142o\u015bci.<\/p>\n\n<h2>Cz\u0119ste b\u0142\u0119dy \u2013 i co pomaga natychmiast<\/h2>\n\n<p>Wiele r\u00f3wnoleg\u0142ych <code>opcache_invalidate()<\/code>-Wywo\u0142ania prowadz\u0105 do konflikt\u00f3w blokad i powoduj\u0105 <code>fa\u0142szywy<\/code> . Zast\u0119puj\u0119 je w produktywnych skryptach wdra\u017cania pojedynczym <code>opcache_reset()<\/code> po rozgrzewce i oszcz\u0119dzam dzi\u0119ki temu <strong>Zamki<\/strong>. Je\u015bli pami\u0119\u0107 podr\u0119czna jest \u201epe\u0142na\u201c, zwi\u0119kszam <code>opcache.memory_consumption<\/code> oraz <code>opcache.max_accelerated_files<\/code> i sprawdzam, czy niepotrzebne pliki nie trafiaj\u0105 do pami\u0119ci podr\u0119cznej. W przypadku niestabilnej latencji analizuj\u0119 bufory ci\u0105g\u00f3w znak\u00f3w i zajmuj\u0119 si\u0119 ewentualnymi <a href=\"https:\/\/webhosting.de\/pl\/fragmentacja-pamieci-hosting-php-mysql-optymalizacja-przeplyw-bajtow\/\">Fragmentacja pami\u0119ci<\/a>. Je\u015bli kilka witryn korzysta z tej samej puli, konsekwentnie je rozdzielam, aby uniewa\u017cnienia nie wywo\u0142ywa\u0142y reakcji \u0142a\u0144cuchowych.<\/p>\n\n<p>Je\u015bli problem pojawia si\u0119 po wydaniu, sprawdzam \u015bcie\u017cki, dowi\u0105zania symboliczne i autoloader. R\u00f3\u017cne \u015bcie\u017cki dla identycznych klas generuj\u0105 dodatkowe klucze pami\u0119ci podr\u0119cznej i zwi\u0119kszaj\u0105 zu\u017cycie pami\u0119ci. Dlatego utrzymuj\u0119 \u015bcie\u017ck\u0119 projektu w stanie stabilnym i zmieniam tylko podfoldery wersji. Nast\u0119pnie porz\u0105dkuj\u0119 za pomoc\u0105 resetowania i pozwalam trasom Warmer \u0142adowa\u0107 najwa\u017cniejsze bloki kodu bajtowego. W ten spos\u00f3b przenosz\u0119 obci\u0105\u017cenie na kontrolowany moment, w kt\u00f3rym jest ono niewielkie. <strong>Ruch uliczny<\/strong>.<\/p>\n\n<h2>OPcache i PHP 8.x: JIT, wst\u0119pne \u0142adowanie i ich skutki uboczne<\/h2>\n\n<p>Od wersji PHP 8 dost\u0119pny jest kompilator JIT. Aktywuj\u0119 go ostro\u017cnie w klasycznych obci\u0105\u017ceniach sieciowych. Chocia\u017c JIT mo\u017ce pom\u00f3c w p\u0119tlach intensywnie wykorzystuj\u0105cych procesor, zwi\u0119ksza on z\u0142o\u017cono\u015b\u0107 i zapotrzebowanie na pami\u0119\u0107. W przypadku uniewa\u017cnie\u0144 funkcje, kt\u00f3rych to dotyczy, musz\u0105 zosta\u0107 ponownie skompilowane przez JIT, co mo\u017ce wzmocni\u0107 skoki. W przypadku interfejs\u00f3w API z wieloma kr\u00f3tkimi \u017c\u0105daniami korzy\u015bci s\u0105 cz\u0119sto marginalne, podczas gdy koszty zimnego startu rosn\u0105. Dlatego testuj\u0119 JIT oddzielnie i upewniam si\u0119, \u017ce rozmiary bufor\u00f3w nie powoduj\u0105 dodatkowych <strong>Restarty<\/strong> O\u0142owiany.<\/p>\n\n<p>Preloading to pot\u0119\u017cne narz\u0119dzie przeciwko b\u0142\u0119dom: podczas uruchamiania PHP \u0142aduj\u0119 wcze\u015bniej wyselekcjonowan\u0105 grup\u0119 kluczowych klas. Znacznie zmniejsza to liczb\u0119 pierwszych kompilacji. Jednocze\u015bnie preloading wymaga zdyscyplinowanego wdra\u017cania, poniewa\u017c wcze\u015bniej za\u0142adowane pliki s\u0105 powi\u0105zane ze \u015bcie\u017ckami i ABI. Je\u015bli \u015bcie\u017cki ulegn\u0105 zmianie, proces SAPI musi zosta\u0107 ponownie uruchomiony. Ograniczam preloading do naprawd\u0119 stabilnych pakiet\u00f3w podstawowych (np. Framework-Core) i pomijam zmienne elementy, takie jak motywy lub wtyczki. W ten spos\u00f3b korzystam z ciep\u0142ych \u015bcie\u017cek dost\u0119pu, bez konieczno\u015bci ponownego \u0142adowania ca\u0142ego systemu przy ka\u017cdej drobnej aktualizacji.<\/p>\n\n<h2>Zminimalizuj kompozytory, autoloadery i dost\u0119p do plik\u00f3w<\/h2>\n\n<p>Konsekwentnie optymalizuj\u0119 autoloader. Autorytatywna mapa klas zmniejsza <code>stat()<\/code>-Wywo\u0142ania i niepotrzebne do\u0142\u0105czanie. Im mniej plik\u00f3w jest obs\u0142ugiwanych na jedno \u017c\u0105danie, tym mniejsze s\u0105 szkody w przypadku b\u0142\u0119du. Podobnie uwa\u017cam, \u017ce pliki generowane (np. proxy) powinny by\u0107 stabilne, zamiast by\u0107 przepisywane przy ka\u017cdej kompilacji z zmieniaj\u0105cymi si\u0119 sygnaturami czasowymi. Mniejsza r\u00f3\u017cnica oznacza mniej uniewa\u017cnie\u0144.<\/p>\n\n<p>Kolejnym czynnikiem jest wewn\u0119trzna pami\u0119\u0107 podr\u0119czna Realpath PHP. Du\u017ce warto\u015bci rozmiaru i TTL zmniejszaj\u0105 liczb\u0119 wyszukiwa\u0144 w systemie plik\u00f3w. Zmniejsza to liczb\u0119 kontroli znacznik\u00f3w czasu, nawet je\u015bli s\u0105 one wy\u0142\u0105czone w \u015brodowisku produkcyjnym, i odci\u0105\u017ca system podczas rozruchu. Pami\u0119\u0107 podr\u0119czna Realpath pomaga unikn\u0105\u0107 niepotrzebnych op\u00f3\u017anie\u0144, szczeg\u00f3lnie w przypadku wolumin\u00f3w kontenerowych lub udzia\u0142\u00f3w sieciowych.<\/p>\n\n<h2>Wp\u0142yw systemu plik\u00f3w: NFS, dowi\u0105zania symboliczne i ochrona przed aktualizacjami<\/h2>\n\n<p>W sieciowych systemach plik\u00f3w cz\u0119\u015bciej wyst\u0119puj\u0105 odchylenia zegara i niesp\u00f3jno\u015bci. Planuj\u0119 wdro\u017cenia w spos\u00f3b \u015bci\u015ble atomowy i unikam mieszania starych i nowych plik\u00f3w. Opcja ochrony aktualizacji zapobiega natychmiastowej kompilacji w\u0142a\u015bnie zapisanych plik\u00f3w, dop\u00f3ki proces zapisu nie zostanie bezpiecznie zako\u0144czony. W \u015brodowiskach z atomowymi prze\u0142\u0105cznikami dowi\u0105za\u0144 symbolicznych ustawiam kr\u00f3tki czas ochrony, aby nie op\u00f3\u017ania\u0107 sztucznie celowych prze\u0142\u0105cze\u0144.<\/p>\n\n<p>Symlinki maj\u0105 wp\u0142yw na klucze pami\u0119ci podr\u0119cznej. Dlatego uwa\u017cam, \u017ce widoczna \u015bcie\u017cka dla PHP jest stabilna i zmieniam tylko podfolder wersji. W ten spos\u00f3b klucze pozostaj\u0105 wa\u017cne, a pami\u0119\u0107 podr\u0119czna nie odrzuca niepotrzebnie kodu bajtowego. W przypadku silnie zagnie\u017cd\u017conych \u015bcie\u017cek sprawdzam dodatkowo, czy r\u00f3\u017cne \u015bcie\u017cki rozdzielczo\u015bci prowadz\u0105 do tego samego celu \u2013 sp\u00f3jne montowania i jednolite <code>\u015bcie\u017cka do\u0142\u0105czania<\/code>Ustawienia pomagaj\u0105 unikn\u0105\u0107 duplikat\u00f3w.<\/p>\n\n<h2>Pog\u0142\u0119bienie diagnostyki: prawid\u0142owa interpretacja p\u00f3l statusu<\/h2>\n\n<p>Na stronie <code>opcache_get_status()<\/code> Opr\u00f3cz wska\u017anika trafno\u015bci interesuj\u0105 mnie przede wszystkim trzy obszary: <strong>memory_usage<\/strong> (cz\u0119\u015b\u0107 wykorzystana, wolna i rozdrobniona), <strong>opcache_statistics<\/strong> (Misses, Blacklist-Hits, max_cached_keys) oraz flagi <strong>restart_pending<\/strong>\/<strong>restart_w_trakcie<\/strong>. Je\u015bli pojawia si\u0119 du\u017co b\u0142\u0119d\u00f3w bez wdra\u017cania, pami\u0119\u0107 podr\u0119czna jest za ma\u0142a lub lista plik\u00f3w jest wyczerpana. Je\u015bli udzia\u0142 odpad\u00f3w przekroczy krytyczny pr\u00f3g, OPcache uruchamia wewn\u0119trzne <strong>Restarty<\/strong> z \u2013 wida\u0107 to na podstawie flag \u201ePending\/In-Progress\u201d i wyja\u015bnia powtarzaj\u0105ce si\u0119 skoki na wykresie op\u00f3\u017anie\u0144.<\/p>\n\n<p>W celu analizy przyczyn koreluj\u0119 te pola z metrykami hosta: szczytami obci\u0105\u017cenia procesora, operacjami wej\u015bcia\/wyj\u015bcia dysku, zmianami kontekstu. Faza wysokiego obci\u0105\u017cenia procesora systemowego i umiarkowanego obci\u0105\u017cenia sieci wskazuje na konflikty blokad w pami\u0119ci wsp\u00f3\u0142dzielonej lub systemie plik\u00f3w. Nast\u0119pnie zwi\u0119kszam liczb\u0119 slot\u00f3w, pami\u0119\u0107 i bufory ci\u0105g\u00f3w znak\u00f3w, zanim przyst\u0105pi\u0119 do optymalizacji na poziomie kodu. Wa\u017cne: reset na podstawie podejrze\u0144 jest skalpelem, a nie m\u0142otkiem. Planuj\u0119 go i obserwuj\u0119 efekty bezpo\u015brednio po jego wykonaniu.<\/p>\n\n<h2>PHP-FPM i kontrola wdra\u017cania<\/h2>\n\n<p>OPcache znajduje si\u0119 w przestrzeni adresowej procesu SAPI. W przypadku PHP-FPM oznacza to, \u017ce pe\u0142ny restart opr\u00f3\u017cnia pami\u0119\u0107 podr\u0119czn\u0105, a \u0142agodne ponowne za\u0142adowanie zazwyczaj utrzymuje j\u0105 w stanie stabilnym. Unikam restart\u00f3w typu \u201ebig bang\u201d i uruchamiam procesy robocze stopniowo, aby nie wszystkie procesy by\u0142y uruchamiane jednocze\u015bnie na zimno. W okresach szczytowego obci\u0105\u017cenia ograniczam r\u00f3wnie\u017c kr\u00f3tkotrwa\u0142e r\u00f3wnoleg\u0142e rekompilacje, na przyk\u0142ad poprzez skoordynowane \u017c\u0105dania rozgrzewania z nisk\u0105 warto\u015bci\u0105 <strong>Wsp\u00f3\u0142bie\u017cno\u015b\u0107<\/strong>.<\/p>\n\n<p>Liczba pracownik\u00f3w wp\u0142ywa na dzia\u0142anie spike'\u00f3w. Zbyt wiele r\u00f3wnoczesnych proces\u00f3w mo\u017ce spowodowa\u0107 burz\u0119 kompilacji w przypadku uniewa\u017cnie\u0144. Dlatego dostosowuj\u0119 liczb\u0119 proces\u00f3w do liczby procesor\u00f3w i \u015bredniego czasu obs\u0142ugi w warunkach ciep\u0142ych. Celem jest utrzymanie wystarczaj\u0105cej r\u00f3wnoleg\u0142o\u015bci bez wywo\u0142ywania burzy kompilacji.<\/p>\n\n<h2>\u015arodowiska kontenerowe i chmurowe<\/h2>\n\n<p>W kontenerach o kr\u00f3tkiej \u017cywotno\u015bci zimne starty wyst\u0119puj\u0105 naturalnie cz\u0119\u015bciej. Stawiam na bramki gotowo\u015bci, kt\u00f3re przechodz\u0105 w stan \u201egotowo\u015bci\u201c dopiero po celowym rozgrzaniu. Wdro\u017cenia z nisk\u0105 jednoczesn\u0105 odnow\u0105 zapobiegaj\u0105 jednoczesnemu tworzeniu kodu bajtowego przez wiele nowych pod\u00f3w. W konfiguracjach wielostrefowych testuj\u0119 r\u00f3wnie\u017c \u015bcie\u017ck\u0119 rozgrzewania dla ka\u017cdej strefy, aby szczyty op\u00f3\u017anie\u0144 nie wyst\u0119powa\u0142y w skupiskach geograficznych.<\/p>\n\n<p>W przypadku obraz\u00f3w kompilacji warto zamontowa\u0107 kod aplikacji jako tylko do odczytu i wy\u0142\u0105czy\u0107 sprawdzanie sygnatur czasowych. Dzi\u0119ki temu pami\u0119\u0107 podr\u0119czna pozostaje stabilna, a r\u00f3\u017cnica mi\u0119dzy kompilacj\u0105 a czasem wykonywania jest wyra\u017ana. Je\u015bli kontenery s\u0105 cz\u0119sto uruchamiane, rozk\u0142adam rozgrzewanie falami: najpierw gor\u0105ce punkty ko\u0144cowe, a nast\u0119pnie \u015bcie\u017cki drugorz\u0119dne. Wyg\u0142adza to krzyw\u0105 i chroni przed reakcjami \u0142a\u0144cuchowymi na <strong>CPU<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/php-opcache-invalidierung-1472.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Pracownicy CLI, zadania cron i procesy w tle<\/h2>\n\n<p>D\u0142ugotrwa\u0142e procesy robocze cz\u0119\u015bciowo korzystaj\u0105 z aktywowanego OPcache w kontek\u015bcie CLI. Testuj\u0119 to dla konsument\u00f3w kolejki i harmonogram\u00f3w, kt\u00f3re wykonuj\u0105 wiele identycznych zada\u0144 w jednym procesie. Wa\u017cne jest rozr\u00f3\u017cnienie: kr\u00f3tkotrwa\u0142e zadania cron nie zyskuj\u0105 wiele, poniewa\u017c ich cykl \u017cycia jest zbyt kr\u00f3tki, aby sensownie wykorzysta\u0107 pami\u0119\u0107 podr\u0119czn\u0105. Ponadto zadania CLI nie mog\u0105 nieumy\u015blnie wywo\u0142ywa\u0107 globalnego resetowania. Dla bezpiecze\u0144stwa blokuj\u0119 funkcje OPcache za pomoc\u0105 ogranicze\u0144 API i reguluj\u0119 uniewa\u017cnienia wy\u0142\u0105cznie poprzez wdro\u017cenie internetowe.<\/p>\n\n<h2>Precyzyjne dostrajanie: zaawansowane parametry i pu\u0142apki<\/h2>\n\n<p>Niekt\u00f3re parametry cz\u0119sto dzia\u0142aj\u0105 w ukryciu: dopuszczalny udzia\u0142 zmarnowanych blok\u00f3w decyduje o tym, kiedy OPcache uruchamia si\u0119 ponownie wewn\u0119trznie. Je\u015bli warto\u015b\u0107 jest zbyt niska lub pami\u0119\u0107 jest zbyt ma\u0142a, istnieje ryzyko cz\u0119stych restart\u00f3w w tle z pikami czasowymi. Wol\u0119 po\u015bwi\u0119ci\u0107 nieco wi\u0119cej pami\u0119ci wsp\u00f3\u0142dzielonej, ni\u017c ryzykowa\u0107 niezauwa\u017calne fragmentacje. R\u00f3wnie istotna jest kwestia, czy komentarze pozostaj\u0105 w kodzie bajtowym. Niekt\u00f3re frameworki wykorzystuj\u0105 docbloki; ich usuni\u0119cie pozwala zaoszcz\u0119dzi\u0107 pami\u0119\u0107, ale mo\u017ce spowodowa\u0107 uszkodzenie funkcji \u2013 celowo to testuj\u0119.<\/p>\n\n<p>W przypadku du\u017cych baz kodu zalecam prowadzenie czarnej listy plik\u00f3w, kt\u00f3re nie powinny by\u0107 buforowane (np. cz\u0119sto generowane artefakty). Ka\u017cdy bajt mniej w pami\u0119ci ulotnej zwi\u0119ksza stabilno\u015b\u0107. A je\u015bli mo\u017cliwe jest u\u017cycie stron kodu z du\u017cymi stronami pami\u0119ci, mo\u017ce to zmniejszy\u0107 obci\u0105\u017cenie TLB po stronie procesora \u2013 ale w praktyce tylko wtedy, gdy host jest do tego odpowiednio skonfigurowany. Decyduj\u0119 o tym dla ka\u017cdego serwera i mierz\u0119 efekt, zamiast aktywowa\u0107 to og\u00f3lnie.<\/p>\n\n<h2>Strategie Warmera: ukierunkowane zamiast rozproszone<\/h2>\n\n<p>Dobre rozgrzewanie koncentruje si\u0119 na \u015bcie\u017ckach dost\u0119pu. Symuluj\u0119 typowe przep\u0142ywy u\u017cytkownik\u00f3w: strona g\u0142\u00f3wna, listy produkt\u00f3w, szczeg\u00f3\u0142y produktu, realizacja transakcji, logowanie, punkty ko\u0144cowe API o wysokiej cz\u0119stotliwo\u015bci. Wystarczy kilka \u017c\u0105da\u0144 na tras\u0119, o ile s\u0105 one wykonywane szeregowo lub z nisk\u0105 r\u00f3wnoleg\u0142o\u015bci\u0105. Dzi\u0119ki temu nie powstaj\u0105 niepotrzebne burze blokad, a pami\u0119\u0107 podr\u0119czna jest stale wype\u0142niana. W systemach dynamicznych powtarzam rozgrzewk\u0119 po ponownym uruchomieniu, ale nie po ka\u017cdej drobnej zmianie \u2013 wa\u017cne jest oddzielenie czasu kompilacji od czasu dzia\u0142ania.<\/p>\n\n<h2>Podr\u0119cznik: wydanie bez spik\u00f3w w 8 krokach<\/h2>\n\n<ol>\n  <li>Optymalizacja autoloadera i minimalizacja r\u00f3\u017cnic w kompilacji (brak zb\u0119dnych zmian znacznik\u00f3w czasu).<\/li>\n  <li>Dostarcz kod atomowy, utrzymuj stabilno\u015b\u0107 \u015bcie\u017cek, przygotuj prze\u0142\u0105cznik dowi\u0105zania symbolicznego.<\/li>\n  <li>Aktywuj kontrole gotowo\u015bci, najpierw powstrzymaj ruch.<\/li>\n  <li>Przeprowadzi\u0107 ukierunkowane rozgrzewanie \u015bcie\u017cek dost\u0119pu przy niskim stopniu r\u00f3wnoleg\u0142o\u015bci.<\/li>\n  <li>Celowo <code>opcache_reset()<\/code> uruchomi\u0107, gdy nowa wersja b\u0119dzie gotowa.<\/li>\n  <li>Kr\u00f3tka rozgrzewka przed trasami drugorz\u0119dnymi, a nast\u0119pnie otwarcie Readiness.<\/li>\n  <li>Monitorowanie wsp\u00f3\u0142czynnika trafie\u0144, kluczy, pami\u0119ci i procesora.<\/li>\n  <li>W przypadku nieprawid\u0142owo\u015bci: wyostrzy\u0107 sloty\/pami\u0119\u0107, sprawdzi\u0107 \u015bcie\u017cki, unika\u0107 skupisk blokad.<\/li>\n<\/ol>\n\n<p>Dzi\u0119ki tej procedurze rozk\u0142adam w czasie kosztowne procesy kompilacji i zapobiegam sytuacji, w kt\u00f3rej pierwsi prawdziwi u\u017cytkownicy ponosz\u0105 koszty zwi\u0105zane z zimn\u0105 pami\u0119ci\u0105 podr\u0119czn\u0105. Decyzje takie jak wy\u0142\u0105czenie kontroli znacznik\u00f3w czasu w produkcji sprawiaj\u0105, \u017ce kontrol\u0119 sprawuje skrypt wdro\u017ceniowy, a nie system plik\u00f3w.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/01\/php-opcache-performance-peak-6472.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Kr\u00f3tkie podsumowanie<\/h2>\n\n<p>Uniewa\u017cnienia s\u0105 konieczne, ale powoduj\u0105 kosztowne rekompilacje, kt\u00f3re mog\u0105 okaza\u0107 si\u0119 <strong>Wydajno\u015b\u0107<\/strong>-Szczyty. W produkcji wy\u0142\u0105czam sprawdzanie znacznik\u00f3w czasu, generuj\u0119 du\u017ce rozmiary pami\u0119ci i slot\u00f3w plik\u00f3w oraz planuj\u0119 resetowanie wok\u00f3\u0142 wdro\u017ce\u0144. Dzi\u0119ki rozgrzewce, stabilnym \u015bcie\u017ckom i izolowanym pulom wsp\u00f3\u0142czynnik trafie\u0144 pozostaje wysoki, a op\u00f3\u017anienia niewielkie. Monitorowanie wsp\u00f3\u0142czynnika trafie\u0144, kluczy i pami\u0119ci pokazuje, czy ustawienia s\u0105 skuteczne. Kto bierze pod uwag\u0119 te czynniki, znacznie zmniejsza liczb\u0119 pomini\u0119\u0107 i utrzymuje <strong>Czas reakcji<\/strong> niezawodnie niski.<\/p>","protected":false},"excerpt":{"rendered":"<p>Uniewa\u017cnienie PHP Opcache powoduje skoki wydajno\u015bci. Poznaj przyczyny i wskaz\u00f3wki dotycz\u0105ce dostrajania hostingu, aby uzyska\u0107 stabiln\u0105 wydajno\u015b\u0107 PHP.<\/p>","protected":false},"author":1,"featured_media":16462,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[780],"tags":[],"class_list":["post-16469","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"1557","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":null,"_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"PHP Opcache Invalidierung","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"16462","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/16469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=16469"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/16469\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/16462"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=16469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=16469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=16469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}