Docker统计数据100%内存

布斯费雷拉

我有一个使用以下jvm参数运行Java应用程序的容器:

-XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m

我正在使用docker内存限制选项:

docker run -it -m 2304m foo bash

docker stats myApp在容器初始化后立即运行将给我:

CONTAINER   CPU %    MEM USAGE/LIMIT     MEM %   NET I/O
myApp       0.17%  660.5 MB/2.416 GB    27.34%   240.8 kB/133.4 kB

但是几个小时后,我得到以下统计信息:

CONTAINER   CPU %    MEM USAGE/LIMIT     MEM %   NET I/O
myApp     202.18%  2.416 GB/2.416 GB   100.00%   27.67 GB/19.49 GB

虽然,如果我查看容器中正在运行的应用程序的流程执行详细信息,我会使用,~735MB并且myApp会继续计算请求而不会出现任何问题:

me@docker-container ~]$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
me+          1  0.0  0.0  11636  1324 ?        Ss   13:44   0:00 /bin/bash /home/bar/service/start-myApp.sh
me+          6  113  4.5 5014152 735736 ?      Sl   13:44 438:46 java -XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m -jar myApp-service-1.0-final.jar
me+        481  0.0  0.0  11768  1820 ?        Ss   20:09   0:00 bash
me+        497  0.0  0.0  35888  1464 ?        R+   20:10   0:00 ps aux

值得一提的是,我已经使用jconsole监视进程,6并且一切看起来都不错。

如果docker容器的内容不需要它,为什么它会使用所有可用的内存?我期望docker使用的内存比myApp多一点...而不是可用内存的100%。

斯蒂芬·C

让我们以此开始:

 -XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m

也就是说,请使用始于0.5Gb且可以增长至2GB的堆以及0.25GB的permgen堆。而且这还不包括JVM的其他非堆使用情况;例如,内存映射文件,线程堆栈,缓存的JAR文件等。

然后您说码头工人正在报告该容器正在使用2.416 GB。这不足为奇。2.42-2.25为0.17GB,这对于非堆内存使用来说并不算过多。

最后,735736 RSS值告诉您居民设置的大小。即该进程正在使用的当前物理RAM数量。JVM参数和dockerstats命令是虚拟内存大小的度量。


如果docker容器的内容不需要它,为什么它会使用所有可用的内存?我期望docker使用的内存比myApp多一点...而不是可用内存的100%。

我认为您在误读ps aux输出。RSS只是所使用的物理内存。实际上,您的进程的总内存使用量是由VSZ ...给出的,即5GB。现在看起来确实很大,为什么它这么大并不清楚。但是从表面上看,这意味着Docker低估了容器的真实内存/虚拟内存使用率。

另一件事是,Docker容器不会将容器中的应用程序与容器外部其他事物对资源的需求隔离开来。JVM将与容器内外的其他应用程序竞争物理RAM。

欲获得更多信息:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Valgrind-堆统计数据很奇怪:内存泄漏?

来自分类Dev

从表创建统计数据

来自分类Dev

令人毛骨悚然的统计数据

来自分类Dev

gnuplot多列的统计数据

来自分类Dev

每天选择并统计数据

来自分类Dev

来自吉西的统计数据

来自分类Dev

良好的统计数据集成

来自分类Dev

统计数据处理

来自分类Dev

MongoDB 的 30 天统计数据

来自分类Dev

MYSQL 平均日统计数据

来自分类Dev

Docker Swarm 容器统计数据是否特定于主机?

来自分类Dev

统计数据中的流入/流出计数

来自分类Dev

统计数据框中的特定数据并显示

来自分类Dev

Darts 数据库以保存统计数据

来自分类Dev

获取CS:GO玩家统计数据

来自分类Dev

如何将统计数据(* .sta)导入R

来自分类Dev

Emacs讲统计数据:自动关闭大括号

来自分类Dev

使用Sunspot在Solr中按统计数据分组

来自分类Dev

使用统计数据计算标准差

来自分类Dev

统计数据库目录中的文档

来自分类Dev

如何创建汇总统计数据框架?

来自分类Dev

使用R获取足球(足球)统计数据

来自分类Dev

iperf如何计算网络统计数据

来自分类Dev

从表中获取员工和经理的统计数据

来自分类Dev

pep8-整个项目的统计数据

来自分类Dev

统计数据和全局变量

来自分类Dev

调整统计数据在ggpubr中的位置

来自分类Dev

关于大学篮球统计数据的网页检索表

来自分类Dev

体育统计数据的SQL表设计