- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个运行带有以下 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% 的可用内存。
最佳答案
让我们从这里开始:
-XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m
也就是说,使用一个从 0.5Gb 开始并可以增长到 2GB 的堆,以及一个 0.25GB 的 permgen 堆。这还不包括 JVM 的其他非堆使用;例如内存映射文件、线程堆栈、缓存的 JAR 文件等。
然后你说 docker 报告容器正在使用 2.416 GB。这并不奇怪。 2.42 - 2.25 是 0.17GB,对于非堆内存使用来说并不过分。
最后,735736 RSS 值告诉您常驻集大小;即该进程正在使用的当前物理 RAM 量。 JVM 参数和 docker stats
命令是虚拟内存大小的度量。
Why is docker container using all the memory available if its content does not need it? I expected that docker would use a little more memory than myApp... not 100% of the available memory.
我认为您误读了 ps aux
输出。 RSS 只是正在使用的物理内存。事实上,你的进程的总内存使用量由 VSZ 给出......它是 5GB。现在 >确实 < 看起来很大,但不清楚为什么这么大。但从表面上看,这意味着 Docker 低估了容器的真实内存/虚拟内存使用情况。
另一件事是,Docker 容器不会将容器中的应用程序与容器外其他事物的资源需求隔离开来。 JVM 将与容器内外的其他应用程序竞争物理 RAM。
更多信息:
https://goldmann.pl/blog/2014/09/11/resource-management-in-docker/解释 Docker 资源管理的工作原理,以及它能做什么和不能做什么。
关于java - Docker 统计 100% 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461821/
我目前正在学习数据挖掘,有以下问题。 机器学习和数据挖掘之间有什么关系? 我发现许多数据挖掘技术都与统计相关,而我“听说”数据挖掘与机器学习有很多关系。所以我的问题是:机器学习与统计学密切相关吗? 如
我有很多表的数据,例如: event_id player finish 1 a 1 1 b 2 1 c
我对 http_status_module 提供的统计数据感兴趣 特别是上游部分的统计数据。 http://nginx.org/en/docs/http/ngx_http_status_module.
除了 Cluster MBean 之外,是否有任何可以在 Akka (Java) 中启用的内置 JMX 公开监控/统计信息?我看过 Typesafe Console,但由于它需要许可证才能用于从多个节
我正在尝试在我的程序中使用“usage”统计信息来获取类似于 time 的数据工具。但是,我很确定我做错了什么。这些值似乎是正确的,但有时可能有点奇怪。我没有在网上找到好的资源。有人知道如何做得更好吗
我有一个带有统计表的 MySQL 数据库。我想以年历、月度的形式输出数据。对于没有点击率的几个月,我想花费一个“空”DIV。有两个ID。 $query = mysqli_query($db,"SELE
设置: 问题是经典概率问题的复杂形式: 70 colored balls are placed in an urn, 10 for each of the seven rainbow colors.
有哪些 Ruby gem 可以执行数据处理? 最佳答案 我知道有 3 种从 Ruby 访问 R 的方法: RinRuby RSRuby 通过 Rserve-Ruby-Client 预约 RinRuby
背景 图像领域内的一个国内会议快要召开了,要发各种邀请邮件,之后要录入、统计邮件回复(参会还是不参会等)。如此重要的任务,老师就托付给我了。ps: 统计回复邮件的时候,能知道谁参会或谁不参会。
我正在添加用户输入的几个数字并将它们添加到数组列表中。 到目前为止我的代码: package project143; import java.util.*; /** * @author -- */
正如标题所示,我需要做的是在各种 iO/Android/Windows 应用程序中跟踪各种用户事件 - 例如点击、滑动、在页面上花费的时间等。 这些应用程序基于响应式 HTML/CSS/JS,并具有简
我希望计算 HTML 表中每个唯一值的实例数,并在其自己的表中返回结果。该表是根据用户的文本输入生成的。例如,用户输入可能如下所示: Report 46 Bob Marley 4/20/2
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
我只是想知道是否可以计算 GitHub 上空存储库的总数。 如果不适合所有用户,可以为自己做吗? 编辑 我已经尝试过size:0搜索,但似乎返回了很多包含数据的存储库。采用 size:0..1 之类的
public class Scanner { private HtmlProcessor hp; private String baseUrl; private int ste
我正在使用 Mule ESB 3.4。我想开发一个自定义 Java 组件来计算流收到的请求数量。流程将例如像这样: http inbound-endpoint -> counter -> vm-out
我喜欢借助 GitHub API 来统计存储库中所有开放的拉取请求和问题。我发现 API 端点 /repos/:owner/:repo 结果包含 open_issues 属性。然而,这是问题和拉取请求
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试以编程方式获取搜索字词列表的 Google 新闻搜索结果计数(即有多少个结果),但仅限于过去 1 年。使用用户界面搜索时,结果计数仅出现在常规搜索中,但在“工具 > 最近 > 过去一年”下时
我是一名优秀的程序员,十分优秀!