2015-04-23 37 views
5

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!

cevap

1

Bir süredir dolandırıcıyı CentOS 7'de kullandım ve bunlarla aynı şeyi karıştırdım. Github sorunları bağlantısını kontrol etmek, bu sürümde docker stats gibi görünüyor yanıltıcı bir tür.

https://github.com/docker/docker/issues/10824

yüzden sadece docker stats aldığım bellek kullanımını görmezden geldi.

0

İstediğinizden beri bir yıl, ancak ilgilenen herkes için bir yanıt ekleyin. Bir bellek limiti ayarlarsanız, kullanılmayan belleği geri almayı reddetmedikçe öldürmeyeceğini düşünüyorum. Gruplar metrikleri ve sonuç olarak docker istatistikleri sayfa önbelleği + RES'yi gösterir. breakup 'u görmek için gruplara detailed metriklerine bakabilirsiniz. Benzer bir issue vardı ve bir bellek sınırıyla test ettiğimde kabın öldürmediğini gördüm. Daha ziyade hafıza geri kazanılmış ve yeniden kullanılmıştır.