容器內(nèi)存占用之系統(tǒng)cache介紹
緣起:
監(jiān)控(docker stats)顯示容器內(nèi)存被用完了,進(jìn)入容器瞅了瞅,沒(méi)有發(fā)現(xiàn)使用內(nèi)存多的進(jìn)程,使用awk等工具把容器所有進(jìn)程使用的內(nèi)存加起來(lái)看看,距離用完還遠(yuǎn)了去了,何故?
分析:
該不會(huì)docker stats計(jì)算錯(cuò)誤?
進(jìn)入/sys/fs/cgroup/memory/docker/xxxxx/ 查看memory.usage ,確認(rèn)計(jì)算沒(méi)有錯(cuò)誤
我們知道,系統(tǒng)內(nèi)存會(huì)有一部分被buffer、cache之類占用,linux也會(huì)把這部分內(nèi)存算到已使用,對(duì)于容器來(lái)講,也應(yīng)該存在此“問(wèn)題”,而且非常有可能linux會(huì)把某容器引發(fā)的cache占用算到容器占用的內(nèi)存上;驗(yàn)證很簡(jiǎn)單,進(jìn)容器dd一個(gè)大文件就知道了:
dd 大文件后,docker stat顯示已用內(nèi)存變多
宿主機(jī)上: echo 3 > /proc/sys/vm/drop_caches 后,docker stat顯示已用內(nèi)存變少
至此,原因查明
問(wèn)題:
對(duì)于宿主機(jī)來(lái)講,計(jì)算內(nèi)存占用時(shí),可以拿已用內(nèi)存減去cache/buffer ,那么對(duì)于容器來(lái)講,如果減去容器部分的cache/buffer 呢?如果不減去,也會(huì)造成誤報(bào)警
測(cè)試發(fā)現(xiàn): dd 產(chǎn)生的文件cache占用的內(nèi)存會(huì)計(jì)算到 inactive_file 的頭上
相關(guān)文章
- 有用戶會(huì)發(fā)現(xiàn)自己的電腦上總有一個(gè)Cache文件,也不知道是做什么用的,有什么作用,是否可以刪除,下面小編帶你一起來(lái)看看2016-07-07
禁用DNS緩存插件(DNS Cache) v1.8.1 綠色版
DNS Cache是一款用于火狐瀏覽器的輔助插件,主要功能可幫助用戶來(lái)來(lái)輕松的進(jìn)行瀏覽器的DNS緩存禁用和開(kāi)啟,歡迎需要的朋友下載使用2014-12-23Drupal7的cache緩存開(kāi)發(fā)實(shí)例教程
這篇文章主要為大家介紹了Drupal7的cache緩存開(kāi)發(fā)的方法,可以有效的緩解網(wǎng)站的訪問(wèn)壓力,是進(jìn)行drupal建站中非常實(shí)用的技巧,需要的朋友可以參考下2014-11-07html5 application cache遇到的嚴(yán)重問(wèn)題
在我們的3G版網(wǎng)站的項(xiàng)目中使用了html5 application cache,將大部分圖片資源、js、css等靜態(tài)資源放在manifest文件中,需要了解的朋友可以參考下2012-12-26CPU內(nèi)部Cache出錯(cuò)導(dǎo)致的故障原因以及解決方法
一臺(tái)電腦,配置為毒龍600 MHz CPU,雜牌KTl33主板,256 MB內(nèi)存,希捷40 GB硬盤,TNVantan顯卡,一直運(yùn)行正常。某天開(kāi)機(jī)時(shí),系統(tǒng)報(bào)告有系統(tǒng)文件錯(cuò)誤,隨即死機(jī)。2012-02-14

