{"id":16635,"date":"2026-01-07T11:51:19","date_gmt":"2026-01-07T10:51:19","guid":{"rendered":"https:\/\/webhosting.de\/cpu-cache-l1-l3-hosting-wichtiger-ram-cacheboost\/"},"modified":"2026-01-07T11:51:19","modified_gmt":"2026-01-07T10:51:19","slug":"pamiec-podreczna-procesora-l1-l3-hosting-wazna-pamiec-ram-cacheboost","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/cpu-cache-l1-l3-hosting-wichtiger-ram-cacheboost\/","title":{"rendered":"Dlaczego pami\u0119\u0107 podr\u0119czna procesora (L1-L3) jest wa\u017cniejsza ni\u017c pami\u0119\u0107 RAM w hostingu?"},"content":{"rendered":"<p>W wielu rzeczywistych obci\u0105\u017ceniach hosting pami\u0119ci podr\u0119cznej procesora decyduje o czasie \u0142adowania i TTFB, poniewa\u017c dane L1\u2013L3 s\u0105 dostarczane bezpo\u015brednio do rdzenia w nanosekundach, omijaj\u0105c w ten spos\u00f3b powolny dost\u0119p do pami\u0119ci RAM. Wyra\u017anie pokazuj\u0119, kiedy rozmiar i hierarchia pami\u0119ci podr\u0119cznej dominuj\u0105 nad czasem obliczeniowym i dlaczego wi\u0119ksza ilo\u015b\u0107 pami\u0119ci RAM bez wydajnej pami\u0119ci podr\u0119cznej nie przynosi prawie \u017cadnych efekt\u00f3w.<\/p>\n\n<h2>Punkty centralne<\/h2>\n<ul>\n  <li><strong>L1\u2013L3<\/strong> buforuje gor\u0105ce dane bli\u017cej rdzenia i znacznie zmniejsza op\u00f3\u017anienia.<\/li>\n  <li><strong>Hierarchia pami\u0119ci podr\u0119cznej<\/strong> wyprzedza pami\u0119\u0107 RAM w przypadku dynamicznych zapyta\u0144 i wysokiej r\u00f3wnoleg\u0142o\u015bci.<\/li>\n  <li><strong>Pami\u0119\u0107 podr\u0119czna na rdze\u0144<\/strong> ma wi\u0119ksze znaczenie w przypadku VPS\/DEDI ni\u017c sama ilo\u015b\u0107 pami\u0119ci RAM.<\/li>\n  <li><strong>Obci\u0105\u017cenia<\/strong> takie jak WordPress, zapytania do baz danych i PHP odnosz\u0105 bezpo\u015brednie korzy\u015bci.<\/li>\n  <li><strong>Wyb\u00f3r taryfy<\/strong> z ukierunkowaniem na procesor zapewnia zauwa\u017calnie szybsze odpowiedzi.<\/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\/cpu-cache-serverhardware-8142.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Dlaczego pami\u0119\u0107 podr\u0119czna procesora L1\u2013L3 znacznie przyspiesza hosting<\/h2>\n<p>A <strong>Schowek<\/strong> znajduje si\u0119 bezpo\u015brednio przy procesorze i dostarcza instrukcje oraz dane bez konieczno\u015bci przechodzenia przez p\u0142yt\u0119 g\u0142\u00f3wn\u0105. L1 jest ma\u0142y, ale niezwykle szybki; L2 rozszerza bufor; L3 przechowuje wiele materia\u0142\u00f3w do pobrania dla wszystkich rdzeni. W ten spos\u00f3b procesor unika czas\u00f3w oczekiwania, kt\u00f3re wyst\u0119puj\u0105 podczas dost\u0119pu do <strong>RAM<\/strong> . Czas oczekiwania sumuje si\u0119 w przypadku serwer\u00f3w internetowych, poniewa\u017c ka\u017cde \u017c\u0105danie powoduje kilka dost\u0119p\u00f3w do bazy danych i systemu plik\u00f3w. W logach cz\u0119sto widz\u0119, jak kr\u00f3tkie trafienia w pami\u0119ci podr\u0119cznej zast\u0119puj\u0105 d\u0142ugie dost\u0119py do pami\u0119ci RAM, zmniejszaj\u0105c w ten spos\u00f3b TTFB i obci\u0105\u017cenie procesora.<\/p>\n\n<h2>W ten spos\u00f3b wsp\u00f3\u0142pracuj\u0105 ze sob\u0105 L1, L2 i L3<\/h2>\n<p>Pami\u0119\u0107 podr\u0119czna L1 dostarcza instrukcje i dane w ci\u0105gu kilku cykli zegara, co <strong>Op\u00f3\u017anienie<\/strong> do minimalnych warto\u015bci. Je\u015bli L1 nie trafi, L2 obs\u0142uguje \u017c\u0105danie, co wymaga nieco wi\u0119cej czasu. Je\u015bli L2 nie trafi, wkracza L3, kt\u00f3ry jest stosunkowo du\u017cy i utrzymuje wysoki wsp\u00f3\u0142czynnik trafie\u0144. Dopiero gdy L3 nie trafi, CPU trafia do pami\u0119ci RAM, co spowalnia cykl. Dlatego planuj\u0119 hosting w taki spos\u00f3b, aby na ka\u017cdy rdze\u0144 przypada\u0142a wystarczaj\u0105ca ilo\u015b\u0107 <strong>L3<\/strong> jest dost\u0119pna, poniewa\u017c w\u0142a\u015bnie tam wiele r\u00f3wnoleg\u0142ych proces\u00f3w internetowych uzyskuje dost\u0119p do wsp\u00f3lnych zestaw\u00f3w danych.<\/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\/cpu_cache_hosting_2347.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Pami\u0119\u0107 podr\u0119czna a pami\u0119\u0107 RAM: przegl\u0105d danych liczbowych<\/h2>\n<p>Podsumowuj\u0119 typowe wielko\u015bci i pr\u0119dko\u015bci wzgl\u0119dne, aby <strong>Klasyfikacja<\/strong> \u0142atwiejsze. Warto\u015bci r\u00f3\u017cni\u0105 si\u0119 w zale\u017cno\u015bci od generacji procesora, ale proporcje pozostaj\u0105 podobne. L1 jest bardzo ma\u0142a i niezwykle szybka, L2 znajduje si\u0119 po\u015brodku, L3 jest du\u017ca i cz\u0119sto dzieli si\u0119 mi\u0119dzy rdzenie. Pami\u0119\u0107 RAM zapewnia pojemno\u015b\u0107, ale wy\u017csz\u0105 <strong>czas dost\u0119pu<\/strong> i s\u0142abnie w przypadku przypadkowych dost\u0119p\u00f3w. W\u0142a\u015bnie te przypadkowe dost\u0119py dominuj\u0105 w stosach serwer\u00f3w internetowych sk\u0142adaj\u0105cych si\u0119 z serwera internetowego, PHP i bazy danych.<\/p>\n<table>\n  <thead>\n    <tr>\n      <th>poziom pami\u0119ci<\/th>\n      <th>Typowy rozmiar<\/th>\n      <th>Op\u00f3\u017anienie (wzgl\u0119dne)<\/th>\n      <th>Czynnik a pami\u0119\u0107 RAM<\/th>\n      <th>Podzielone?<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>L1 (instrukcje\/dane)<\/td>\n      <td>32\u201364 KB na rdze\u0144<\/td>\n      <td>bardzo ma\u0142y<\/td>\n      <td>do ~170\u00d7 szybszy<\/td>\n      <td>nie<\/td>\n    <\/tr>\n    <tr>\n      <td>L2<\/td>\n      <td>256 KB\u20131 MB na rdze\u0144<\/td>\n      <td>bardzo ma\u0142y<\/td>\n      <td>Znacznie szybciej<\/td>\n      <td>nie<\/td>\n    <\/tr>\n    <tr>\n      <td>L3<\/td>\n      <td>do 40 MB+, podzielone<\/td>\n      <td>niski<\/td>\n      <td>do ~15\u00d7 szybszy<\/td>\n      <td>cz\u0119sto tak<\/td>\n    <\/tr>\n    <tr>\n      <td>Pami\u0119\u0107 RAM (DDR)<\/td>\n      <td>Obszar GB<\/td>\n      <td>wysoki<\/td>\n      <td>Linia bazowa<\/td>\n      <td>W ca\u0142ym systemie<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Architektura pami\u0119ci podr\u0119cznej w szczeg\u00f3\u0142ach: inkluzywna, ekskluzywna, chiplety<\/h2>\n<p>Nie ka\u017cdy L3 jest taki sam: niekt\u00f3re architektury dzia\u0142aj\u0105 w trybie <strong>inkluzywny<\/strong> L3 (przechowuje kopie linii L1\/L2), inne stawiaj\u0105 na <strong>ekskluzywny\/g\u0142\u00f3wnie ekskluzywny<\/strong> (L3 zawiera dodatkowe wiersze, kt\u00f3re nie znajduj\u0105 si\u0119 w L1\/L2). Tryb inkluzywny zwi\u0119ksza sp\u00f3jno\u015b\u0107 i prostot\u0119, ale zajmuje wi\u0119cej miejsca. Tryb ekskluzywny lepiej wykorzystuje pojemno\u015b\u0107, ale wymaga sprytnego zarz\u0105dzania ofiarami. W projektach opartych na chipletach L3 cz\u0119sto <strong>pro Die<\/strong> zbierane w pakiety; zapytania, kt\u00f3re trafiaj\u0105 na inny serwer, powoduj\u0105 dodatkowe op\u00f3\u017anienie. W przypadku hostingu oznacza to, \u017ce staram si\u0119, <strong>Obci\u0105\u017cenia prac\u0105 i ich zestawy gor\u0105cych danych na dzie\u0144<\/strong> aby wi\u0119kszo\u015b\u0107 dost\u0119p\u00f3w pozosta\u0142a w lokalnym L3. Zmniejsza to zmienno\u015b\u0107 i stabilizuje 95.\/99. percentyl.<\/p>\n\n<h2>Rzeczywiste obci\u0105\u017cenia: WordPress, bazy danych, interfejsy API<\/h2>\n<p>Dynamiczne strony uruchamiaj\u0105 wiele ma\u0142ych <strong>Dost\u0119py<\/strong>: PHP pobiera szablony, MySQL dostarcza wiersze, serwer WWW odczytuje pliki. Je\u015bli te wzorce trafiaj\u0105 do pami\u0119ci podr\u0119cznej, TTFB bezpo\u015brednio spada. WordPress pokazuje to bardzo wyra\u017anie, zw\u0142aszcza w przypadku motyw\u00f3w zwi\u0105zanych z procesorem i wieloma wtyczkami. Kto zag\u0142\u0119bi si\u0119 w ten temat, znajdzie typowe w\u0105skie gard\u0142a w <a href=\"https:\/\/webhosting.de\/pl\/wordpress-cpu-bound-analiza-techniczna-waskie-gardla-optymalizacja-obciazenie\/\">WordPress ograniczony przez procesor<\/a> opisa\u0142. Planuj\u0119 do tego rdzenie z du\u017c\u0105 ilo\u015bci\u0105 <strong>L3<\/strong> na rdze\u0144, poniewa\u017c zestaw zapyta\u0144 i fragmenty kodu bajtowego cz\u0119\u015bciej pozostaj\u0105 w buforze.<\/p>\n<p>Warto\u015bci praktyczne: Hotset \u015bredniej wielko\u015bci witryny WordPress cz\u0119sto mie\u015bci si\u0119 w zakresie jednocyfrowych megabajt\u00f3w (kod bajtowy Opcache, mapy autoloadera, cz\u0119ste indeksy baz danych). Sklepy e-commerce wprowadzaj\u0105 dodatkowo indeksy cen i magazyn\u00f3w oraz dane sesji. Je\u015bli ten pakiet mie\u015bci si\u0119 w L3, wahania czasu odpowiedzi ulegaj\u0105 znacznemu zmniejszeniu \u2013 nawet bez zmian w aplikacji lub rozmiarze pami\u0119ci RAM.<\/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\/cpu-cache-vs-ram-hosting-8294.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Rdzenie, w\u0105tki i pami\u0119\u0107 podr\u0119czna na rdze\u0144<\/h2>\n<p>Wiele rdzeni pomaga tylko wtedy, gdy ka\u017cdy rdze\u0144 ma wystarczaj\u0105c\u0105 moc obliczeniow\u0105. <strong>Schowek<\/strong> inaczej w\u0105tki b\u0119d\u0105 silniej ze sob\u0105 konkurowa\u0107. Technologia Hyper-Threading nie podwaja mocy obliczeniowej, ale dzieli struktur\u0119 pami\u0119ci podr\u0119cznej. Dzi\u0119ki wi\u0119kszej ilo\u015bci L3 na rdze\u0144 obci\u0105\u017cenie pozostaje stabilne, a rozrzut czas\u00f3w odpowiedzi niewielki. Szczeg\u00f3lnie korzystaj\u0105 na tym wielodost\u0119pne serwery VPS, poniewa\u017c zestawy gor\u0105cych danych z wielu witryn pozostaj\u0105 we wsp\u00f3lnej pami\u0119ci L3. Dlatego zwracam uwag\u0119 na stosunek rdzeni do <strong>Pojemno\u015b\u0107 L3<\/strong>, a nie tylko na licznik rdzenia.<\/p>\n<p>Cz\u0119sty b\u0142\u0105d: \u201cWi\u0119cej w\u0105tk\u00f3w = wi\u0119ksza przepustowo\u015b\u0107\u201d. W praktyce wzrasta liczba konflikt\u00f3w i zmian kontekstu. Ograniczam liczb\u0119 pracownik\u00f3w dok\u0142adnie tak, aby <strong>IPC<\/strong> (instrukcje na cykl) pozostaje wysoka, a wska\u017aniki b\u0142\u0119d\u00f3w nie rosn\u0105. W testach obci\u0105\u017ceniowych zapewnia to cz\u0119sto lepsze wyniki procentowe ni\u017c podej\u015bcie oparte na \u201cmaksymalnej r\u00f3wnoleg\u0142o\u015bci\u201d.<\/p>\n\n<h2>NUMA, dost\u0119p do pami\u0119ci i pu\u0142apki op\u00f3\u017anie\u0144<\/h2>\n<p>Nowoczesne serwery cz\u0119sto wykorzystuj\u0105 wiele <strong>NUMA<\/strong>-w\u0119z\u0142y, co mo\u017ce wyd\u0142u\u017cy\u0107 \u015bcie\u017cki w pami\u0119ci. Rozproszenie proces\u00f3w mi\u0119dzy w\u0119z\u0142ami zwi\u0119ksza op\u00f3\u017anienia i zmniejsza liczb\u0119 trafie\u0144 w pami\u0119ci podr\u0119cznej. Preferuj\u0119 \u0142\u0105czenie us\u0142ug w taki spos\u00f3b, aby zestawy najcz\u0119\u015bciej u\u017cywanych danych pozostawa\u0142y lokalne. Kr\u00f3tki przegl\u0105d <a href=\"https:\/\/webhosting.de\/pl\/blog-numa-architektura-serwer-wydajnosc-hosting-sprzet-optymalizacja-infrastruktura\/\">Architektura NUMA<\/a> pokazuje, jak wa\u017cna jest blisko\u015b\u0107 mi\u0119dzy rdzeniem, pami\u0119ci\u0105 podr\u0119czn\u0105 i bankiem pami\u0119ci RAM. Dzi\u0119ki dobremu rozmieszczeniu zapytania zapewniaj\u0105 wi\u0119ksz\u0105 <strong>Trafienie w pami\u0119ci podr\u0119cznej<\/strong> i mniej kosztowne wycieczki do odleg\u0142ych magazyn\u00f3w.<\/p>\n<p>Wa\u017cne: <strong>Ruch Cross-NUMA<\/strong> Nie jest to tylko kwestia pami\u0119ci RAM. Sp\u00f3jno\u015b\u0107 L3 mi\u0119dzy w\u0119z\u0142ami r\u00f3wnie\u017c zwi\u0119ksza op\u00f3\u017anienia. Dlatego podczas obci\u0105\u017cenia testuj\u0119, na kt\u00f3rym w\u0119\u017ale NUMA znajduje si\u0119 aktywna baza danych i pule PHP-FPM, i staram si\u0119 utrzyma\u0107 procesy internetowe i bazodanowe w tej samej topologii. Zapobiega to ci\u0105g\u0142emu przesuwaniu sesji, plan\u00f3w zapyta\u0144 i kodu bajtowego \u201cprzez ulic\u0119\u201d.<\/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\/cpu_cache_vs_ram_hosting_4392.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>I\/O czeka na procesor: dlaczego pami\u0119\u0107 RAM rzadko stanowi w\u0105skie gard\u0142o<\/h2>\n<p>Pojemno\u015b\u0107 pami\u0119ci RAM pomaga w buforowaniu systemu plik\u00f3w, ale wi\u0119kszo\u015b\u0107 <strong>czas oczekiwania<\/strong> powstaje w \u015bcie\u017cce kodu aplikacji. \u015acie\u017cki te korzystaj\u0105 z szybkich pami\u0119ci podr\u0119cznych instrukcji i danych, a nie z wi\u0119kszej liczby gigabajt\u00f3w. W przypadku losowych dost\u0119p\u00f3w przepustowo\u015b\u0107 pami\u0119ci RAM szybko si\u0119 wyczerpuje, podczas gdy du\u017ca pami\u0119\u0107 L3 amortyzuje skoki. W profilach mierz\u0119, \u017ce wska\u017aniki braku pami\u0119ci podr\u0119cznej s\u0105 \u015bci\u015ble powi\u0105zane z TTFB i 95. percentylem. Dlatego przypisuj\u0119 pami\u0119ci podr\u0119cznej procesora wy\u017csz\u0105 wag\u0119 ni\u017c czystej <strong>Rozmiar pami\u0119ci RAM<\/strong>, a\u017c spadnie wska\u017anik niepowodze\u0144.<\/p>\n<p>R\u00f3wnie\u017c dyski SSD \u201cdzia\u0142aj\u0105\u201d szybciej, gdy procesor ma mniej pracy. Mniej zmian kontekstu i kr\u00f3tsze \u015bcie\u017cki kodu oznaczaj\u0105 szybsze przetwarzanie operacji wej\u015bcia\/wyj\u015bcia. Katalizatorem s\u0105 tutaj pami\u0119ci podr\u0119czne: utrzymuj\u0105 one \u015bcie\u017cki instrukcji w stanie aktywnym i minimalizuj\u0105 op\u00f3\u017anienia, podczas gdy harmonogram musi przenosi\u0107 mniej w\u0105tk\u00f3w.<\/p>\n\n<h2>Zrozumienie typ\u00f3w b\u0142\u0119d\u00f3w pami\u0119ci podr\u0119cznej i ich celowe ograniczanie<\/h2>\n<p>W praktyce rozr\u00f3\u017cniam cztery przyczyny:<\/p>\n<ul>\n  <li><strong>Obowi\u0105zkowe nieobecno\u015bci<\/strong> (na zimno): pierwsze dost\u0119py do nowych danych; mo\u017cna je ograniczy\u0107 dzi\u0119ki strategiom rozgrzewania (wst\u0119pne \u0142adowanie najcz\u0119\u015bciej u\u017cywanych tras, rozgrzewanie dla Opcache).<\/li>\n  <li><strong>Brak wydajno\u015bci<\/strong>: Hotset nie mie\u015bci si\u0119 ca\u0142kowicie w Lx; zmniejszam rozmiar poprzez mniejsze \u015bcie\u017cki kod\u00f3w, mniej wtyczek i zoptymalizowane indeksy.<\/li>\n  <li><strong>Konflikt niepowodze\u0144<\/strong>: Zbyt wiele wierszy odnosi si\u0119 do tych samych zestaw\u00f3w; lepsza lokalizacja danych i mniejsze rozproszenie pomagaj\u0105, podobnie jak \u201cbardziej p\u0142ynne\u201d struktury danych.<\/li>\n  <li><strong>B\u0142\u0119dy sp\u00f3jno\u015bci<\/strong>: Dane wsp\u00f3\u0142dzielone s\u0105 cz\u0119sto zapisywane; minimalizuj\u0119 globalne zmienne i u\u017cywam lokalnych pami\u0119ci podr\u0119cznych (APCu), aby ograniczy\u0107 ruch zapisu.<\/li>\n<\/ul>\n<p>Na poziomie aplikacji oznacza to: ograniczam dost\u0119p losowy (np. mniej scatter-gather w PHP), \u0142\u0105cz\u0119 zapytania, dbam o sp\u00f3jno\u015b\u0107 pami\u0119ci podr\u0119cznej obiekt\u00f3w i upewniam si\u0119, \u017ce gor\u0105cy kod nie jest ci\u0105gle kompilowany lub ponownie \u0142adowany.<\/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\/cpu-cache-serverdetail-7462.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Praktyczne kryteria zakupu pakiet\u00f3w hostingowych<\/h2>\n<p>W przypadku serwer\u00f3w VPS i serwer\u00f3w dedykowanych najpierw sprawdzam <strong>CPU<\/strong>-Generation, a nast\u0119pnie rozmiar pami\u0119ci podr\u0119cznej na rdze\u0144. Taryfa z mniejsz\u0105 ilo\u015bci\u0105 pami\u0119ci RAM, ale silnym L3 na rdze\u0144 cz\u0119sto wygrywa z modelem z du\u017c\u0105 ilo\u015bci\u0105 pami\u0119ci RAM i s\u0142ab\u0105 pami\u0119ci\u0105 podr\u0119czn\u0105. Wa\u017cne s\u0105 r\u00f3wnie\u017c taktowanie pod obci\u0105\u017ceniem, zachowanie Turbo i spos\u00f3b przydzielania rdzeni przez dostawc\u0119. W przypadku sklep\u00f3w z du\u017c\u0105 liczb\u0105 jednoczesnych zapyta\u0144 pojemno\u015b\u0107 L3 op\u0142aca si\u0119 ponadproporcjonalnie. Kto i tak korzysta z pami\u0119ci podr\u0119cznej w aplikacji, bazie danych i CDN, dodatkowo korzysta z <strong>Cache\u2011silny<\/strong> CPU, poniewa\u017c zestawy s\u0142uchawkowe trafiaj\u0105 cz\u0119\u015bciej.<\/p>\n<p>Pytam wyra\u017anie: ile <strong>vCPU na fizyczny rdze\u0144<\/strong> Dzieli dostawca? Czy vCPU s\u0105 mieszane ponad granicami NUMA? Czy istniej\u0105 gwarancje, \u017ce vCPU znajduj\u0105 si\u0119 w obr\u0119bie tego samego uk\u0142adu? Takie szczeg\u00f3\u0142y decyduj\u0105 o tym, czy L3 dzia\u0142a jako akcelerator, czy te\u017c jest zak\u0142\u00f3cany przez Noisy Neighbors. <em>rozcie\u0144czony<\/em> wola.<\/p>\n\n<h2>Tuning: oprogramowanie lepiej wykorzystuje pami\u0119\u0107 podr\u0119czn\u0105<\/h2>\n<p>Utrzymuj\u0119 PHP\u2011Opcache, ustawienia JIT i bufor DB w taki spos\u00f3b, aby \u015bcie\u017cki najcz\u0119\u015bciej u\u017cywane w <strong>L3<\/strong> pasuj\u0105 i rzadko wymagaj\u0105 ponownej kompilacji. Zbyt rygorystyczne przypisywanie w\u0105tk\u00f3w hamuje optymalizacj\u0119 harmonogramu; dlaczego cz\u0119sto nie przynosi to oczekiwanych rezultat\u00f3w, pokazuje <a href=\"https:\/\/webhosting.de\/pl\/przypisywanie-procesora-hosting-rzadko-ma-sens-optymalizacja-tuning\/\">Przypinanie procesora<\/a>. Zamiast tego ograniczam liczb\u0119 proces\u00f3w roboczych, aby nie wypiera\u0142y one pami\u0119ci podr\u0119cznej. Dbam o kr\u00f3tkie \u015bcie\u017cki kodu, mniej rozga\u0142\u0119zie\u0144 i ciep\u0142e pami\u0119ci podr\u0119czne bajt\u00f3w. W ten spos\u00f3b zmniejsza si\u0119 liczba b\u0142\u0119d\u00f3w, a procesor po\u015bwi\u0119ca wi\u0119cej czasu na <strong>praca u\u017cyteczna<\/strong> zamiast czeka\u0107.<\/p>\n<p>Dostawy w stosach PHP <strong>Pami\u0119\u0107 OPcache<\/strong> oraz <strong>struny wewn\u0119trzne<\/strong> znacznie lepsza lokalizacja. Dodatkowo stawiam na lokalny <strong>APCu<\/strong> dla danych o du\u017cej ilo\u015bci odczyt\u00f3w i <strong>trwa\u0142a pami\u0119\u0107 podr\u0119czna obiekt\u00f3w<\/strong> (np. Redis) z przejrzyst\u0105 liczb\u0105 kluczy, aby skr\u00f3ty klawiszowe pozosta\u0142y w L3. W bazie danych redukuj\u0119 indeksy drugorz\u0119dne do niezb\u0119dnego minimum i optymalizuj\u0119 kolejno\u015b\u0107 sortowania, aby powsta\u0142y sekwencje zamiast wzorc\u00f3w skokowych.<\/p>\n\n<h2>Wska\u017aniki: co monitoruj\u0119<\/h2>\n<p>Obserwuj\u0119 nieustannie <strong>Miss-Rates<\/strong> (L1\/L2\/L3), IPC (instrukcje na cykl) i taktowanie pod obci\u0105\u017ceniem. Dodatkowo sprawdzam TTFB, 95.\/99. percentyl i logi b\u0142\u0119d\u00f3w przy zmianach obci\u0105\u017cenia. Te wska\u017aniki pokazuj\u0105, czy \u015bcie\u017cka kodu mie\u015bci si\u0119 w pami\u0119ci podr\u0119cznej, czy te\u017c si\u0119 z niej wymyka. Koreluj\u0119 szczyty b\u0142\u0119d\u00f3w z wdro\u017ceniami, szczytami ruchu i nowymi wtyczkami. W ten spos\u00f3b szybko znajduj\u0119 miejsca, w kt\u00f3rych wi\u0119cej <strong>Trafienie w pami\u0119ci podr\u0119cznej<\/strong> przynios\u0105 najwi\u0119ksze korzy\u015bci.<\/p>\n<p>W celu przeprowadzenia analiz ad hoc ogl\u0105dam na \u017cywo \u201c<strong>statystyka perf<\/strong>\u201d \u2014 wska\u017aniki takie jak cykle, instrukcje, rozga\u0142\u0119zienia, braki rozga\u0142\u0119zie\u0144 i braki LLC. Na sta\u0142e korzystam z zapis\u00f3w, cz\u0119stotliwo\u015bci pod obci\u0105\u017ceniem (<strong>turbostat<\/strong>) i zmiany kontekstu na sekund\u0119. Gdy IPC spada pod presj\u0105, a jednocze\u015bnie wzrasta liczba b\u0142\u0119d\u00f3w LLC, w\u0105skim gard\u0142em jest prawie zawsze pojemno\u015b\u0107 pami\u0119ci podr\u0119cznej lub lokalizacja danych, a nie przepustowo\u015b\u0107 pami\u0119ci RAM.<\/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\/cpu_cache_hosting_licht_0538.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Benchmarking i struktura testu: mierzenie realistycznych odpowiedzi<\/h2>\n<p>Testuj\u0119 z <strong>reprezentatywnych trasach<\/strong> zamiast tylko statycznych plik\u00f3w. Po\u0142\u0105czenie strony startowej, szczeg\u00f3\u0142\u00f3w produktu, wyszukiwania i kasy obejmuje r\u00f3\u017cne \u015bcie\u017cki kodu. Dzi\u0119ki stopniowanym poziomom obci\u0105\u017cenia (zimny, ciep\u0142y, gor\u0105cy) mog\u0119 rozpozna\u0107, jak szybko zape\u0142nia si\u0119 pami\u0119\u0107 podr\u0119czna i gdzie si\u0119 przewraca. Wa\u017cna jest <strong>Faza stanu ustalonego<\/strong>, w kt\u00f3rej cz\u0119stotliwo\u015b\u0107, IPC i wska\u017anik b\u0142\u0119d\u00f3w dzia\u0142aj\u0105 stabilnie. Dopiero wtedy mog\u0119 rzetelnie por\u00f3wna\u0107 taryfy i generacje procesor\u00f3w.<\/p>\n<p>Sygna\u0142y mierzalne:<\/p>\n<ul>\n  <li>Mediana TTFB spada znacznie po rozgrzewce i pozostaje na niskim poziomie \u2192 pami\u0119ci podr\u0119czne dzia\u0142aj\u0105.<\/li>\n  <li>95.\/99. percentyl dryfuje tylko nieznacznie przy szczytowym obci\u0105\u017ceniu \u2192 wystarczaj\u0105ca ilo\u015b\u0107 L3 na rdze\u0144.<\/li>\n  <li>IPC ro\u015bnie przy mniejszej liczbie pracownik\u00f3w \u2192 zmniejsza si\u0119 liczba konflikt\u00f3w i pomy\u0142ek.<\/li>\n  <li>LLC-Misses koreluj\u0105 z nowymi wtyczkami\/funkcjami \u2192 Hotset powi\u0119kszony.<\/li>\n<\/ul>\n<p>W ka\u017cdym te\u015bcie dokumentuj\u0119 aktywn\u0105 cz\u0119stotliwo\u015b\u0107 procesora, liczb\u0119 proces\u00f3w roboczych, zestaw tras i, w razie potrzeby, rozmieszczenie NUMA. Dzi\u0119ki temu mo\u017cna jednoznacznie przyporz\u0105dkowa\u0107 i odtworzy\u0107 optymalizacje.<\/p>\n\n<h2>Wirtualizacja i wielodost\u0119pno\u015b\u0107: dzielenie pami\u0119ci podr\u0119cznej bez jej utraty<\/h2>\n<p>W \u015brodowiskach VPS klienci dziel\u0105 ten sam fizyczny L3. Je\u015bli vCPU go\u015bcia s\u0105 szeroko roz\u0142o\u017cone na maszynie, <strong>traci<\/strong> Lokalizacja. Dobrzy dostawcy \u0142\u0105cz\u0105 vCPU go\u015bcia na tym samym CCX\/CCD\/Tile. Widz\u0119 to w bardziej stabilnych percentylach i mniejszej wariancji. Dodatkowo ograniczam pracownik\u00f3w, aby m\u00f3j w\u0142asny stos nie przeci\u0105\u017ca\u0142 L3 i nie powodowa\u0142 konflikt\u00f3w z s\u0105siadami.<\/p>\n<p>Kontenery na tym samym ho\u015bcie konkuruj\u0105 ze sob\u0105 w podobny spos\u00f3b. Smuk\u0142y kontener bazowy z podgrzanym Opcache i jak najmniejszym dynamicznym autoloadingiem utrzymuje L3 w czysto\u015bci. Unikam agresywnych sidecar\u00f3w na tym samym w\u0119\u017ale, kt\u00f3re generuj\u0105 du\u017ce powierzchnie instrukcji (np. \u201cloguj wszystko, wsz\u0119dzie\u201d). Nale\u017cy to umie\u015bci\u0107 na oddzielnym w\u0119\u017ale lub poza procesorem Hot Path.<\/p>\n\n<h2>Prefetcher, TLB i rozmiary stron: ukryte d\u017awignie<\/h2>\n<p>Nowoczesne procesory posiadaj\u0105 <strong>Prefetcher<\/strong>, kt\u00f3re preferuj\u0105 wzorce liniowe. Im bardziej sekwencyjny jest uk\u0142ad kodu i danych, tym wi\u0119ksze s\u0105 korzy\u015bci. Dlatego preferuj\u0119 strukturyzowane tablice i bardziej kompaktowe struktury zamiast uk\u0142ad\u00f3w opartych na hashach i silnie rozga\u0142\u0119zionych. Ponadto zwracam uwag\u0119 na <strong>TLB<\/strong> (Translation Lookaside Buffer): Wiele operacji Page Walk jest kosztownych i anga\u017cuje L1\/L2. Du\u017ce rozmiary stron (Huge Pages) mog\u0105 pom\u00f3c w pokryciu bajt\u00f3w kodu i zestaw\u00f3w DB-Hotsets przy mniejszej liczbie wpis\u00f3w TLB. W konfiguracjach InnoDB i JIT sprawdzam zatem, czy wi\u0119ksze strony przynosz\u0105 wymierne korzy\u015bci \u2013 zawsze za pomoc\u0105 pomiaru A\/B, poniewa\u017c nie ka\u017cdy stos odnosi takie same korzy\u015bci.<\/p>\n\n<h2>Lista kontrolna praktyczna: szybki hosting pami\u0119ci podr\u0119cznej w 10 krokach<\/h2>\n<ul>\n  <li>Generacja procesor\u00f3w i <strong>L3 na rdze\u0144<\/strong> Sprawd\u017a nie tylko liczb\u0119 rdzeni i pami\u0119\u0107 RAM.<\/li>\n  <li>Sprawd\u017a przydzia\u0142 vCPU: <strong>\u0142\u0105czenie<\/strong> pro Die\/NUMA zamiast rozproszenia.<\/li>\n  <li>Ogranicz liczb\u0119 pracownik\u00f3w do optymalnego poziomu IPC; zminimalizuj rozrzut percentyli.<\/li>\n  <li>PHP\u2011Opcache nale\u017cy rozmiarowa\u0107 hojnie, ale celowo; unika\u0107 ponownych kompilacji.<\/li>\n  <li>Korzystaj z trwa\u0142ych pami\u0119ci podr\u0119cznych obiekt\u00f3w, utrzymuj niewielk\u0105 przestrze\u0144 kluczy.<\/li>\n  <li>Dostosowanie indeks\u00f3w DB do popularnych zapyta\u0144; ograniczenie losowych dost\u0119p\u00f3w.<\/li>\n  <li>Zapewnienie lokalizacji NUMA: sie\u0107, PHP, baza danych w tym samym w\u0119\u017ale, je\u015bli to mo\u017cliwe.<\/li>\n  <li>\u015acie\u017cki danych przyjazne dla prefetchera: sekwencyjne, mniej skok\u00f3w.<\/li>\n  <li>Wdra\u017canie z rozgrzewk\u0105; przechwytywanie zimnych pomini\u0119\u0107 przed szczytami ruchu.<\/li>\n  <li>Monitorowanie: IPC, wska\u017anik b\u0142\u0119d\u00f3w L1\/L2\/L3, takt, 95.\/99. percentyl w spos\u00f3b ci\u0105g\u0142y korelowa\u0107.<\/li>\n<\/ul>\n\n<h2>Kr\u00f3tkie podsumowanie<\/h2>\n<p>W hostingu przyspiesza silny <strong>Pami\u0119\u0107 podr\u0119czna procesora<\/strong> L1\u2013L3 ka\u017cde dynamiczne \u017c\u0105danie, podczas gdy dodatkowa pami\u0119\u0107 RAM zapewnia przede wszystkim pojemno\u015b\u0107. Dlatego priorytetowo traktuj\u0119 rozmiar pami\u0119ci podr\u0119cznej na rdze\u0144, czyste rozmieszczenie proces\u00f3w i odpowiedni\u0105 liczb\u0119 pracownik\u00f3w. W narz\u0119dziach widz\u0119, \u017ce mniej pomy\u0142ek przek\u0142ada si\u0119 na wymiernie lepsze czasy odpowiedzi i stabilne percentyle. Wybieraj\u0105c taryfy, nale\u017cy zwraca\u0107 uwag\u0119 na dane dotycz\u0105ce pami\u0119ci podr\u0119cznej i generacji procesora, a nie tylko na dane dotycz\u0105ce GB. W ten spos\u00f3b mo\u017cna uzyska\u0107 wi\u0119cej z tego samego oprogramowania. <strong>Wydajno\u015b\u0107<\/strong> \u2013 bez konieczno\u015bci dokonywania kosztownych modernizacji sprz\u0119tu.<\/p>","protected":false},"excerpt":{"rendered":"<p>Pami\u0119\u0107 podr\u0119czna procesora (L1-L3) odgrywa wi\u0119ksz\u0105 rol\u0119 w hostingu ni\u017c pami\u0119\u0107 RAM dla optymalnej wydajno\u015bci pami\u0119ci podr\u0119cznej procesora i architektury serwera.<\/p>","protected":false},"author":1,"featured_media":16628,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-16635","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server_vm"],"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":"1286","_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":"1","_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":"CPU Cache Hosting","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":"16628","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/16635","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=16635"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/16635\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/16628"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=16635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=16635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=16635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}