【问题标题】:How to check heap size inside docker container如何检查docker容器内的堆大小
【发布时间】:2021-07-27 06:36:25
【问题描述】:

我们在服务器上使用 docker swarm。使用openjdk8。如果这样做:

docker service ls

查看结果:

ID                  NAME                               MODE                REPLICAS            IMAGE                                                                PORTS
7l89205dje61        integration_api                          replicated          1/1                 docker.repo1.tomba.com/koppu/koppu-api:3.1.2.96019dc
.................        

我正在尝试更新此服务的 jvm 堆大小,所以我尝试了:

docker service update --env-add JAVA_OPTS="-Xms3G -Xmx3G -XX:MaxPermSize=1024m" integration_api

看到了这个结果:

integration_api
overall progress: 1 out of 1 tasks 
1/1: running   [==================================================>]

现在我正在尝试查看堆大小,但没有找到一种方法,就像尝试进入容器时一样,将上面的 id 设为:

docker exec -it 7l89205dje61 bash

出现错误:

this container does not exit.

有什么建议吗?

【问题讨论】:

    标签: docker jvm docker-swarm heap-memory


    【解决方案1】:

    也许您可以执行到正在运行的容器中并使用类似这样的方式显示当前堆大小?

    # get the name of a container within your service with
    docker exec -it <CONTAINER-ID> bash
    
    # after execing into the container,
    java -XX:+PrintFlagsFinal -version | grep HeapSize
    

    Use this Stack Orerflow post 弄清楚如何执行到服务中

    获得了从this Stack Overflow post打印堆设置的java代码

    【讨论】:

      猜你喜欢
      • 2017-05-04
      • 2021-01-10
      • 2015-07-07
      • 2015-11-13
      • 2019-02-21
      • 2020-02-25
      • 1970-01-01
      • 2020-04-27
      • 2014-12-20
      相关资源
      最近更新 更多