当前位置: 首页 > 知识库问答 >
问题:

Docker统计100%内存

周奇
2023-03-14
-XX:+UseG1GC -Xms512m -Xmx2048m -XX:MaxPermSize=256m
docker run -it -m 2304m foo bash
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
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%的可用内存。

共有1个答案

秦昂然
2023-03-14

让我们从这个开始:

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

也就是说,使用一个从0.5GB开始并可以增长到2GB的堆,以及一个0.25GB的permgen堆。这不包括JVM的其他非堆使用;例如内存映射文件、线程堆栈、缓存的JAR文件等。

然后您说docker报告容器正在使用2.416GB。这并不奇怪。2.42-2.25是0.17GB,对于非堆内存使用量来说并不过分。

有关更多信息:

>

  • https://goldmann.pl/blog/2014/09/11/resource-management-in-docker/解释了Docker资源管理是如何工作的,以及它可以做什么和不能做什么。

    什么是Linux内存管理中的RSS和VSZ。

  •  类似资料:
    • 我通过从Jmeter发送请求来强调容器,然后通过docker stats命令监视容器的cpu使用情况,该命令给出的值大于100%。 我不明白为什么即使只给容器分配一个核心,它也会给出超过100%的!。你知道原因吗?这个cpu值是否表示除了容器之外的某些系统进程的cpu使用情况? 提前感谢你的帮助。 docker信息结果:集装箱:2运行:1暂停:0停止:1图像:10服务器版本:17.06.0-CE存

    • 请问如何在Java中为docker容器运行curl操作?当我在shell上运行此命令时 Docker统计 我得到了这个结果 对于这个容器 我的问题是,如何从Java程序(RESTAPI)运行这个命令行(docker stats)并检索结果?

    • 问题内容: 我编写了在每个Docker容器中运行的golang应用程序。它使用protobufs通过tcp和udp相互通信,我使用Hashicorp的成员列表库来发现网络中的每个容器。在docker stats上,我看到内存使用率呈线性增加,因此我尝试查找应用程序中的任何泄漏。 由于它是一个不断运行的应用程序,因此请使用http pprof来检查任何一个容器中的实时应用程序。我看到即使docker

    • 本文向大家介绍Python-while 计算100以内奇数和的方法,包括了Python-while 计算100以内奇数和的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现: 在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。 以上这篇Python-whi

    • 虚拟内存 分页系统地址映射 页面置换算法 1. 最佳 2. 最近最久未使用 3. 最近未使用 4. 先进先出 5. 第二次机会算法 6. 时钟 分段 段页式 分页与分段的比较 虚拟内存 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被

    • 试图找出和之间的区别,看起来CLI有效地提供了通过配置间接运行CLI的方法(docker和docker-compose之间的区别是什么)。 对于CLI,您可以做什么不能在中指定的事情吗?