主要的方法如下:

在宿主机上

1、使用docker stats
动态实时观看可以使用:

docker stats
在这里插入图片描述

如果静态查看可以使用该命令:

docker stats --no-stream d8ea9093d820
在这里插入图片描述

d8ea9093d820为容器id。

2、使用top命令
先执行 docker top 查出pid,

docker top d8ea9093d820

在这里插入图片描述

网上有些教程使用ps -ef | grep 容器id去查 pid,这个方法是不准的。
在这里插入图片描述
通过对比可以看出,ps 出来的28948 是id 28964 的父id。
通过top -p id也可以看出 28948 运行的是docker Containerd 载体。不能反应docker 真实的应用占用内存。
在这里插入图片描述
28964 反应的是真实的数据。
在这里插入图片描述

在容器上

查看使用的内存。
cat /sys/fs/cgroup/memory/memory.usage_in_bytes
396886016
查看使用的缓存
cat /sys/fs/cgroup/memory/memory.stat | grep cache
396316672
两者相减就是实际的内存,memory.usage_in_bytes-cache.
至于部分误差,则可以忽略了。
参考文档:
https://blog.csdn.net/u012986012/article/details/105291831
https://kubesphere.com.cn/forum/d/1517-docker-stats-mem-top-res

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐