Facebook'un Yeni Bellek Yönetim Yöntemi

Sosyal ağ geliştirme ekibinin üyelerinden biri Facebook, Roman Guşçin, geliştirici posta listesinde bir dizi teklif önerdi Linux çekirdeği yamalarıyeni bir bellek yönetimi denetleyicisinin uygulanması yoluyla bellek yönetimini iyileştirmeyi amaçladı - döşeme (döşeme bellek denetleyicisi).

levha dağıtımı belleği daha verimli bir şekilde tahsis etmek ve önemli parçalanmayı ortadan kaldırmak için tasarlanmış bir bellek yönetim mekanizmasıdır. Bu algoritmanın temeli, belirli türdeki bir nesneyi içeren tahsis edilmiş belleği depolamak ve bu belleği, aynı türdeki bir nesne için bir daha tahsis edildiğinde yeniden kullanmaktır. Bu teknik ilk olarak SunOS'ta Jeff Bonwick tarafından tanıtıldı ve şu anda FreeBSD ve Linux da dahil olmak üzere birçok Unix işletim sisteminin çekirdeğinde yaygın olarak kullanılıyor.

Yeni denetleyici, dilim hesaplamasını bellek sayfası seviyesinden çekirdek nesnesi seviyesine taşımayı temel alır; bu, her bir grup için ayrı bir önbellek tahsis etmek yerine, bir levha sayfasının farklı gruplarda paylaşılmasını mümkün kılar.

Test sonuçlarına dayanarak, önerilen bellek yönetimi yönteminin hafızanın arttırılmasına izin verdiği anlaşılmaktadır. verim levha kullanarak için 45%ve ayrıca işletim sistemi çekirdeğinin genel bellek tüketimini de azaltacaktır. Ayrıca, levha için ayrılan sayfa sayısını azaltarak, bir bütün olarak bellek parçalanması azalır, bu da sistemin performansını etkilemez ancak etkileyemez.

Yeni denetleyici birkaç aydır üretim Facebook sunucularında test edildi ve şu ana kadar bu testin başarılı olduğu söylenebilir: performansta herhangi bir kayıp ve hata sayısında bir artış olmadan, bellek tüketiminde belirgin bir azalma fark edildi - bazılarında 1 GB'a kadar sunucular. Bu sayı oldukça subjektiftir; örneğin daha önceki testler biraz daha düşük sonuçlar göstermişti:

  • Web arayüzünde 650-700 MB
  • Veritabanı önbelleğine sahip sunucuda 750-800 MB
  • DNS sunucusunda 700 MB

>>> Yazarın GitHub'daki sayfası


>>> Erken test sonuçları

Kaynak: linux.org.ru

Yorum ekle