« Tüm yayınlar

OBASE: Bellek Katmanlamasını İyileştiren Nesne Tabanlı Adres Alanı Tasarımı

OBASE, hotness fragmentation sorununu adres alanı yeniden düzenlemesiyle çözerek bellek katmanlamasında 2-4x verimlilik ve %70 tasarruf sağlıyor.

Veri merkezleri, bellek katmanlama (memory tiering) mekanizmalarına sahip olsa da DRAM'i aşırı ölçekte kullanmaya devam ediyor. Bunun temel nedeni 'hotness fragmentation': bellek ayırıcılar (allocator) nesneleri erişim sıklığına göre değil boyutuna göre yerleştirdiği için sık erişilen (hot) ve seyrek erişilen (cold) nesneler aynı sayfalarda karışıyor. Tek bir hot nesne, bulunduğu sayfayı aktif işaretleyip çevresindeki cold verinin pahalı DRAM'de kilitli kalmasına yol açıyor. Google veri merkezi iş yükleri analizi, aktif sayfalardaki baytların %97'sinin cold ve geri kazanılamaz olduğunu gösteriyor.

Bu soruna çözüm olarak sunulan OBASE, yönetilmeyen (unmanaged) diller için geliştirilen bir derleyici-çalışma zamanı sistemidir. Sayfa tabanlı işletim sistemi arka uçları (kswapd, TMO, TPP, Memtis) için nesne farkındalıklı bir ön uç görevi görür. Hafif işaretçi enstrümantasyonuyla erişimleri takip eder ve eşzamanlılık altında güvenli, kilitsiz (lock-free) bir protokolle nesneleri çalışma zamanında taşıyarak adres alanını yeniden düzenler; böylece hot nesneler tekdüze hot sayfalarda, cold nesneler ise tekdüze cold sayfalarda kümelenir.

On eşzamanlı veri yapısı, altı farklı arka uç ve Meta ile Twitter'dan gerçek üretim izleri üzerinde yapılan değerlendirmede OBASE, değiştirilmemiş arka uçların etkin katmanlama yapmasını sağlayarak sayfa kullanım verimliliğini 2-4 kat artırıyor ve bellek ayak izini %70'e kadar azaltıyor; bunu sadece %2-5 ek yük ile başarıyor. Bu sonuçlar, mühendisler için bellek yönetiminde işletim sistemi seviyesinde değişiklik yapmadan önemli maliyet tasarrufu sağlayabilecek bir yaklaşımı işaret ediyor.