Hacker News

Seçim ve Disk Arasında Üç Önbellek Katmanı

Seçim ve Disk Arasında Üç Önbellek Katmanı Bu araştırma, önemini ve potansiyel etkisini inceleyerek üçe ayrılmaktadır. — Mewayz İşletme İşletim Sistemi.

5 dk okuma

Mewayz Team

Editorial Team

Hacker News

Uygulamanız bir SELECT ifadesini çalıştırdığında, bu sorgu neredeyse hiçbir zaman dönen bir diske veya hatta ham flash depolamaya dokunmaz; yanıtınızın mikrosaniye veya milisaniye cinsinden ulaşacağını sessizce belirleyen üç farklı önbellek katmanından geçer. Bu katmanları anlamak, zahmetsizce ölçeklenen bir iş platformu ile gerçek dünyanın yükü altında çöken bir iş platformu arasındaki farktır.

Bir SELECT Sorgusunun Uygulamanızdan Çıktığı An Ne Olur?

Uygulamanız bir SELECT sorgusu gönderdiği anda, çoğu geliştiricinin asla denetlemediği bir ardışık düzene girer. Veritabanı motoru, herhangi bir G/Ç meydana gelmeden önce isteği keser, SQL'i dahili bir yürütme planına ayrıştırır ve hemen ilk savunma hattına, yani sorgu sonucu önbelleğine başvurur. Yakın zamanda aynı parametrelere sahip benzer bir sorgu yürütüldüyse motor, tek bir veri sayfasına dokunmadan önbelleğe alınmış bir sonuç kümesini döndürebilir. Buna bazen sorgu önbelleği veya sonuç önbelleği denir ve analitik kontrol panelleri ve raporlama modülleri gibi yüksek okuma, düşük yazma iş yüklerinde disk okumalarının büyük çoğunluğunu tamamen ortadan kaldırabilir.

Buradaki kritik içgörü, sorgu önbelleğinin veri mutasyonlarına karşı oldukça duyarlı olmasıdır. Temel tabloya yönelik herhangi bir INSERT, UPDATE veya DELETE işlemi, önbelleğe alınan ilgili sonuçları geçersiz kılar. Bu nedenle yazma ağırlıklı işlem sistemleri genellikle sorgu önbelleğini tamamen devre dışı bırakır ve bunun yerine daha derin katmanlara güvenir.

Tampon Havuzu Nedir ve Neden Düşündüğünüzden Daha Önemlidir?

İkinci önbellek katmanı - ve muhtemelen üretim sistemlerinde en önemlisi - arabellek havuzudur (PostgreSQL'de paylaşılan arabellek, MySQL'de InnoDB arabellek havuzu olarak adlandırılır). Bu, veritabanı motorunun yakın zamanda erişilen veri sayfalarını tutmak için kullandığı RAM bölgesidir. Sonuç önbelleğinden bir sorgu sunulamadığında motor, herhangi bir disk okuması yapmadan önce gerekli veri sayfalarının arabellek havuzunda zaten bulunup bulunmadığını kontrol eder.

Tampon havuzu, zamansal ve mekânsal konum ilkesine göre çalışır: yakın zamanda erişilen verilere yeniden erişilmesi muhtemeldir ve erişilen verilerin yakınında depolanan verilere de yakında erişilmesi muhtemeldir. Veritabanı yöneticileri, arabellek havuzu boyutunu aldıkları en yüksek yararlanıcı yapılandırma kararlarından biri olarak ayarlar. Çok küçük bir arabellek havuzu, sürekli sayfa tahliyesine neden olarak, sistemin sorguları yürütmekten çok önbellek kayıplarını yönetmeye daha fazla zaman harcadığı, çöpe atma adı verilen bir olguya neden olur.

💡 BİLİYOR MUYDUNUZ?

Mewayz, 8+ iş aracını tek bir platformda değiştirir

CRM · Faturalama · İnsan Kaynakları · Projeler · Rezervasyon · e-Ticaret · POS · Analitik. Süresiz ücretsiz plan mevcut.

Ücretsiz Başla →

Temel Bilgi: Çoğu OLTP iş yükünde, iyi boyutlandırılmış bir arabellek havuzu, tüm veri okumalarının %95-99'unun RAM'den sunulduğu anlamına gelir. Sorguların sıklıkla temas ettiği verilerinizin alt kümesi olan çalışma kümesi, genellikle toplam veritabanı boyutundan çok daha küçüktür. Tampon havuzunuzu veri kümenizin tamamına değil, çalışma kümenize uyacak şekilde boyutlandırmak, gerçekleştirebileceğiniz en yüksek getiriyi sağlayan tek ayarlama işlemidir.

İşletim Sistemi Önbelleği RAM ve Disk Arasındaki Boşluğu Nasıl Doldurur?

Veritabanının kendi arabellek havuzu eksik olsa bile, sorgu henüz gerçek disk okumasına yönelik değildir. İşletim sistemi, aygıtları engellemek için okuma ve yazma işlemlerini arabelleğe alan, çekirdek tarafından yönetilen RAM'in bir bölgesi olan bir sayfa önbelleği (dosya sistemi önbelleği olarak da bilinir) tutar. Veritabanı motoru, arabellek havuzunda bulunmayan bir sayfa istediğinde, işletim sistemi çekirdeği, depolama denetleyicisine fiziksel bir G/Ç komutu göndermeden önce kendi sayfa önbelleğini kontrol eder.

Bu üçüncü katman, uygulama geliştiricileri için büyük ölçüde görünmez ancak veritabanı arabellek havuzunun yetersiz hazırlandığı sistemlerde son derece önemlidir. İşletim sistemi sayfa önbelleği tüm işlemler arasında paylaşılır, böylece uygulama sunucunuz, web sunucunuz ve aynı ana bilgisayarda çalışan diğer yazılımlarla rekabet eder. Özel veritabanı sunucularında bu rekabet minimum düzeydedir ve işletim sistemi önbelleği anlamlı bir ikinci şans tamponu sağlar. Paylaşılan ana bilgisayarlarda veya sıkı bellek sınırlarına sahip kapsayıcılarda, işletim sistemi önbelleği genellikle yardımcı olamayacak kadar küçüktür.

Uygulamada En Fazla Performans Kazanımından Hangi Önbellek Katmanı Sorumludur?

Gerçek dünya üretim sistemlerinde tampon havuz domi

Ready to Simplify Your Operations?

Whether you need CRM, invoicing, HR, or all 207 modules — Mewayz has you covered. 138K+ businesses already made the switch.

Get Started Free →

Mewayz'ı Ücretsiz Deneyin

CRM, faturalama, projeler, İK ve daha fazlası için tümü bir arada platform. Kredi kartı gerekmez.

İlgili Rehber

HR Management Guide →

Ekibinizi etkili yönetin: çalışan profilleri, izin yönetimi, maaş ödemeleri ve performans değerlendirmeleri.

İşinizi daha akıllı yönetmeye bugün başlayın

30,000+ işletmeye katılın. Sonsuza kadar ücretsiz plan · Kredi kartı gerekmez.

Bunu yararlı buldunuz mu? Paylaş.

Hazır mısınız bunu pratiğe dökmeye?

Mewayz kullanan 30,000+ işletmeye katılın. Süresiz ücretsiz plan — kredi kartı gerekmez.

Ücretsiz Denemeyi Başlat →

Harekete geçmeye hazır mısınız?

Mewayz ücretsiz denemenizi bugün başlatın

Hepsi bir arada iş platformu. Kredi kartı gerekmez.

Ücretsiz Başla →

14 günlük ücretsiz deneme · Kredi kartı yok · İstediğiniz zaman iptal edin