Canonical, uyku modunun etkinleştirilmesini hızlandırmak için yamalar önerdi

Kanonik Şirket sunulan Linux çekirdek geliştiricilerinin posta listesinde uygulamalı bir dizi yama var fırsatçı hafıza temizliği (“fırsatçı hafıza geri kazanımı”), bu da uyku moduna girmek için gereken süreyi önemli ölçüde azaltmanıza olanak tanır. Optimizasyon, benzersiz bilgiler içermeyen ve uyku modundan döndükten sonra dinamik olarak geri yüklenebilen ikincil bellek yapılarının (örneğin, alanlar) serbest bırakma işleminin proaktif olarak çağrılmasıyla gerçekleştirilir. anonim hafıza ve çeşitli hafıza sayfası önbellekleri). Ana fikir, gereksiz veriler kaldırıldıktan sonra, uyku moduna geçmeden önce kaydedilecek bellek görüntüsünün boyutunun azaltılması ve buna bağlı olarak yavaş ortamdan yazılması ve okunması için daha az zaman gerekmesidir.

Varsayılan olarak, hazırda bekletme modu için bir bellek dökümü kaydederken, çekirdek, belleği tüm önbelleklerde olduğu gibi kaydeder, ancak hazırda bekletme moduna girmenin ilk aşamasında kaynak yetersizliği koşullarını simüle ederek gereksiz yapıları boşaltmaya yönelik standart bir yetenek vardır. Bu özellik “/sys/power/image_size” parametresi kullanılarak etkinleştirilebiliyor ve uyku moduna girme süresinde gözle görülür bir azalmaya yol açıyor. Canonical, "/sys/power/mm_reclaim/run" adlı iki parametrenin daha eklenmesini önerir ve
Gereksiz yapıların serbest bırakılmasını önceden tetiklemenize olanak tanıyan "/sys/power/mm_reclaim/release", böylece uyku moduna gerçek geçiş mümkün olduğu kadar hızlı gerçekleştirilir ve uyku modundan dönüş, yaklaşık olarak aynı süreyi alır. "/sys/power/image_size" çekirdek parametresinde mevcut olanı kullanırken.

8 GB RAM ve 8 GB takas bölümüne sahip ve %85 bellek kullanımına sahip bir sistem üzerinde yapılan testler, varsayılan ayarlarda (image_size=default) uyku moduna girme süresinin, uyku moduna girme süresini 51.56 saniyeden 4.19 saniyeye düşürdüğünü gösterdi. Uyku moduna girmeden 60 saniye önce fazla belleğin temizlenmesi. Saklanan hafıza görüntüsünün boyutu küçültülerek kurtarma süresi 26.34 saniyeden 5 saniyeye düşürüldü. Sistem, fazla belleği temizlemek için standart modu açtığında (image_size=0), uyku moduna girme süresi 73.22 saniyeden 5.36 saniyeye düştü ve uyku modundan dönüş süresi neredeyse hiç değişmedi (sadece bir saniye kadar azaldı) saniyenin çok küçük bir kısmı, 5.32'den 5.26 saniyeye).

Önerilen yöntem, çok hızlı bir şekilde uyku moduna geçmenin gerekli olduğu ve böyle bir geçişe olan ihtiyacın önceden öngörülebilmesinin mümkün olduğu durumlarda talep görebilmektedir. Örneğin bulut sistemlerinde düşük öncelikli sanal ortamlar (spot ortamlar Amazon EC2'de), birincil ortamların kaynak tüketimi arttıkça dinamik olarak hazırda bekletme moduna geçebilir ve kullanılan belleği serbest bırakabilir. Birincil ortamlardaki yük azaldığında düşük öncelikli ortamlar uyku modundan çıkar. Bu koşullar altında uygun hizmet kalitesini korumak için uyku moduna girip çıkmak için gereken süreyi en aza indirmek önemlidir. Önleyici temizleme aşaması, düşük öncelikli ortamların donmasına neden olan seviyeden önce, ana yükün belirli bir seviyesine ulaşıldığında tetiklenebilir.

Kaynak: opennet.ru

Yorum ekle