即使对于运行容器,docker stats也显示零内存使用量

时间:2017-08-07 07:12:54

标签: java docker jvm

我有两个由Docker Swarm运行的容器:

# docker ps
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS               NAMES
18f1e7d79f5b        default/image1:latest               "/bin/sh -c 'java ..."   12 hours ago        Up 12 hours                             image1.1.x56zz152kmqtqpxzle5nkbs8r
11d1f05fcff1        default/image2:latest               "java -cp /app/sca..."   13 hours ago        Up 13 hours                             image2.1.ljztzeeh8i5r6ebr3n4hcj45e

$ docker stats --no-stream
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
18f1e7d79f5b        0.92%               0B / 0B             0.00%               648B / 0B           0B / 0B             0
11d1f05fcff1        0.91%               0B / 0B             0.00%               39.9MB / 26.9MB     51.2MB / 0B         0

主机操作系统是Debian Jessie。两个容器中都有JVM应用程序。为什么docker stats显示零内存使用量?我应该以某种方式配置我的Java应用程序以查看docker stats中的内存使用情况吗?有没有其他方法来检查内存使用情况?

1 个答案:

答案 0 :(得分:2)

内核中很可能没有启用内存cgroup记帐(这是common problem其他人在基于Debian / Ubuntu的安装上随时间推移而发生的事情。)

您可以使用docker info或守护程序的输出验证您没有看到如下所示的消息,在此博客文章中很好地总结了:http://awhitehatter.me/debian-jessie-wdocker/?如果是这样,那里也会列出修复程序,以及我在第一句中链接的GitHub问题。安装文档中还有一节关于enabling cgroup memory accounting,但它只提到了Ubuntu而不是Debian。