我的docker引擎有以下资源限制:
- 4 个 CPU
- 4096 MB 内存
- 2048 MB 交换
- 64 GB 磁盘大小
docker 容器正在使用默认资源分配运行。现在我正在使用调查容器资源使用情况docker stat
。输出:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
df09b7636ef2 getstartedlab_articleservice.3.799hopivzdful5fkphy1l2skn 0.12% 204MiB / 913.3MiB 22.34% 69.9kB / 73kB 108MB / 12.3kB 32
afd5f157a3e2 getstartedlab_articleservice.1.r5v55711b3fr5q5h9ouu15quq 0.14% 93.56MiB / 913.3MiB 10.24% 104kB / 110kB 122MB / 0B 32
172b3fa09c46 getstartedlab_articleservice.2.pwrxsmnhc8hd1cmnhk9h4nv3e 0.15% 83.93MiB / 913.3MiB 9.19% 158kB / 167kB 183MB / 0B 32
e4199bfe7d92 getstartedlab_customerservice.1.a6xlzdol1dbnk2m481u393hzp 0.15% 71.56MiB / 913.3MiB 7.84% 176kB / 186kB 433MB / 0B 32
5e6d9eece953 getstartedlab_cartservice.1.iigrada1zp43sb8m2snyk9x4r 0.13% 75.66MiB / 913.3MiB 8.28% 180kB / 186kB 478MB / 57.3kB 30
46aff975d07d getstartedlab_catalogservice.1.wewy4x5zpl23vhzi3r3cpzpi4 0.16% 61.93MiB / 913.3MiB 6.78% 179kB / 185kB 842MB / 111kB 30
41d7b9c2e502 getstartedlab_nginx-default.1.caco2pvdja514ymr3auu7nyq7 0.00% 1.184MiB / 913.3MiB 0.13% 43.7kB / 45.2kB 20MB / 0B 2
可以看到,每个容器的内存限制完全相同。限制设置为 913.3 MB。总共有 7 个容器。
7*913.3MB = 总共使用了 6393.1MB。
MEM USAGE / LIMIT
这有什么意义呢?如上所述,我的最大磁盘使用量设置为 64GB (64000MB),RAM 限制设置为 4096MB。这指的是哪种内存?
答案1
MEM USAGE 指的是容器实际使用的内存量。
MEM LIMIT 是容器允许使用的最大内存量。如果容器中的程序试图使用超过该数量的内存,则会被拒绝。
MEM % 是 LIMIT 的百分比 USAGE。