Перестановка машины, несмотря на то, что памяти достаточно
Один из наших хостов Docker обменивается как ад без причины - по крайней мере, без видимой (это виртуальная машина Ubuntu 16.04LTS). Все контейнеры Docker в сумме используют только ~4 ГБ от общего объема ОЗУ 12 ГБ, но система использует 10 ГБ физической ОЗУ в дополнение к 6 ГБ подкачки.
Что может вызвать это? "Большие" являются одним из примеров sonatype/nexus3
и один случай gitlab/gitlab-ce
, При просмотре процессов в htop и сортировке по MEM%
не появляется ничего необычного, особенно ничего в диапазоне 14 ГБ, который где-то "используется".
xxx@docker-static:~$ free -m
total used free shared buff/cache available
Mem: 12015 10441 563 537 1010 670
Swap: 11670 6623 5047
xxx@docker-static:~$ docker stats --no-stream
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
18c956010080 0.81% 541.9MiB / 11.73GiB 4.51% 82.1GB / 3.8TB 149GB / 2.25GB 230
35ec9741be74 0.48% 1.887MiB / 11.73GiB 0.02% 22.1MB / 30.1MB 8.82GB / 5.57MB 8
e90b429c45f4 0.00% 68KiB / 11.73GiB 0.00% 10.5MB / 23kB 19.4MB / 11.2MB 1
091fd79b7b3c 19.17% 1.908GiB / 11.73GiB 16.26% 6.36GB / 526GB 985GB / 43.7GB 353
a1e0dd98679f 0.53% 924.2MiB / 11.73GiB 7.69% 83.9GB / 37.5GB 347GB / 9.98GB 182
1d5368d1ce24 0.25% 60.54MiB / 11.73GiB 0.50% 40.1GB / 112GB 102GB / 2.7GB 12
a0aba32126ec 0.00% 56KiB / 11.73GiB 0.00% 17.1MB / 9.48MB 6.25GB / 18.5MB 4
cc9065d65372 0.00% 256KiB / 11.73GiB 0.00% 1.12MB / 92.6kB 3.07GB / 12.3MB 2
92cb16f6bfc8 0.04% 6.031MiB / 11.73GiB 0.05% 13.1TB / 13.1TB 21.6GB / 1.81GB 4
1 ответ
Большинство инструментов состояния памяти включают только то, сколько физической памяти используется, чтобы своп оказался скрытым. Попробуй это:
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less
Также top -oRES
может быть более полезным. Так как хост может видеть все процессы даже в контейнерах, которые должны перечислять все. Вполне возможно, что ваша память не находится даже в одном из контейнеров.
https://www.cyberciti.biz/faq/linux-which-process-is-using-swap/