docker内存统计

在docker里top和在docker外top看内存都是没有变化的,但是用docker stats看mem uasge就一直在涨

top命令和docker stats命令采集内存使用的方式不同所致

top命令采集的是当前进程的内存使用情况

docker stats命令采集的是整个Docker容器的内存使用情况

当你在Docker容器中运行进程时,top命令只能看到该进程的内存使用情况,而docker stats命令能够看到整个Docker容器的内存使用情况,包括该进程以及其他进程使用的内存。

此外,Docker容器还有一些额外的内存消耗,例如Docker守护进程、容器文件系统等等。这些消耗也会被包括在docker stats命令中,但不会被top命令所显示。

因此,如果你在Docker容器中运行的进程使用的内存比较少,但Docker容器本身的内存使用量不断增长,那么你可能会看到这种情况。你可以使用docker stats命令来更准确地监测Docker容器的内存使用情况。

还有就是我docker里是多进程,写时复制的,会影响docker stats的内存统计吗

在 Docker 中,每个容器都运行在其自己的命名空间中,这意味着容器内的所有进程都只能看到自己的进程和资源使用情况。因此,Docker 在统计容器的内存使用时,只会考虑容器内部的进程和资源使用情况,而不会考虑容器外部的进程和资源使用情况。

因此,Docker 的内存统计不会受到容器内部使用写时复制多进程的影响。Docker 会根据容器内部进程使用的内存来计算容器的内存使用情况,不会考虑容器内部的具体实现方式。

请注意,Docker 的内存统计可能并不总是准确的,因为它只能捕捉容器内部的进程和资源使用情况。如果容器内部的进程使用了过多的共享内存或匿名内存,那么 Docker 的内存统计可能会低估容器的内存使用情况。

你可能感兴趣的:(客户,docker,服务器)