Aşağıdaki çekirdeğe sahip Linux'ta bir demo sistemi kullanıyordum:
2.6.32-400.1.1.el5uek # 1 SMP Pzt 25 Haz 20 20:25:08 EDT 2012 x86_64 x86_64 x86_64 GNU / Linux
Takas gerçekleştiği anda, sistemdeki CPU kullanımı neredeyse% 100'dür ve aralarında% 90'ı CPU kullanımıdır. Beklendiği söylendi çünkü Linux sayfa arka plan programı devreye girdi ve bellek yığınını yalnızca bellek bittiğinde (ya da boş bellek 0,5G'den küçükse) takas etmek için yazmaya başladı, bu da çok fazla sys CPU kullanımıyla sonuçlandı. “takas” sistemde 60'dır.
Takas Linux'ta gerçekleştiğinde CPU kullanımının% 100'e ulaşması beklenen bir davranış mıdır?
Yukarıdaki soruyu yapmamın sebebi, demoyu aşağıdaki Linux çekirdeği ile başka bir sisteme geçirdiğimde yukarıdaki davranış değişti:
2.6.39-400.128.14.el5uek # 1 SMP 10 Mayıs Cumartesi 10 00:06:52 PDT 2014 x86_64 x86_64 x86_64 GNU / Linux
Geçtiğim sistemdeki vm parametresindeki tek fark, geçirilen sistemde 51200'e karşılık geçirilen sistemde 524288 olarak değiştirilen min_free_kbytes parametresidir.
Geçilen sistemde, boş hafıza 1.5G'nin altına düştüğünde, takas gerçekleşir, ardından CPU kullanımı bir miktar artar,% 30'dan% 40'a kadar bir şey olur ve uygulama performansı kısa bir süre için düzensiz hale gelir ve ardından Her şey, takas edilmeden önceki gibi normale döner.
Taşınan sistemin bu kadar farklı davranmasını sağlayan şey, takas gerçekleştiğinde CPU kullanımının% 100 meşgul olmayacağıdır?
Bu çok önemli bir demo sistemdir ve yukarıdaki iki sorunun açıklaması çok faydalı olacaktır. Herhangi bir fikir çok takdir edilecektir.
kswapd
.