'docker stats shows zero memory usage even for running containers
I have two containers ran by 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
Host OS is Debian Jessie. There are JVM applications in both containers. Why does docker stats
show zero memory usage? Should I configure my Java apps somehow to be able to see memory usage in docker stats
? Is there some other way to check memory usage?
Solution 1:[1]
It is quite possible that memory cgroup accounting is not enabled in your kernel (which is a common problem that others have hit as well over time on Debian/Ubuntu based installs).
Can you verify with docker info
or the output from the daemon that you aren't seeing messages like the following, nicely summarized in this blog post: http://awhitehatter.me/debian-jessie-wdocker/? If so, the fix is also listed there, as well as in the GitHub issue I linked in the first sentence. There is also a section in the install documentation about enabling cgroup memory accounting although it only mentions Ubuntu and not Debian.
Solution 2:[2]
Ubuntu 20.04,
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
I had a same issue until I did not removed the oom-kill-disable from my yaml file.
--memory=1500m \
# --oom-kill-disable \
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Phil E |
Solution 2 | Zoli Barna |