Facebook, sunuculardaki belleğin %20-32'sinden tasarruf etmenize olanak tanıyan TMO mekanizmasını tanıttı

Facebook'tan (Rusya Federasyonu'nda yasaklı) mühendisler, iş için gerekli olmayan ikincil verileri NVMe gibi daha ucuz sürücülere değiştirerek sunucularda RAM'de önemli tasarruflar sağlayan TMO (Şeffaf Bellek Boşaltma) teknolojisinin geçen yıl uygulanması hakkında bir rapor yayınladı. SSD -diskler. Facebook, TMO kullanmanın her sunucuda %20 ila 32 oranında RAM tasarrufu sağlayabileceğini tahmin ediyor. Çözüm, uygulamaların yalıtılmış konteynerlerde çalıştığı altyapılarda kullanılmak üzere tasarlanmıştır. TMO'nun çekirdek tarafı bileşenleri zaten Linux çekirdeğine dahil edilmiştir.

Linux çekirdeği tarafında teknoloji, 4.20 sürümünden itibaren mevcut olan PSI (Basınç Durma Bilgisi) alt sistemi tarafından desteklenmektedir. PSI halihazırda çeşitli düşük bellekli işleyicilerde kullanılmaktadır ve çeşitli kaynakları (CPU, bellek, G/Ç) elde etmek için bekleme süresi hakkındaki bilgileri analiz etmenize olanak tanır. Kullanıcı alanı işlemcileri, PSI ile sistem yük düzeylerini ve yavaşlama modellerini daha doğru bir şekilde değerlendirebilir ve anormalliklerin, performans üzerinde gözle görülür bir etki yaratmadan önce erken tespit edilmesine olanak tanır.

Kullanıcı alanında TMO, cgroup2 aracılığıyla PSI'dan alınan verilere dayalı olarak uygulama kapsayıcıları için bellek sınırını dinamik olarak ayarlayan Senpai bileşeni tarafından sağlanır. Senpai, PSI aracılığıyla kaynak sıkıntısı başlangıcının işaretlerini analiz eder, uygulamaların bellek erişimindeki yavaşlamalara karşı hassasiyetini değerlendirir ve işlem için gerekli verilerin RAM'de kaldığı konteynerin gerektirdiği minimum bellek boyutunu ve beraberindekileri belirlemeye çalışır. dosya önbelleğine yerleştirilen veya o anda doğrudan kullanılmayan veriler takas bölümüne aktarılır.

Facebook, sunuculardaki belleğin %20-32'sinden tasarruf etmenize olanak tanıyan TMO mekanizmasını tanıttı

Bu nedenle, TMO'nun özü, süreçleri bellek tüketimi açısından sıkı bir diyette tutmak, çıkarılması performansı önemli ölçüde etkilemeyen kullanılmayan bellek sayfalarının (örneğin, yalnızca başlatma sırasında kullanılan kod içeren sayfalar ve tek kullanımlık) değiştirilmesini zorunlu kılmaktır. disk önbelleğindeki veriler). Bellek baskısına yanıt olarak bilgilerin takas bölümüne çıkarılmasından farklı olarak, TMO'da veriler proaktif tahmine dayalı olarak çıkarılır.

Tahliye kriterlerinden biri de hafıza sayfasına 5 dakika süreyle erişilememesidir. Bu tür sayfalara soğuk bellek sayfaları denir ve ortalama olarak uygulama belleğinin yaklaşık %35'ini oluşturur (uygulama türüne bağlı olarak %19 ile %65 arasında bir aralık vardır). Ön alım, anonim bellek sayfalarıyla (uygulama tarafından ayrılan bellek) ve dosya önbelleğe alma için kullanılan bellekle (çekirdek tarafından ayrılan bellek) ilişkili etkinliği hesaba katar. Bazı uygulamalarda ana tüketim anonim bellektir, ancak diğerlerinde dosya önbelleği de önemlidir. Önbellek çıkarma dengesizliklerini önlemek için TMO, anonim sayfaları ve dosya önbelleğiyle ilişkili sayfaları orantılı olarak çıkaran yeni bir sayfalama algoritması kullanır.

Sık kullanılmayan sayfaları daha yavaş belleğe aktarmanın performans üzerinde önemli bir etkisi yoktur ancak donanım maliyetlerini önemli ölçüde azaltabilir. Veriler, SSD sürücülerine veya RAM'deki sıkıştırılmış bir takas alanına aktarılır. Bir bayt veri depolamanın maliyeti açısından, NVMe SSD kullanmak, RAM'de sıkıştırma kullanmaktan 10 kat daha ucuzdur.

Facebook, sunuculardaki belleğin %20-32'sinden tasarruf etmenize olanak tanıyan TMO mekanizmasını tanıttı


Kaynak: opennet.ru

Yorum ekle