我有两个由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
中的内存使用情况吗?有没有其他方法来检查内存使用情况?
答案 0 :(得分:2)
内核中很可能没有启用内存cgroup记帐(这是common problem其他人在基于Debian / Ubuntu的安装上随时间推移而发生的事情。)
您可以使用docker info
或守护程序的输出验证您没有看到如下所示的消息,在此博客文章中很好地总结了:http://awhitehatter.me/debian-jessie-wdocker/?如果是这样,那里也会列出修复程序,以及我在第一句中链接的GitHub问题。安装文档中还有一节关于enabling cgroup memory accounting,但它只提到了Ubuntu而不是Debian。