Czym jest pamięć podręczna? Jak buforowane dane przyspieszają działanie

Czym jest pamięć podręczna? Jak buforowane dane przyspieszają działanie

Nowoczesny procesor potrafi pobrać wartość z najbliższej pamięci podręcznej w czasie znacznie poniżej nanosekundy. Dotarcie do pamięci głównej po tę samą wartość zajmuje około sto razy więcej czasu. Dlatego układ scalony robi to, co oczywiste: przechowuje kopię danych, których prawdopodobnie potrzebuje, tuż obok siebie. Ta kopia to pamięć podręczna, a sztuczka ta powtarza się na każdej warstwie obliczeniowej, od krzemu w procesorze, po serwer, który dostarczył tę stronę. Ten poradnik wyjaśnia, czym jest pamięć podręczna, jak działa buforowanie, gdzie jest dyskretnie przechowywane i czy warto zawracać sobie głowę jej czyszczeniem.

Definicja pamięci podręcznej: czym właściwie jest pamięć podręczna

Pamięć podręczna to tymczasowa pamięć masowa. Mała, szybka i umieszczona jak najbliżej tego, co jej potrzebuje. Przechowuje kopie danych, które system prawdopodobnie będzie potrzebował ponownie, więc w odpowiednim momencie może je odzyskać, zamiast powtarzać powolną lub kosztowną pracę. Otwórz tę stronę po raz drugi, a znaczna jej część zostanie załadowana z kopii już znajdującej się na Twoim komputerze, a nie z serwera.

Słowo „tymczasowy” odgrywa tu kluczową rolę. Dane w pamięci podręcznej nigdy nie są oryginałem. Są duplikatem, przechowywanym wyłącznie dla szybkości i można je wyrzucić, kiedy tylko się chce. Wyczyść je, a nic wartościowego nie zniknie. System po prostu wraca do prawdziwego źródła i odbudowuje kopię. Saldo Twojego konta bankowego nie jest przechowywane w pamięci podręcznej; kopia strony internetowej pokazująca to saldo może. Ta różnica między źródłem prawdy a kopią jednorazową to główny powód, dla którego buforowanie jest bezpieczne. W najgorszym przypadku, gdy kopia brakuje lub jest błędna, system wzrusza ramionami, pobiera dane ze źródła i kontynuuje działanie.

Jak działają pamięci podręczne: trafienia, chybienia i usuwanie pamięci podręcznej

Każda skrytka, wszędzie, opiera się na jednym pytaniu: czy mam już kopię tego? Tak oznacza szybką odpowiedź. Dostarcz kopię, pomiń powolną ścieżkę i gotowe. Nie oznacza, że wykonujesz powolną pracę raz: pobierasz ze źródła, zwracasz wynik i przechowujesz kopię po wyjściu, aby przyszłe żądania były szybkie. To cały mechanizm. Reszta to rozliczanie dwóch kłopotliwych problemów: co wyrzucić, gdy zabraknie miejsca, i jak uniknąć zwrócenia nieaktualnej kopii.

Trafienie do pamięci podręcznej a chybienie w pamięci podręcznej

Znalazłeś? To trafienie w pamięć podręczną. Nie ma? Błąd w pamięci podręcznej, który wymusza przekierowanie do wolniejszego magazynu kopii zapasowych. Odsetek żądań, które kończą się trafieniem, nazywa się współczynnikiem trafień i jest to wartość, którą inżynierowie faktycznie monitorują. Sieć dostarczania treści obsługująca pliki statyczne, takie jak obrazy i arkusze stylów, dąży do 95–99 procent. Trafienie w ten punkt sprawia, że prawie każdy odwiedzający otrzymuje kopię w pobliżu, podczas gdy serwer źródłowy pozostaje tam ledwo tknięty. Niski współczynnik trafień oznacza, że pamięć podręczna służy głównie jako dekoracja.

Gdy pamięć podręczna się zapełnia: zasady usuwania

Pamięć podręczna jest celowo mała. Szybkie przechowywanie kosztuje, więc nigdy nie ma miejsca na wszystko, a gdy pamięć podręczna się zapełni, coś musi zniknąć. Regułą, która wybiera przegranego, jest polityka usuwania. Zazwyczaj domyślną jest zasada „Least Recently Used”, czyli LRU: usuń wszystko, co najdłużej leżało nietknięte, zakładając, że to, co ostatnio ignorowałeś, będziesz ignorował nadal. Inne metody liczą inaczej. Zasada „Least Frequently Used” (LFU) śledzi, jak często uzyskiwany jest dostęp do każdego elementu. Zasada „First In First Out” (FIFO) po prostu usuwa najstarszy wpis. Ta sama gra, inne ubrania. Każda zasada to tak naprawdę zgadywanie, która kopia będzie najmniej pomijana.

Utrzymywanie świeżości kopii: zasady TTL i zapisu

Kopia jest dobra tylko wtedy, gdy nadal pasuje do źródła. Większość pamięci podręcznych stempluje każdy wpis czasem życia, czyli TTL: odliczaniem, po którym kopia jest uznawana za wygasłą i musi zostać ponownie sprawdzona lub pobrana. W internecie nagłówek Cache-Control ustawia ten zegar. Zbiór reguł to RFC 9111 , a jego dyrektywa max-age pozwala, aby odpowiedź pozostała w pamięci podręcznej przez okres do roku lub 31 536 000 sekund, jeśli chcesz uzyskać dokładną liczbę. Zapisy stanowią drugą połowę problemu. Zapis z wyprzedzeniem zapisuje do pamięci podręcznej i źródła w tym samym czasie, co jest bezpieczne, ale wolniejsze. Zapis z powrotem zapisuje do pamięci podręcznej teraz, a do źródła później, co jest szybkie, ale pozostawia krótkie okno, w którym oba dane się nie zgadzają. Wybierz swój kompromis.

co to jest pamięć podręczna

Typy pamięci podręcznej: od procesora do sieci dostarczania treści

Oto część, której większość wyjaśnień pomija. Pamięć podręczna przeglądarki i pamięć podręczna procesora L1 brzmią jak dwa różne światy — ale z różnych odległości to ta sama idea. Każda warstwa przechowuje kopie danych o wolnym dostępie blisko tego, co ich potrzebuje. Przechodząc przez drabinę od środka na zewnątrz, schemat powtarza się przez całą drogę.

Buforowanie pamięci: poziomy pamięci podręcznej procesora L1, L2, L3

Najszybsze buforowanie odbywa się w samym procesorze. Nowoczesne procesory mają trzy poziomy pamięci podręcznej zbudowanej z SRAM, typu pamięci, który jest znacznie szybszy niż DRAM używany w pamięci głównej i znacznie droższy w przeliczeniu na bajt. L1 jest niewielki i niemal natychmiastowy, kilkadziesiąt kilobajtów na rdzeń odpowiada w mniej więcej nanosekundę. L2 jest większy i nieco wolniejszy. L3 jest jeszcze większy i współdzielony przez rdzenie; Intel Core i9-14900K dostarczany jest z 36 MB tej pamięci, a AMD Ryzen 9 7950X3D zwiększa L3 do 128 MB. Wszystko to istnieje po to, aby zamaskować jedną lukę: pobranie danych z L1 zajmuje mniej niż nanosekundę, podczas gdy pamięć główna DDR5 zajmuje około 70, co stanowi około stukrotną różnicę. Pamięć podręczna działa, ponieważ programy ponownie wykorzystują te same dane i dane znajdujące się w ich pobliżu, nawyk zwany lokalnością odniesienia.

Warstwa Typowy rozmiar Typowy czas dostępu Co zawiera
Pamięć podręczna procesora L1 32-80 KB na rdzeń ~0,7-1 ns Następne instrukcje i wartości
Pamięć podręczna procesora L2 0,5-2 MB na rdzeń ~3-4 ns Ostatnio używane dane w pobliżu rdzenia
Pamięć podręczna procesora L3 16-128 MB współdzielone ~10-20 ns Dane współdzielone między rdzeniami
Pamięć główna (RAM) 8-64 GB ~70-100 ns Uruchamianie programów i aktywne dane
Pamięć SSD 256 GB-4 TB ~50-100 µs Pliki i system operacyjny
Węzeł brzegowy CDN zmienia się ~20 ms przez sieć Kopie internetowe w pobliżu odwiedzającego
Serwer źródłowy zmienia się ~100-200 ms między regionami Źródło prawdy

Pamięci podręczne dysku, systemu operacyjnego i aplikacji

Oprogramowanie, poza sprzętem, przechowuje własne pamięci podręczne. System operacyjny przechowuje często używane dane, takie jak ostatnio odczytywane pliki, w wolnej pamięci RAM, dzięki czemu ich ponowne otwieranie jest natychmiastowe. Bazy danych buforują wyniki typowych zapytań. Aplikacje dodają dedykowaną warstwę pamięci, często Redis lub Memcached, która znajduje się między aplikacją a jej bazą danych i odpowiada na powtarzające się żądania w ciągu mikrosekund. Zadanie jest identyczne jak w przypadku procesora: przechowuje to, co jest aktualnie najszybsze, w szybszej pamięci masowej, aby nie płacić dwukrotnie za wolniejszy procesor.

Buforowanie po stronie serwera i CDN

Warstwa zewnętrzna obejmuje cały internet. Kiedy serwer WWW buforuje gotowe strony, unika ich ponownego tworzenia dla każdego odwiedzającego. Sieć dostarczania treści (CDN) idzie dalej, kopiując te zasoby na serwery brzegowe rozproszone po całym świecie, dzięki czemu każde żądanie jest obsługiwane z maszyny fizycznie znajdującej się w pobliżu użytkownika. Odbiór na brzegu sieci CDN może zająć około 20 milisekund, w porównaniu ze 100 do 200 milisekundami, gdy żądanie musi przekroczyć kontynenty, aby dotrzeć do źródła. Model ten dominuje obecnie w internecie: do 2024 roku około 75% treści stron trzecich było serwowanych za pośrednictwem sieci CDN.

Pamięć podręczna przeglądarki: co przechowuje Twoja przeglądarka internetowa

Pamięć podręczna przeglądarki to ta, z którą większość ludzi faktycznie się styka. Po załadowaniu strony przeglądarka po cichu kopiuje jej fragmenty na urządzenie: kod HTML, arkusze stylów, skrypty, obrazy, czcionki. Wracając później, przeglądarka odczytuje te pliki bezpośrednio z dysku, zamiast pobierać je ponownie. Dlatego druga wizyta na stronie otwiera się szybciej niż pierwsza. Logo witryny? Pobrane raz, ponownie używane na każdej stronie, która je wyświetla.

Oto, co mnie wkurza: większość tej prędkości pozostaje niewykorzystana. W 2021 roku około 90,4% odpowiedzi stron internetowych na komputerach stacjonarnych nadawało się do buforowania , a mimo to 52% witryn nadal plasowało się poniżej 25. percentyla w standardowym audycie buforowania przeglądarek. Wygrana jest po prostu tam, za darmo, a większość stron internetowych ją pomija. Prawidłowo skonfiguruj buforowanie, a korzyści będą natychmiastowe. Powtórne wizyty stają się szybsze, zużycie danych mobilnych spada, a serwer źródłowy przestaje obsługiwać te same powtarzające się żądania.

co to jest pamięć podręczna

Korzyści z buforowania: dlaczego przyspiesza działanie

Buforowanie to pewnego rodzaju transakcja. Wydajesz trochę pamięci i akceptujesz niewielkie ryzyko obsługiwania czegoś lekko przestarzałego, a w zamian otrzymujesz szybkość, mniejsze obciążenie i niższe koszty. Te trzy korzyści sprawiają, że buforowanie pojawia się na każdej warstwie, a nie tylko na jednej.

Szybkość to oczywisty atut: udostępnianie kopii z pobliskiego magazynu danych jest lepsze niż ponowne obliczanie wyniku lub przesyłanie go przez sieć. Drugą korzyścią jest mniejsze obciążenie źródła. Każde żądanie obsługiwane przez pamięć podręczną to żądanie, którego serwer bazy danych lub źródłowy nigdy nie musi obsłużyć, co pozwala systemom działać w czasie szczytów obciążenia. Trzecią korzyścią są czyste koszty: udostępnianie bajtów z pamięci podręcznej z węzła brzegowego jest tańsze niż generowanie ich na nowo i przesyłanie z serwera centralnego, a gdy zachodzi potrzeba wielokrotnego dostępu do danych, te oszczędności szybko się kumulują.

Korzyści dla użytkownika w zakresie wydajności aplikacji są realne i mierzalne. Badania Google z 2018 roku dotyczące witryn mobilnych wykazały, że skrócenie czasu ładowania o jedną sekundę zwiększyło liczbę konwersji nawet o 27%, a szeroko cytowane badanie Aberdeen Group z 2012 roku oszacowało koszt jednosekundowego opóźnienia na 7% spadek liczby konwersji. Szybsze strony zatrzymują użytkowników. Buforowanie to jeden z najtańszych sposobów na osiągnięcie tego celu.

Typ pamięci podręcznej Gdzie mieszka Co przechowuje Kto tym zarządza? Typowy czas życia
Pamięć podręczna procesora (L1/L2/L3) Na procesorze Gorące instrukcje i dane Sprzęt, automatycznie Mikrosekundy
Pamięć podręczna przeglądarki Twoje urządzenie HTML, CSS, JS, obrazy, czcionki Twoja przeglądarka internetowa Godziny do roku
Pamięć podręczna aplikacji Pamięć serwera aplikacji Wyniki zapytania, sesje Deweloperzy (Redis, Memcached) Sekundy do godzin
Pamięć podręczna serwera/CDN Serwery brzegowe na całym świecie Strony, media, odpowiedzi API Właściciel witryny i CDN Na kontrolę pamięci podręcznej TTL
Pamięć podręczna DNS System operacyjny, router, resolver Wyszukiwanie domeny do adresu IP Program do rozpoznawania nazw domen (DNS) Od 5 minut do 24 godzin

Czy należy czyścić dane z pamięci podręcznej, a jeśli tak, to kiedy?

Ludzie traktują czyszczenie pamięci podręcznej jak zadanie na liście kontrolnej konserwacji. Pomiń tę listę. To tak naprawdę narzędzie do rozwiązywania problemów, nic więcej. W większości przypadków dane z pamięci podręcznej należy pozostawić tam, gdzie są, ponieważ po cichu przyspieszają one ładowanie się każdej ponownie odwiedzanej strony.

Kiedy więc czyszczenie pamięci podręcznej jest warte zachodu? Szczerze mówiąc, tylko w trzech sytuacjach. Strona psuje się lub ciągle wyświetla nieaktualną wersję z pamięci podręcznej po aktualizacji, a ta stara kopia w pamięci podręcznej przeglądarki jest prawie zawsze winowajcą; wyczyszczenie pamięci podręcznej wymusza pobranie czystej wersji. Korzystałeś z komputera współdzielonego lub publicznego i chcesz usunąć lokalny ślad tego, co przeglądałeś. Albo w telefonie został ostatni gigabajt i potrzebujesz odzyskać miejsce, ponieważ pamięć podręczna przeglądarki może po cichu rozrosnąć się do kilku gigabajtów. Poza tymi sytuacjami czyszczenie pamięci podręcznej nic nie daje. Spowalnia to każdą kolejną wizytę na każdej stronie, podczas gdy przeglądarka odbudowuje swoje kopie, a niektóre przeglądarki wylogowują Cię w trakcie tego procesu. Najczęstszy błąd: czyszczenie pamięci podręcznej nie usuwa plików cookie ani zapisanych haseł. Są one przechowywane w oddzielnym magazynie i przetrwają czyszczenie pamięci podręcznej, chyba że zaznaczysz również ich pola.

Przeglądarka Gdzie wyczyścić pamięć podręczną
Chrom Ustawienia, Prywatność i bezpieczeństwo, Usuwanie danych przeglądania, Obrazy i pliki w pamięci podręcznej
Firefox Ustawienia, Prywatność i bezpieczeństwo, Pliki cookie i dane witryn, Wyczyść dane
Safari Ustawienia, Safari, Wyczyść historię i dane witryn
Krawędź Ustawienia, Prywatność, Wybierz, co wyczyścić

Pamięć podręczna kontra pliki cookie kontra bufor: rozwianie wątpliwości

Trzy słowa, ciągle mylone, a wszystkie dotyczą przechowywania danych. Każde z nich pełni inną funkcję. Pamięć podręczna przechowuje kopie treści, abyś mógł do nich szybciej dotrzeć następnym razem. Plik cookie to drobna notatka, którą witryna zostawia, aby Cię zapamiętać: sesję logowania, ustawienie języka, zapisane preferencje. Przenosi tożsamość, a nie treść. Bufor to coś innego. Przechowuje dane w ruchu, takie jak kilka sekund filmu, które ładuje się przed momentem, w którym je oglądasz. Najkrótszy sposób, aby je uporządkować: dane z pamięci podręcznej pozostają w pamięci do ponownego wykorzystania, plik cookie zapamiętuje Twoją tożsamość, a bufor opróżnia się natychmiast po użyciu.

O czym należy pamiętać w kontekście pamięci podręcznej i buforowania

Kiedy postrzegasz pamięć podręczną jako nic więcej niż „przechowuj kopię powolnego elementu blisko miejsca, gdzie jest potrzebny”, przestaje ona być funkcją sprzętową, a zaczyna przypominać nawyk, który przewija się przez cały proces przetwarzania danych, od pobrania danych przez procesor w 0,7 nanosekundy po kopię tej strony na serwerze brzegowym w pobliżu Twojego miasta. Praktyczna lekcja jest taka, której sieć nie przyswoiła: większość tej prędkości jest darmowa, a większość stron i tak ją pomija. Następnym razem, gdy strona otworzy się, zanim zdążysz mrugnąć, będziesz dokładnie wiedział, która kopia oszczędziła Ci podróży.

Jakieś pytania?

Wyobraź sobie zapas kopii przechowywany w jakimś szybko dostępnym miejscu. Gdy dane wolno się pobierają, komputer zapisuje kopię w pobliżu, a następnie pobiera ją ponownie, zamiast wykonywać zadanie od nowa. Twój procesor robi to w mniej niż nanosekundę. Strona internetowa robi to na innych kontynentach. Ten sam pomysł, ale zupełnie inna skala.

Czasami, ale nie z harmonogramem. Czyść pamięć podręczną, gdy strona wygląda na uszkodzoną lub nieaktualną, gdy korzystasz ze wspólnego komputera lub gdy brakuje miejsca na dane. W pozostałych przypadkach to właśnie dane w pamięci podręcznej przyspieszają ponowne wizyty. Czyszcząc pamięć podręczną bez powodu, tylko spowolnisz swoją pracę.

Pamięć podręczna przechowuje kopie plików, dzięki czemu kolejne wizyty ładują się szybciej. Wyczyścić ją? Zazwyczaj nie. Trzy powody przemawiają za tym: niedziałająca lub nieaktualna strona, prywatność na współdzielonym komputerze lub brak miejsca w telefonie. Brak takiego powodu? Zostaw to w spokoju. Pamięć podręczna zarabia na swoje utrzymanie.

Tylko wtedy, gdy coś się zepsuje, co dla większości osób zdarza się kilka razy w roku. Cotygodniowy rytuał jest bez sensu. A gdy jedna strona ciągle się zawiesza, wyczyść dane tylko tej strony, zamiast kasować całą pamięć podręczną i obciążać każdą inną odwiedzaną stronę.

Nie, domyślnie nie. Pliki w pamięci podręcznej i zapisane hasła znajdują się w oddzielnych magazynach, więc standardowe czyszczenie pamięci podręcznej pozostawia dane logowania nienaruszone. Hasła znikają tylko wtedy, gdy celowo zaznaczysz ich pole w menu czyszczenia, które jest oddzielne od opcji „cached-images-and-files”. Pozostaw to pole w spokoju, a Twoje dane logowania zostaną zachowane.

Pamięć podręczna przechowuje kopie treści, takich jak obrazy, skrypty i czcionki, dzięki czemu strony ładują się szybciej. Pliki cookie działają inaczej. Przechowują małe znaczniki, które Cię identyfikują: sesję logowania, ustawienia witryny. Pamięć podręczna to szybkość; pliki cookie zapamiętują Twoją tożsamość. Oddzielne magazyny, więc wyczyszczenie jednego z nich nie powoduje utraty drugiego. ---

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.