Facebook, Linux çekirdeği için yeni bir levha bellek yönetimi mekanizması önerdi

Roman Guşçin (Roman Guşçin) Facebooktan опубликовал Linux çekirdek geliştiricilerinin posta listesinde yeni bir bellek ayırma denetleyicisinin uygulanmasını içeren bir dizi yama var döşeme (döşeme bellek denetleyicisi). Yeni denetleyici, dilim hesaplamasını bellek sayfası seviyesinden çekirdek nesnesi seviyesine taşımasıyla dikkat çekiyor; bu, her grup için ayrı dilim önbellekleri tahsis etmek yerine dilim sayfalarının farklı gruplarda paylaşılmasını mümkün kılıyor.

Önerilen yaklaşım, dilim kullanma verimliliğini artırmayı, levha için kullanılan bellek boyutunu %30-45 oranında azaltmayı ve çekirdeğin genel bellek tüketimini önemli ölçüde azaltmayı mümkün kılmaktadır. Hareketsiz levhaların sayısının azaltılmasıyla hafıza parçalanmasının azaltılmasında da olumlu bir etki sağlanır. Yeni bellek denetleyicisi, dilimlerin muhasebeleştirilmesine yönelik kodu önemli ölçüde basitleştirir ve her grup için dilim önbelleklerini dinamik olarak oluşturmak ve silmek için karmaşık algoritmaların kullanılmasını gerektirmez. Yeni uygulamadaki tüm bellek grupları ortak bir dilim önbellek seti kullanıyor ve dilim önbelleklerinin ömrü artık cgroup aracılığıyla yüklenenlerin ömrüne bağlı değil kısıtlamalar Bellek kullanımı hakkında.

Yeni levha kontrol cihazında uygulanan daha doğru kaynak hesaplaması, teorik olarak CPU'yu daha fazla yüklemelidir, ancak pratikte farkların önemsiz olduğu ortaya çıktı. Özellikle yeni levha denetleyicisi, farklı iş yükü türlerini işleyen Facebook üretim sunucularında birkaç aydır kullanıldı ve henüz gözle görülür bir gerileme tespit edilmedi. Aynı zamanda, bellek tüketiminde önemli bir azalma var - bazı ana bilgisayarlarda 1 GB'a kadar bellek tasarrufu mümkün oldu, ancak bu gösterge büyük ölçüde yükün niteliğine, toplam RAM boyutuna, CPU sayısına bağlıdır. ve hafızayla çalışmanın özellikleri. Önceki testler gösteri bellek tüketiminde web ön ucunda 650-700 MB (slab belleğin %42'si), DBMS önbellekli sunucuda 750-800 MB (%35) ve DNS sunucusunda 700 MB (%36) azalma.

Kaynak: opennet.ru

Yorum ekle