Контейнерная память продолжает расти, а приложение и верхняя часть отчета стабильной памяти - PullRequest
0 голосов
/ 27 января 2020

У меня nodejs приложение, работающее внутри контейнера docker в AWS ECS. Сообщаемая память продолжает расти, как утечка памяти, с трафиком c. Чем больше трафик c, тем быстрее он растет. Тем не менее, после проверки памяти с помощью top и free -m внутри экземпляра, память (rss) стабильна и намного ниже docker stats.

Заходя внутрь экземпляра в bash, вот память из cgroup: rss + cache + swap очень близок к памяти из top, а также из os.memoryUsage().rss в nodejs, но слишком далеко от memory.usage_in_bytes. Как это возможно?

root@ip-10-1-10-197:/app# cat /sys/fs/cgroup/memory/memory.kmem.usage_in_bytes 
192913408
root@ip-10-1-10-197:/app# cat /sys/fs/cgroup/memory/memory.usage_in_bytes 
280588288
root@ip-10-1-10-197:/app# cat /sys/fs/cgroup/memory/memory.stat           
cache 8192
rss 86421504
rss_huge 0
shmem 0
mapped_file 0
dirty 0
writeback 0
swap 0
pgpgin 199618711
pgpgout 199597610
pgfault 358572897
pgmajfault 0
inactive_anon 0
active_anon 86396928
inactive_file 4096
active_file 4096
unevictable 0
hierarchical_memory_limit 536870912
hierarchical_memsw_limit 9223372036854771712
total_cache 8192
total_rss 86421504
total_rss_huge 0
total_shmem 0
total_mapped_file 0
total_dirty 0
total_writeback 0
total_swap 0
total_pgpgin 199618711
total_pgpgout 199597610
total_pgfault 358572897
total_pgmajfault 0
total_inactive_anon 0
total_active_anon 86396928
total_inactive_file 4096
total_active_file 4096
total_unevictable 0

1 Ответ

0 голосов
/ 27 января 2020

Использование памяти ядром + rss очень близко к memory.usage, и использование памяти ядра продолжает расти

Если я уроню кернальный кэш на echo 3 | sudo tee /proc/sys/vm/drop_caches, память сразу же уменьшится.

Таким образом, кэш памяти ядра не учитывается в кэше статистики памяти cgroup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...