Контейнер Docker увеличивает баран - PullRequest
0 голосов
/ 25 октября 2018

Я запустил несколько док-контейнеров и, используя статистику докеров, я убедился, что один из них увеличивает потребление оперативной памяти с момента запуска до перезапуска.

Мой вопрос: есть ли способпроверьте, откуда такое потребление поступает из док-контейнера.Есть какой-то способ проверить потребление внутри контейнера, что-то в стиле статистики докера, но внутри контейнера.

Спасибо за сотрудничество.

1 Ответ

0 голосов
/ 25 октября 2018

Не уверен, что это то, о чем вы просите, но вот пример:

(перед началом):

  1. Запустите тестовый контейнер docker run --rm -it ubuntu
  2. Установите stress, набрав apt-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 использование PID 285is 68.8%)

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

2.с ps aux

Опять же, из нового терминала вы набираете docker container exec -it <your container name> ps aux

(обратите внимание, что %MEM использование PID 285 равно 68.8%)

docker container exec -it dreamy_jang ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  18500  3148 pts/0    Ss   12:25   0:00 /bin/bash
root       284  0.0  0.0   8240  1192 pts/0    S+   12:39   0:00 stress --vm-byt
root       285 99.8 68.8 4209376 4201300 pts/0 R+   12:39   8:53 stress --vm-byt
root       286  0.0  0.0  34400  2904 pts/1    Rs+  12:48   0:00 ps aux

Мой источник для этого stress из этого вопроса: Как заполнить 90% свободной памяти?

...