如何衡量Docker中的性能?

在Docker中可能存在性能问题吗?

因为我知道VM的,你必须指定你想要使用多lessRAM

但我不知道在docker。 它正在运行。 它会自动使用RAM所需要的,或者这是如何工作的?

它会自动使用RAM所需要的,或者这是如何工作的?

不,默认情况下,它将使用所需的最小内存,达到极限。

您可以使用docker stats来查看它在正在运行的容器中:

 $ docker stats redis1 redis2 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O redis1 0.07% 796 KB / 64 MB 1.21% 788 B / 648 B 3.568 MB / 512 KB redis2 0.07% 2.746 MB / 64 MB 4.29% 1.266 KB / 648 B 12.4 MB / 0 B 

在使用docker run ,可以使用运行时限制资源来指定这些限制。
这包括RAM:

 -m, --memory="" 

内存限制(格式: <number>[<unit>] ,其中unit = b,k,m或g)

在正常情况下,容器可以根据需要使用尽可能多的内存,并且仅受限于使用-m/--memory选项设置的硬限制
当设置了内存预留时,Docker将检测内存争用或内存不足,并迫使容器限制其使用量达到预留限制。

默认情况下,如果发生内存不足(OOM)错误,内核将杀死容器中的进程
要更改此行为,请使用--oom-kill-disable选项。 只有在您还设置了-m/--memory选项的容器上禁用OOM杀手。

注意:即将到来的(1.10) docker update命令可能包含dynamic内存更改。 请参阅docker update

默认情况下,docker容器的主机资源量不受限制。 容器的权限有限(这就是“容器”部分)。

您应该始终在容器上设置约束,例如容器允许使用的最大内存量,交换空间量以及CPU数量。 不设置这样的限制可能会导致主机内存不足,内核会消除随机进程(OOM kill),释放内存。 在这种情况下,“Random”也意味着内核会杀死你的ssh服务器,或者docker守护进程本身。

阅读有关在手册中限制资源的运行时限制容器上资源的更多信息。