Önbellek: tanımı ve önbelleğe almanın kullanıldığı tüm alanlar

Satış ortaklığı bildirimi v3.1
Satış ortaklığı bildirimi v3.2 (yalnızca mobil)

Önbelleğin kullanıldığı alanlar, donanımdan web'e kadar Vikipedi, MDN ve resmî WordPress belgelerindeki sınıflandırmaya göre tek bir ağaçta toplandı. CPU, işletim sistemi, veritabanı ve tarayıcı aynı adı kullandığı için önbelleği temizlemek de hangi katmanda olduğuna göre farklı şeyleri siler.

Önbellek, sık kullanılan ya da yakında gerekecek verileri asıl kaynaktan daha hızlı bir depolama alanında geçici olarak tutar ve aynı istek geldiğinde asıl kaynak yerine bu kopyayla yanıt verir.

İngilizce Vikipedi'deki Cache (computing) maddesi önbellekleri CPU ve GPU önbelleği gibi donanım önbellekleri ile disk, web, DNS ve veritabanı önbelleği gibi yazılım önbellekleri olarak ikiye ayırır. Aşağıdaki ağaç bu sınıflandırmayı önbelleğin bulunduğu yere göre gruplar; web önbellekleri ise MDN'nin private cache ve shared cache ayrımını izler.

🗂️ Önbelleğin kullanıldığı alanlar
💻 Ⅰ. Kullanıcı cihazları
İşletim sistemi önbelleğiDisk önbelleği · DNS önbelleği
Tarayıcı önbelleğiHTTP önbelleğinin private cache'i
Mobil uygulama önbelleğiKüçük resimler · oturum verileri
🖥️ Ⅱ. Sunucu ve uygulama
Sayfa önbelleğiHazır HTML (WP Rocket · FastCGI önbelleği)
OPcachePHP bayt kodu
Nesne önbelleğiRedis · Memcached
Web framework önbelleğiLaravel · Django
🌐 Ⅲ. İçerik dağıtımı · ağ
CDNHTTP önbelleğinin shared cache'i
Proxy önbelleğiİleri · ters (Varnish)
Ağ önbelleğiARP önbelleği · DNS çözümleyici önbelleği
🗄️ Ⅳ. Veritabanı · depolama
DB iç önbelleğiInnoDB tampon havuzu · Shared Buffers
Depolama önbelleğiDisk denetleyicisi · SSD DRAM
⚙️ Ⅴ. Donanım
CPU önbelleğiL1 · L2 · L3 · TLB
GPU önbelleğiDokular · shader verileri
☁️ Ⅵ. Bulut · sanallaştırma
Konteyner önbelleğiDocker katmanları
Sunucusuz fonksiyonlarWarm Start
Derleme önbelleğiCI/CD bağımlılıkları · çıktılar

Tarayıcı, CDN ve sunucu içi önbelleğin tek bir WordPress isteğini hangi sırayla işlediğini Web sitesi önbelleği & sunucu içi önbellek: WordPress önbelleği nasıl çalışır yazısındaki simülatörde görebilirsiniz.

Ⅰ. Kullanıcı cihazları

  • ↳ Client-Side Cache

Kişisel bilgisayarlar ve akıllı telefonlar gibi kullanıcı cihazlarındaki önbellek; işletim sistemi (OS) önbelleği, tarayıcı önbelleği ve mobil uygulama önbelleği olarak ayrılabilir.

İşletim sistemi (OS) önbelleğiCihaz belleği (RAM)
Sakladığı şeyDiskten okunan veriler · alan adları ve IP adresleri

Disk önbelleği (sayfa önbelleği), diskten okunan verileri bellekte tutar ve işletim sistemi çekirdeği tarafından yönetilir. DNS önbelleği ise son sorgulanan alan adlarını ve IP adreslerini saklar.

Disk önbelleğiDNS önbelleği
Tarayıcı önbelleğiTarayıcı depolama alanı
Sakladığı şeyHTML · CSS · JS · görseller · yazı tipleri

Aynı kaynak yeniden istendiğinde sunucuya kadar gidilmez ya da yalnızca değişip değişmediği kontrol edilir. Service Worker (Cache API) kullanılırsa web uygulaması çevrimdışıyken de kaydedilmiş kaynaklarla açılabilir.

private cacheService Worker
Mobil uygulama önbelleğiUygulama depolama alanı
Sakladığı şeyKüçük resimler · içeriğin bir kısmı · oturum açma durumu

Büyük hacimli içerikle çalışan uygulamalar, indirilen verileri ve son görüntülenen listeleri cihazda saklayarak aynı verileri yeniden indirmez.

YouTubeInstagram

Ⅱ. Sunucu ve uygulama önbelleği

  • ↳ Server-Side Cache

Sunucu tarafı önbellek, istek sunucuya ulaştıktan sonra sayfanın oluşturulduğu sürece eklenen önbellektir. Resmî WordPress belgeleri bunu önbellekleme eklentileri (sayfa önbelleği), nesne önbelleği ve sunucu önbelleği (OPcache gibi opcode önbellekleri) olarak ayırıp açıklar.

Sayfa önbelleğiSunucu diski · bellek
Sakladığı şeyHazır HTML sayfası

Aynı sayfa isteğinde PHP çalıştırılmadan kaydedilmiş kopya gönderilir. Önbellek eklentileri ve web sunucusu önbellekleri vardır.

WP RocketNginx FastCGI önbelleğiLiteSpeed Cache
OPcacheSunucu belleği
Sakladığı şeyDerlenmiş PHP bayt kodu

Aynı dosya yeniden çalıştırıldığında derleme atlanır. PHP 5.5'ten beri varsayılan olarak gelir.

Opcode önbelleği
Nesne önbelleğiSunucu belleği
Sakladığı şeySorgu sonuçları · oturum bilgileri

Sık kullanılan verileri bellek içi bir depoda saklayarak aynı sorgunun tekrarlanmasını önler.

RedisMemcached
Web framework önbelleğiUygulama
Sakladığı şeyŞablonlar · rotalar · sorgu sonuçları

Web framework'leri, işlenmiş şablonları ve sorgu sonuçlarını kendi önbelleklerinde saklar.

LaravelDjango

Ⅲ. İçerik dağıtımı / ağ altyapısı önbelleği

Ağ altyapısındaki önbellek, ziyaretçi ile kaynak sunucu arasında kopyayla yanıt vererek fiziksel mesafeyi ve kaynak sunucunun yükünü azaltır. HTTP önbellekleme standardında birden çok ziyaretçinin ortak kullandığı shared cache'e karşılık gelir.

CDNUç sunucular
Sakladığı şeyStatik dosyalar · sayfalar

Dünyaya dağılmış sunucular arasından ziyaretçiye en yakın olandan teslim eder. Yapısı ve avantajları CDN nedir? CDN kullanma nedenleri ve 5 avantajı yazısında anlatılıyor.

CloudflareAkamaiFastlyQUIC.cloud
Proxy önbelleğiProxy sunucusu
Sakladığı şeySunucu yanıtları

İleri proxy, kurumsal ağlarda olduğu gibi istemci tarafının önünde; ters proxy ise sunucunun önünde yanıtları saklar.

Varnish CacheNginx ters proxy
Ağ önbelleğiAğ cihazları · DNS çözümleyiciler
Sakladığı şeyIP ve MAC adresi eşleşmeleri · DNS sorgu sonuçları

Ağ cihazları eşleşmeleri ARP önbelleğinde saklar; internet servis sağlayıcılarının DNS çözümleyicileri ve herkese açık DNS çözümleyicileri ise sorgu sonuçlarını kaydın TTL süresi boyunca tutar.

ARP önbelleğiDNS çözümleyici önbelleği

Ⅳ. Veritabanı ve depolama sistemi önbelleği

Disk G/Ç yavaş olduğu için veritabanları ve depolama aygıtları sık okunan verileri bellekte tutarak kullanır.

Veritabanı iç önbelleğiDB sunucusu belleği
Sakladığı şeySık okunan veriler · dizinler

Sık okunan verileri ve dizinleri bellekte tutar. MySQL sorgu önbelleği 8.0'da kaldırıldı; MariaDB'de hâlâ var ama varsayılan olarak kapalıdır.

InnoDB tampon havuzuPostgreSQL Shared BuffersMongoDB WiredTiger
Depolama önbelleğiDepolama aygıtının içindeki bellek
Sakladığı şeySon okunan · yazılan veriler

Sabit disk denetleyicisine yerleşik bellek ve SSD içindeki DRAM verileri geçici olarak saklayarak G/Ç gecikmesini azaltır.

Disk denetleyicisi önbelleğiSSD · NVMe DRAM

Ⅴ. Donanım düzeyinde önbellek

Donanım önbellekleri, CPU ve GPU içindeki yüksek hızlı bellektir ve verileri ana bellekten (RAM) daha hızlı işler.

CPU önbelleğiİşlemcinin içinde
Sakladığı şeyKomutlar · veriler · adres çevirisi sonuçları

L1 her çekirdekte ayrı bulunur ve komut önbelleği ile veri önbelleğine ayrılır; L3'ü ise tüm çekirdekler paylaşır. Bellek yönetim birimi (MMU), sanal adresleri fiziksel adreslere çevirmenin sonuçlarını TLB'de saklar.

L1L2L3TLB
GPU önbelleğiGrafik işlem biriminin içinde
Sakladığı şeyDokular · shader komutları · ara sonuçlar

Oyunlarda, 3D grafiklerde ve makine öğrenimi hesaplamalarında GPU'nun işlem verimliliğini artırır.

Ⅵ. Bulut / sanallaştırma ortamı önbelleği

Bulut ve sanallaştırma ortamları, konteyner imajlarını, fonksiyon çalışma ortamlarını ve derleme çıktılarını yeniden kullanarak dağıtım ve çalışma süresini kısaltır.

Konteyner önbelleğiDerleme sunucuları · kayıt depoları
Sakladığı şeyİmaj katmanları

Docker imajı birden çok katmandan oluşur; değişmeyen katmanlar yeniden derlenmez ya da indirilmez.

Docker
Sunucusuz fonksiyonlarBulut çalışma ortamı
Sakladığı şeyÇalışma ortamı

Çağrısı biten çalışma ortamını bir süre tutup sonraki çağrıda yeniden kullanarak başlatma süresini (Cold Start) kısaltır (Warm Start).

AWS LambdaGoogle Cloud Functions
Derleme önbelleğiCI önbellek deposu
Sakladığı şeyBağımlılık kütüphaneleri · derleme çıktıları

Tekrarlanan derlemelerin süresini kısaltır.

GitHub ActionsGitLab CI

🔢 SSS & önerilen içerikler

Hayır. Tarayıcı önbelleğini temizlemek yalnızca ziyaretçinin cihazında kayıtlı kopyaları siler. Sunucudaki sayfa önbelleğini ve CDN'deki kopyaları site yöneticisi önbellek eklentisinden ya da CDN yönetim ekranından temizler.

Temizledikten hemen sonraki ilk istek asıl kaynağa kadar indiği için her zamankinden yavaş yanıt verir. Bu istek kopyayı yeniden oluşturunca sonraki isteklerden itibaren eski hıza dönülür; WP Rocket'ın [Önyükleme] özelliği de temizlemeden sonra kopyaları önceden oluşturur.

Windows'ta L1, L2 ve L3 önbellek boyutları Görev Yöneticisi'ndeki [Performans] → [CPU] ekranının altında gösterilir. Linux'ta aynı değerleri [lscpu] komutunun çıktısında görebilirsiniz.

💾 Önbellek ile ilgili yazılar 10 yazı
🗂️ Önbellek
📋 Önbellek: tanımı ve tüm alanlar 📄 Web sitesi önbelleği & sunucu içi önbellek
📋 WP Rocket ayar rehberi 📝 Zend OPcache 📝 Redis Cache kurulumu
📝 CDN nedir? 📝 Varnish Cache
📋 WP Rocket hız testi 📝 Hızlandırma örneği 📝 Önbellek · optimizasyon eklentileri

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 1   +   7   =