成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Docker和容器內進程內存計算差別

存儲 存儲軟件
生產環境上了大規模容器集群后,肯定需要對容器進行監控,容器的編排我們采用了Kubernetes,監控前期采用了Weave Scope,后期采用了cAdvisor+Heapster+InfluxDB的方案,剛開始監控感覺并沒有什么異常,但是集群運行久了之后,發現監控的指標和預想的并不一樣。

 生產環境上了大規模容器集群后,肯定需要對容器進行監控,容器的編排我們采用了Kubernetes,監控前期采用了Weave Scope,后期采用了cAdvisor+Heapster+InfluxDB的方案,剛開始監控感覺并沒有什么異常,但是集群運行久了之后,發現監控的指標和預想的并不一樣。

我們有對應的Java應用跑在容器中,每個Container的資源限制了4C16G(看起來和虛機一樣夸張),JVM設置了Xmx2G的限制,但是發現有些容器的內存使用率一直在16G左,完全沒有釋放出來。Weave Scope和Heapster監控采集到的指標都是一樣的,但是實際登錄容器后發現JVM才用了800M不到。Weave Scope上其實可看到container和container內process的內存消耗,這個和實際登錄容器看到的是一樣的結果,如下圖(剩余的那些sleep等進程其實占內存很少,忽略不計)

[[236276]]

我們可以用docker stats查看對應容器的資源消耗,看到內存使用率在16G左,如下圖

其實容器內部就是Linux對于內存的計算方式,我Baidu了一下發現Linux和Docker對于容器內存的計算是有差異的,Linux中buffer/cache是不計算進used memory的,所以下圖中total=free+used+buff/cache,free命令的數據來源于/proc/meminfo

Docker本身的內存要通過cgroup文件中相關數據計算,我們進入對應容器的cgroup目錄中,我們的容器以Pod為最小單位運行在Kubernetes環境中,所以路徑在/sys/fs/cgroup/memory/kubepods下,后面跟著Pod的***標識和container的***標志

  1. /sys/fs/cgroup/memory/kubepods/pod2534673f-68bd-11e8-9fff-325ce3dddf77/245ac9f74c34b666ba14fadab30ef51c0f6259324b4b2f100e9b6b732b4c0933 

在該目錄中有一個memory.limit_in_bytes文件,這個就是Kubernetes的YAML文件通過resource.limit將值傳遞給Docker API下發的內存限制,cat查看為17179869184,單位Byte,轉換后剛好為16G;然后我們看到有一個memory.usage_in_bytes,為當前容器的內存使用量,cat查看為17179824128,轉換后15.9999G,Docker的原生監控,就是我們在用的這些Weave Scope和Heapster其實都是查詢這個memory.usage_in_bytes的值;那么我們怎么推算出實際容器中應用消耗的內存總量呢,我們需要查看該目錄下的memory.stat文件,cat看到如下內容

  1. [root@docker 245ac9f74c34b666ba14fadab30ef51c0f6259324b4b2f100e9b6b732b4c0933]# cat memory.stat 
  2.  
  3. cache 15749447680 
  4. rss 817262592 
  5. rss_huge 715128832 
  6. mapped_file 3653632 
  7. swap 0 
  8. pgpgin 59308038 
  9. pgpgout 55485716 
  10. pgfault 97852409 
  11. pgmajfault 1048 
  12. inactive_anon 0 
  13. active_anon 817238016 
  14. inactive_file 7932751872 
  15. active_file 7816630272 
  16. unevictable 0 
  17. hierarchical_memory_limit 17179869184 
  18. hierarchical_memsw_limit 34359738368 
  19. total_cache 15749447680 
  20. total_rss 817262592 
  21. total_rss_huge 715128832 
  22. total_mapped_file 3653632 
  23. total_swap 0 
  24. total_pgpgin 59308038 
  25. total_pgpgout 55485716 
  26. total_pgfault 97852409 
  27. total_pgmajfault 1048 
  28. total_inactive_anon 0 
  29. total_active_anon 817238016 
  30. total_inactive_file 7932751872 
  31. total_active_file 7816630272 
  32. total_unevictable 0 

對其中常用項的解釋如下表

實際Container中實際內存使用量real_used =memory.usage_in_bytes - (rss + active_file + inactive_file),但是一個resource.limit為16G的Container,JVM應用只是用了幾百兆,但監控查到使用了16G,多出的15G用在哪里。我們查詢了InfluxDB數據庫,拉出了Pod的監控歷史,發現有一個時間點,內存使用率從16G一下子掉到了11G,并且在1分鐘后上升到了16G,此時間點通過工作記錄發現是有清容器日志的操作,應用將日志通過文件的形式寫在宿主機的文件系統中,我們找了測試環境嘗試,將一個內存消耗為7G的Container的5G日志清掉,docker stats可以看到Container的內存使用率一下子掉到了4G,并且active_file和inactive_flie都有大幅度的下降,這里為什么清了日志內存使用率只掉到4G,因為我們還有其他的寫文件日志沒有清,以及Container本身輸出在Stdout的json.log。這樣的高內存使用率長達1周,但是我們發現并沒有讓容器因為OOM(Out-Of-Memory)而退出,推算出容器中的Cache其實會根據實際的內存分配量而使用,并不像程序為超額使用導致容器OOM退出。

責任編輯:武曉燕 來源: 瀟灑的云世界
相關推薦

2020-10-22 13:49:37

Docker容器僵死進程

2016-01-11 10:29:36

Docker容器容器技術

2023-08-29 10:50:25

2023-09-01 11:34:41

2019-07-16 14:44:52

DockerMySQL操作系統

2010-02-04 09:26:34

Linux vmsta

2022-01-10 17:41:31

內存結構PostgreSQL

2018-10-12 11:11:39

Oracle內存結構

2019-12-24 08:49:06

容器Docker網絡

2015-03-26 17:13:17

云計算數據中心IDC

2017-03-20 14:51:33

2020-01-09 15:28:30

KubernetesDocker:容器

2023-09-15 10:15:43

Docker網絡

2018-06-26 15:58:39

進程內緩存緩存數據

2011-05-20 15:38:37

SAPDELL云計算

2020-07-16 07:52:09

Docker容器數據庫

2015-02-13 10:21:11

dockerubuntu解決方案

2019-11-25 11:12:18

企業應用軟件容器操作系統

2016-10-08 15:42:02

ElasticsearcAdvisorDocke

2016-05-20 09:58:58

Java內存限制LXC
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲第一黄色网 | 久久久高清 | 奇米久久久 | 一级在线观看 | 一级毛片视频在线 | 欧美成人在线免费 | 中文一区二区 | 国产高清精品一区二区三区 | 亚洲网站在线观看 | 一区二区中文字幕 | 国产成人久久av免费高清密臂 | 免费中文字幕日韩欧美 | 亚洲精品国产成人 | h片在线观看网站 | 人妖av | 精品欧美乱码久久久久久 | 国产免费观看一级国产 | 婷婷午夜天 | 一级片片 | 欧美精品一二区 | 久久婷婷香蕉热狠狠综合 | 国产精品久久久久久av公交车 | 中文字幕 国产 | 免费久久网站 | 日韩在线视频免费观看 | 久草在线| 日韩欧美亚洲 | 免费中文字幕日韩欧美 | 蜜桃av一区二区三区 | 美女黄色在线观看 | h视频在线观看免费 | 欧美性猛交一区二区三区精品 | 色在线免费 | 欧美在线视频网 | 久久综合久色欧美综合狠狠 | 日韩欧美亚洲 | 97精品国产97久久久久久免费 | 91pao对白在线播放 | 国产欧美日韩综合精品一区二区 | 亚洲午夜视频 | 91精品国产综合久久精品图片 |