Önbellek Nedir? Önbelleğe Alınmış Veriler İşlemleri Nasıl Hızlandırır?

Önbellek Nedir? Önbelleğe Alınmış Veriler İşlemleri Nasıl Hızlandırır?

Modern bir CPU, en yakın önbelleğinden bir değeri bir nanosaniyeden çok daha kısa sürede çekebilir. Aynı değer için ana belleğe kadar ulaşmak yaklaşık yüz kat daha uzun sürer. Bu nedenle çip, muhtemelen ihtiyaç duyacağı verilerin bir kopyasını hemen yanında tutar. Bu kopya bir önbellektir ve bu yöntem, işlemcinizdeki silikondan bu sayfayı sunan sunucuya kadar her bilgi işlem katmanında tekrarlanır. Bu kılavuz, önbelleğin ne olduğunu, önbelleklemenin nasıl çalıştığını, sessizce bulunduğu her yeri ve temizlemenin gerekli olup olmadığını açıklamaktadır.

Önbellek tanımı: önbellek aslında nedir?

Önbellek, geçici bir depolama alanıdır. Küçük, hızlı ve ihtiyaç duyulan yere mümkün olduğunca yakın konumlandırılmıştır. Sistemin tekrar isteyeceği verilerin kopyalarını tutar, böylece ihtiyaç duyulduğunda yavaş veya maliyetli işlemleri tekrarlamak yerine kopyayı alabilir. Bu sayfayı ikinci kez açtığınızda, sayfanın büyük bir kısmı sunucudan değil, makinenizde zaten bulunan bir kopyadan yüklenir.

Burada asıl önemli olan "geçici" kelimesidir. Önbelleğe alınan veriler asla orijinal veri değildir. Sadece hız için saklanan bir kopyadır ve istediğiniz zaman silebilirsiniz. Silseniz bile değerli hiçbir şey kaybolmaz. Sistem sadece gerçek kaynağa geri döner ve kopyayı yeniden oluşturur. Banka bakiyeniz bir önbellekte bulunmaz; bu bakiyeyi gösteren web sayfasının bir kopyası orada olabilir. Gerçeğin kaynağı ile atılabilir bir kopya arasındaki bu boşluk, önbelleğe almanın her şeye güvenle entegre edilebilmesinin nedenidir. En kötü durumda, kopya eksik veya yanlıştır, sistem omuz silkip kaynaktan alır ve devam eder.

Önbelleklerin çalışma prensibi: önbellek isabeti, önbellek ıskası ve önbellekten çıkarma

Her yerdeki her önbellek tek bir soruya dayanır: Bunun bir kopyasına zaten sahip miyim? Evet, hızlı bir yanıt anlamına gelir. Kopyayı sunun, yavaş yolu atlayın, iş bitti. Hayır ise yavaş işi bir kez yaparsınız: Kaynaktan alın, sonucu geri verin ve gelecekteki isteklerin hızlı olması için çıkış yolunda bir kopya saklayın. Tüm mekanizma budur. Geri kalanı, iki karmaşık sorun etrafında yapılan muhasebe işlemleridir: yer azaldığında neyi atmak gerektiği ve eskimiş bir kopyayı geri vermekten nasıl kaçınılacağı.

Önbellek isabeti ve önbellek ıskası

Buldunuz mu? Bu bir önbellek isabeti. Bulamadınız mı? Bu bir önbellek ıskası ve daha yavaş olan yedek depolama alanına gitmeyi zorunlu kılıyor. İsabetle sonuçlanan isteklerin oranı, isabet oranı olarak adlandırılır ve mühendislerin gerçekten izlediği tek sayıdır. Görüntüler ve stil sayfaları gibi statik dosyalar sunan bir içerik dağıtım ağı, %95 ila %99'luk bir oran hedefler. Bu orana ulaşıldığında, neredeyse her ziyaretçi yakındaki bir kopyayı alırken, kaynak sunucu neredeyse hiç kullanılmadan orada kalır. Düşük bir isabet oranı, önbelleğin çoğunlukla süsleme amaçlı olduğu anlamına gelir.

Önbellek dolduğunda: silme politikaları

Önbellek kasıtlı olarak küçüktür. Hızlı depolama maliyetlidir, bu nedenle her şey için asla yer yoktur ve önbellek dolduğunda bir şeyin gitmesi gerekir. Kaybedeni belirleyen kural, silme politikasıdır. Genellikle varsayılan, En Az Kullanılan (LRU) politikasıdır: en uzun süre dokunulmadan kalan her şeyi atarsınız, son zamanlarda görmezden geldiğiniz şeyleri görmezden gelmeye devam edeceğinize dair bir bahis oynarsınız. Diğer şemalar farklı şekilde hesaplama yapar. En Az Sıklıkla Kullanılan (LFU), her öğeye ne sıklıkla erişildiğini izler. İlk Giren İlk Çıkar (FIFO) ise en eski girişi atar. Aynı kumar, farklı kıyafetler. Her politika aslında hangi kopyayı en az özleyeceğinize dair bir tahmindir.

Kopyaların güncel kalması: TTL ve yazma politikaları

Bir kopyanın geçerliliği, kaynağıyla eşleşmeye devam ettiği sürece devam eder. Bu nedenle çoğu önbellek, her girişe bir yaşam süresi (TTL) damgası vurur: bu süre sonunda kopyanın süresi dolmuş sayılır ve yeniden kontrol edilmesi veya yeniden alınması gerekir. Web'de, Cache-Control başlığı bu zamanlayıcıyı ayarlar. Kural kitabı RFC 9111'dir ve max-age yönergesi, bir yanıtın bir yıla kadar veya tam rakamı isterseniz 31.536.000 saniyeye kadar önbellekte kalmasına izin verir. Yazma işlemleri sorunun diğer yarısını oluşturur. Yazma-geçiş (write-through) işlemi, önbelleğe ve kaynağa aynı anda kaydeder; bu güvenlidir ancak daha yavaştır. Yazma-geri (write-back) işlemi ise önbelleğe şimdi, kaynağa daha sonra kaydeder; bu hızlıdır ancak ikisi arasında kısa bir süre uyumsuzluk bırakır. Tercihinizi yapın.

Önbellek nedir?

Önbellek türleri: CPU'dan içerik dağıtım ağına

İşte çoğu açıklamanın atladığı nokta. Tarayıcı önbelleği ve L1 CPU önbelleği farklı dünyalar gibi görünse de, farklı mesafelerde aynı fikri temsil ediyorlar. Her katman, ulaşılması zor verilerin kopyalarını ihtiyaç duyan her şeye yakın tutar. Merdiveni içeriden dışarıya doğru takip ederseniz, desen tüm yol boyunca tekrarlanır.

Bellek önbellekleme: CPU önbellek seviyeleri L1, L2, L3

En hızlı önbellekleme işlemcinin kendisinde gerçekleşir. Modern CPU'lar, ana bellek için kullanılan DRAM'den çok daha hızlı ve bayt başına çok daha pahalı olan SRAM'den oluşturulmuş üç seviyeli önbellek taşır. L1 çok küçüktür ve neredeyse anlıktır; çekirdek başına birkaç düzine kilobayt yaklaşık bir nanosaniyede yanıt verir. L2 daha büyüktür ve biraz daha yavaştır. L3 ise daha da büyüktür ve çekirdekler arasında paylaşılır; Intel'in Core i9-14900K'sı 36 MB'lık bir L3 önbelleğiyle gelir ve AMD'nin Ryzen 9 7950X3D'si L3'ü 128 MB'a çıkarır. Tüm bunlar bir açığı örtbas etmek için vardır: L1'den veri çekmek bir nanosaniyenin altında sürerken, DDR5 ana bellek yaklaşık 70 nanosaniye sürer, yani yaklaşık yüz katlık bir fark. Önbellekler, programların aynı veriyi ve ona yakın olan veriyi yeniden kullanması nedeniyle çalışır; bu alışkanlığa referans yerelliği denir.

Katman Tipik boyut Tipik erişim süresi İçinde ne barındırıyor?
L1 CPU önbelleği Çekirdek başına 32-80 KB ~0,7-1 ns Sonraki talimatlar ve değerler
L2 CPU önbelleği Çekirdek başına 0,5-2 MB ~3-4 ns Son zamanlarda çekirdeğe yakın kullanılan veriler
L3 CPU önbelleği 16-128 MB paylaşımlı ~10-20 ns Çekirdekler arasında paylaşılan veriler
Ana bellek (RAM) 8-64 GB ~70-100 ns Çalışan programlar ve aktif veriler
SSD depolama 256 GB-4 TB ~50-100 µs Dosyalar ve işletim sistemi
CDN uç düğümü değişir Ağ üzerinden ~20 ms Ziyaretçinin yakınındaki web kopyaları
Origin sunucusu değişir ~100-200 ms çapraz bölge Gerçeğin kaynağı

Disk, işletim sistemi ve uygulama önbellekleri

Donanımın üzerinde, yazılım kendi önbelleklerini tutar. İşletim sisteminiz, yakın zamanda okunan dosyalar gibi sık erişilen verileri yedek RAM'de tutar, böylece yeniden açılmaları anında gerçekleşir. Veritabanları, sık kullanılan sorguların sonuçlarını önbelleğe alır. Uygulamalar, uygulama ile veritabanı arasında yer alan ve tekrarlanan istekleri mikrosaniyeler içinde yanıtlayan, genellikle Redis veya Memcached olan özel bir bellek içi katman ekler. Görev, CPU'nunkiyle aynıdır: Sık kullanılan verileri daha hızlı depolamada tutarak yavaşlığın maliyetini iki kez ödememek.

Sunucu tarafı önbellekleme ve CDN

En dış katman internetin tamamına yayılır. Bir web sunucusu tamamlanmış sayfaları önbelleğe aldığında, her ziyaretçi için yeniden oluşturmaktan kaçınır. Bir içerik dağıtım ağı (CDN) daha da ileri giderek, bu varlıkları dünyanın dört bir yanına yayılmış uç sunuculara kopyalar, böylece her istek kullanıcının fiziksel olarak yakınındaki bir makineden yanıtlanır. Bir CDN uç sunucusuna yapılan istek yaklaşık 20 milisaniyede yanıt verebilirken, isteğin kıtalararası bir yolculukla kaynağa ulaşması gerektiğinde bu süre 100 ila 200 milisaniye arasında değişir. Bu model artık web'e hakim durumda: 2024 yılına kadar üçüncü taraf içeriğin yaklaşık %75'i bir CDN aracılığıyla sunulacaktı.

Tarayıcı önbelleği: web tarayıcınızın depoladığı bilgiler.

Çoğu insanın karşılaştığı en önemli şey tarayıcı önbelleğidir. Bir siteyi yüklediğinizde, web tarayıcınız sessizce sitenin parçalarını cihazınıza yerleştirir: HTML, stil sayfaları, komut dosyaları, resimler, yazı tipleri. Daha sonra geri döndüğünüzde, bu dosyaları tekrar indirmek yerine doğrudan diskinizden okur; bu nedenle bir web sayfasına ikinci ziyaretiniz ilk ziyaretinizden daha hızlı açılır. Site logosu mu? Bir kez indirilir ve gösterildiği her sayfada yeniden kullanılır.

Beni asıl şaşırtan şey şu: bu hızın büyük bir kısmı kullanılmadan kalıyor. 2021 itibarıyla, masaüstü web yanıtlarının yaklaşık %90,4'ü önbelleğe alınabiliyordu , ancak sitelerin %52'si standart tarayıcı önbellekleme denetiminde hala %25'in altında kalıyordu. Kazanım orada, bedava duruyor ve web'in büyük bir kısmı bunu görmezden geliyor. Önbellekleme düzgün bir şekilde kurulursa, getirisi anında görülür. Tekrarlanan ziyaretler hızlanır, mobil veri kullanımı azalır ve kaynak sunucu aynı gereksiz istekleri işlemeyi bırakır.

Önbellek nedir?

Önbelleklemenin faydaları: Neden işlemleri hızlandırır?

Önbellekleme bir takas işlemidir. Biraz bellek harcarsınız ve biraz eski bir şey sunma riskini kabul edersiniz; karşılığında ise hız, daha düşük yük ve daha düşük maliyet elde edersiniz. Bu üç avantaj, önbelleklemenin yalnızca bir katmanda değil, her katmanda yer almasının nedenidir.

Hız, en büyük avantaj: Yakındaki bir depolama alanından bir kopyayı sunmak, sonucu yeniden hesaplamaktan veya ağ üzerinden taşımaktan çok daha iyidir. İkinci avantaj ise kaynak üzerindeki yükün azalmasıdır. Önbellek tarafından yanıtlanan her istek, veritabanının veya kaynak sunucunun asla ele alması gerekmeyen bir istektir; bu da trafik artışları sırasında sistemlerin çalışır durumda kalmasını sağlar. Üçüncüsü ise parasal bir avantaj: Önbelleğe alınmış baytları bir uç düğümden sunmak, bunları yeni oluşturup merkezi bir sunucudan göndermekten daha ucuzdur ve verilere tekrar tekrar erişmeniz gerektiğinde bu tasarruf hızla artar.

Uygulama performansındaki kullanıcı odaklı kazanımlar gerçek ve ölçülebilirdir. Google'ın mobil siteler üzerine 2018 yılında yaptığı araştırmaya göre, yükleme süresini bir saniye kısaltmak dönüşümleri %27'ye kadar artırırken, yaygın olarak alıntı yapılan 2012 tarihli Aberdeen Group çalışması, bir saniyelik gecikmenin dönüşümlerde %7'lik bir düşüşe neden olduğunu ortaya koymuştur. Daha hızlı sayfalar insanları sitede tutar. Önbellekleme, bunu sağlamanın en ucuz yollarından biridir.

Önbellek türü Yaşadığı yer Ne saklıyor? Bunu kim yönetiyor? Tipik yaşam süresi
CPU önbelleği (L1/L2/L3) İşlemci üzerinde Önemli talimatlar ve veriler Donanım, otomatik olarak Mikrosaniyeler
Tarayıcı önbelleği Cihazınız HTML, CSS, JS, resimler, yazı tipleri Web tarayıcınız Yıla göre saatler
Uygulama önbelleği Uygulama sunucusu belleği Sorgu sonuçları, oturumlar Geliştiriciler (Redis, Memcached) Saniyelerden saatlere
Sunucu / CDN önbelleği dünya çapındaki uç sunucular Sayfalar, medya, API yanıtları Site sahibi ve CDN Önbellek Kontrolü TTL Başına
DNS önbelleği İşletim sistemi, yönlendirici, çözümleyici Alan adı-IP sorgulamaları DNS çözümleyici 5 dakika ile 24 saat arası

Önbelleğe alınmış verileri temizlemeli misiniz ve ne zaman?

İnsanlar önbelleği temizlemeyi bir bakım kontrol listesindeki bir görev gibi görüyor. Kontrol listesini atlayın. Bu aslında bir sorun giderme aracı, başka bir şey değil. Çoğu zaman önbelleğe alınmış verileri olduğu yerde bırakın, çünkü bu veriler sessizce tekrar ziyaret ettiğiniz her sitenin daha hızlı yüklenmesini sağlıyor.

Peki, önbelleği temizlemek ne zaman zahmete değer? Dürüst olmak gerekirse, sadece üç durum. Bir site güncellemeden sonra bozulursa veya eski bir önbelleğe alınmış sürümü göstermeye devam ederse ve tarayıcı önbelleğindeki bu eski kopya neredeyse her zaman suçludur; önbelleği temizlemek temiz bir indirme sağlar. Paylaşımlı veya halka açık bir bilgisayarda bulundunuz ve görüntülediğiniz şeyin yerel izini silmek istiyorsunuz. Veya telefonunuzun son gigabaytı kaldı ve yer açmanız gerekiyor, çünkü bir tarayıcı önbelleği kendi kendine birkaç gigabayta kadar şişebilir. Bunların dışında, temizlemenin size hiçbir faydası olmaz. Tarayıcı kopyalarını yeniden oluştururken her siteye bir sonraki ziyaretinizi yavaşlatır ve bazı tarayıcılar bu süreçte oturumunuzu kapatır. İnsanların en çok yanlış anladığı şey: önbelleği temizlemek çerezlerinizi veya kaydedilmiş şifrelerinizi silmez. Bunlar ayrı bir depoda bulunur ve önbellek temizleme işleminden sonra da kalırlar, tabii ki bunları da işaretlemek için özel çaba göstermediğiniz sürece.

Tarayıcı Önbelleği nereden temizleyeceğim?
Krom Ayarlar, Gizlilik ve güvenlik, Tarama verilerini silme, Önbelleğe alınmış resimler ve dosyalar
Firefox Ayarlar, Gizlilik ve Güvenlik, Çerezler ve Site Verileri, Verileri Temizle
Safari Ayarlar, Safari, Geçmişi ve Web Sitesi Verilerini Temizle
Kenar Ayarlar, Gizlilik, Silinecekleri seçin

Önbellek, çerezler ve arabellek arasındaki kafa karışıklığını gidermek

Sürekli karıştırılan üç kelime, hepsi veri depolama ile ilgili. Her birinin farklı bir görevi var. Önbellek, içeriğe daha hızlı erişebilmeniz için içeriğin kopyalarını tutar. Çerez, bir sitenin sizi hatırlamak için bıraktığı küçük bir nottur: oturum açma kaydı, dil ayarı, kaydedilmiş bir tercih. İçerik değil, kimlik taşır. Tampon ise tamamen farklıdır. İzlediğiniz yerden birkaç saniye önce yüklenen video gibi, aktarım halindeki verileri tutar. Bunları ayırt etmenin en kısa yolu şudur: önbelleğe alınmış veriler tekrar kullanım için kalır, çerez kim olduğunuzu hatırlar ve tampon kullanıldığı anda boşalır.

Önbellek ve önbellekleme hakkında hatırlanması gerekenler

Bir önbelleği sadece "yavaş olan şeyin bir kopyasını ihtiyaç duyulan yere yakın tutmak" olarak görmeye başladığınızda, donanım özelliği olmaktan çıkıp, bir CPU'daki 0,7 nanosaniyelik bir veri çekme işleminden, şehrinizin yakınındaki bir uç sunucuda bulunan bu sayfanın bir kopyasına kadar, tüm bilişimde geçerli olan bir alışkanlık gibi görünmeye başlar. Pratik ders ise web'in henüz öğrenmediği bir derstir: bu hızın çoğu ücretsizdir ve çoğu site hala bunu atlar. Bir sonraki sefer bir sayfa göz açıp kapayıncaya kadar açıldığında, sizi bu yolculuktan kurtaran kopyanın hangisi olduğunu tam olarak bileceksiniz.

Sorusu olan?

Hızlı erişim sağlayan bir yerde saklanan bir kopya yığını hayal edin. Veri alma işlemi yavaş olduğunda, bilgisayar yakındaki bir yere bir kopya kaydeder ve bir sonraki seferde işi yeniden yapmak yerine bu kopyayı kullanır. İşlemciniz bunu bir nanosaniyeden daha kısa sürede yapar. Bir web sitesi bunu kıtalar arası yapar. Aynı fikir, tamamen farklı ölçekte.

Bazen, ama düzenli bir programa bağlı kalmadan. Bir site bozuk veya güncel değilken, paylaşımlı bir bilgisayar kullanırken veya depolama alanı yetersiz olduğunda temizleyin. Geri kalan zamanlarda, önbelleğe alınmış veriler tam olarak tekrar ziyaretleri hızlandıran şeydir. Sebepsiz yere silerseniz, sadece kendinizi yavaşlatırsınız.

Önbellek, dosyaların kopyalarını saklayarak tekrar ziyaretlerin daha hızlı yüklenmesini sağlar. Temizlemeli miyiz? Genellikle hayır. Bunu haklı çıkaran üç neden vardır: arızalı veya güncel olmayan bir site, paylaşımlı bir makinede gizlilik veya yetersiz depolama alanına sahip bir telefon. Bu gibi bir neden yoksa, olduğu gibi bırakın. Önbellek görevini yerine getiriyor.

Sadece bir şey gerçekten bozulduğunda, ki bu çoğu insan için yılda birkaç kez olur, işlem yapın. Haftalık bir işlem anlamsızdır. Ve tek bir site sürekli olarak sorun çıkarıyorsa, tüm önbelleği silip ziyaret ettiğiniz diğer tüm siteleri de etkilemek yerine, sadece o sitenin verilerini temizleyin.

Hayır, varsayılan olarak değil. Önbelleğe alınmış dosyalar ve kaydedilmiş parolalar ayrı depolama alanlarında bulunur, bu nedenle normal bir önbellek temizleme işlemi oturum açma bilgilerinizi etkilemez. Parolalar yalnızca, önbelleğe alınmış resimler ve dosyalar seçeneğinden ayrı olan temizleme menüsünde ilgili kutuyu özellikle işaretlerseniz kaybolur. Bu kutuyu işaretlemezseniz oturum açma bilgileriniz korunur.

Önbellek, resimler, komut dosyaları ve yazı tipleri gibi içeriklerin kopyalarını saklayarak sayfaların daha hızlı yüklenmesini sağlar. Çerezler ise farklıdır. Sizi tanımlayan küçük etiketler saklarlar: oturum açma bilgileriniz, site ayarlarınız. Önbellek hızla ilgilidir; çerezler ise kim olduğunuzu hatırlar. Ayrı depolama alanlarıdır, bu nedenle birini temizlemek diğerini etkilemez.

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.