Docker容器增加内存

时间:2018-10-25 12:08:46

标签: docker memory-management statistics docker-compose

我启动了多个docker容器并使用docker stats,我已经验证其中一个增加了ram内存的消耗量,因为它从启动到重新启动为止。

我的问题是,是否有任何方法可以验证这种消耗来自docker容器的位置。有一些方法可以检查容器内部的消耗情况,某种类似于docker stats样式,但可以用于容器内部。

感谢您的合作。

1 个答案:

答案 0 :(得分:1)

不确定是不是您要的内容,但这是一个示例:

(开始之前):

  1. 运行测试容器docker run --rm -it ubuntu
  2. 通过键入stressapt-get update来安装apt-get install stress
  3. 运行stress --vm-bytes $(awk '/MemAvailable/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1(它将开始消耗内存)

1。与top

如果您转到新的终端,则可以输入docker container exec -it <your container name> top,您将得到类似以下内容的信息:

(请注意,%MEM的{​​{1}}用法是PID 285

68.8%

2。与docker container exec -it dreamy_jang top top - 12:46:04 up 22 min, 0 users, load average: 1.48, 1.55, 1.12 Tasks: 4 total, 2 running, 2 sleeping, 0 stopped, 0 zombie %Cpu(s): 20.8 us, 0.8 sy, 0.0 ni, 78.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 6102828 total, 150212 free, 5396604 used, 556012 buff/cache KiB Swap: 1942896 total, 1937508 free, 5388 used. 455368 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 285 root 20 0 4209376 4.007g 212 R 100.0 68.8 6:56.90 stress 1 root 20 0 18500 3148 2916 S 0.0 0.1 0:00.09 bash 274 root 20 0 36596 3072 2640 R 0.0 0.1 0:00.21 top 284 root 20 0 8240 1192 1116 S 0.0 0.0 0:00.00 stress

同样,在新终端上,键入ps aux

(请注意,docker container exec -it <your container name> ps aux的{​​{1}}用法是%MEM

PID 285

我对此事68.8%的来历来自以下问题:How to fill 90% of the free memory?