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

Evg*_*kov 5 java jvm docker

我有两个由 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
Run Code Online (Sandbox Code Playgroud)

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

Phi*_*l E 6

您的内核中很可能未启用内存 cgroup 记帐(这是其他人在基于 Debian/Ubuntu 的安装上随着时间的推移也遇到的常见问题)。

您能否使用docker info守护程序或守护程序的输出来验证您没有看到以下消息,这篇博客文章中对此进行了很好的总结:http : //awhitehatter.me/debian-jessie-wdocker/?如果是这样,修复程序也列在那里,以及我在第一句话中链接的 GitHub 问题中。安装文档中还有一个关于启用 cgroup 内存记帐的部分,尽管它只提到了 Ubuntu 而不是 Debian。