Docker ile uzun ömürlülük testi (bellek sınırsız docker 1.5 ve 1.6) (centos 7/rhel 7) ve çalışan kapların sistem-cgtop istatistiklerini gözlemleyerek çok yüksek bellek kullanımı olduğunu fark ettim. Tipik olarak, konteynır haline getirilmemiş bir durumda çalışan özel uygulama sadece yaklaşık 200-300 MHz bellek kullanır. 3 günlük bir süre zarfında, sistem-cgtop raporunu görerek konteynamın kullanılan 13G belleğe kadar çıktığını gördüm. Ben hiçbir şekilde bir uzman Linux yönetici değilim, ben aşağıdaki makalelere beni işaret hangi buna kazma başladı:Docker bellek kullanımını doğru olarak bildirmiyor mu?
https://unix.stackexchange.com/questions/34795/correctly-determining-memory-usage-in-linux
http://corlewsolutions.com/articles/article-6-understanding-the-free-command-in-ubuntu-and-linux Böylece temelde anlayış belirlemektir neysem
sistem birimi içindeki gerçek boş hafıza -/+ arabelleklere/önbelleğe bakmaktır: "free-m" içinde değil, üst satırda, "free -m" içindeki üst satırın sürekli olarak artacağını fark ettiğim gibi bellek kullanılır ve sürekli olarak benim sistem-cgtop aracılığıyla kapsayıcımla gözlemlediğim gibi azalan boş bellek miktarını gösterir. -/+ tamponlarını/önbelleğini gözlemlersem: hat kullanılan/sabit olan gerçek sabit bellek miktarlarını göreceğim. Ayrıca, asıl işlemi ana bilgisayar üzerinde gözlemlediğimde, işlemin kendisinin sadece% 1'inden daha azını kullandığını görebiliyorum (32G'nin% 0.8'i).
Burada neler olup bittiği konusunda biraz kafam karıştı. Bir kap için 500-1000M'lik bir bellek sınırını ayarlarsam (takas nedeniyle iki kat daha fazla olacağına inanıyorum), işlemin kendisi kullanılmıyor olsa bile, bellek sınırıma ulaştığımda sürecimin sonunda duracaktı o kadar çok hafızaya yakın bir yer? Dışarıda kimse hakkında herhangi bir geri bildirim varsa, bu harika olurdu. Teşekkürler!