AWS ECS: OOM killer срабатывает на кэш диска?
hi,
картина в логах:
Aug 27 11:49:18 localhost kernel: [7392268.641315] Task in /ecs/767406ff-8f62-4196-8d21-e5fcb5db0dde/521acdbbfdd0b93ae18d117daf1ad0995cb292064c8b5fc53505dc70b8acdea2 killed as a result of limit of /ecs/767406ff-8f62-4196-8d21-e5fcb5db0dde/521acdbbfdd0b93ae18d117daf1ad0995cb292064c8b5fc53505dc70b8acdea2
Aug 27 11:49:18 localhost kernel: [7392268.641323] memory: usage 2798632kB, limit 2798592kB, failcnt 26111
Aug 27 11:49:18 localhost kernel: [7392268.641325] memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0
Aug 27 11:49:18 localhost kernel: [7392268.641328] kmem: usage 84740kB, limit 9007199254740988kB, failcnt 0
Aug 27 11:49:18 localhost kernel: [7392268.641329] Memory cgroup stats for /ecs/767406ff-8f62-4196-8d21-e5fcb5db0dde/521acdbbfdd0b93ae18d117daf1ad0995cb292064c8b5fc53505dc70b8acdea2: cache:2706868KB rss:7024KB rss_huge:0KB mapped_file:0KB dirty:2643768KB writeback:0KB inactive_anon:0KB active_anon:7024KB inactive_file:1980672KB active_file:726196KB unevictable:0KB
Aug 27 11:49:18 localhost kernel: [7392268.641344] [ pid ] uid tgid total_vm rss nr_ptes nr_pmds swapents oom_score_adj name
Aug 27 11:49:18 localhost kernel: [7392268.641669] [ 3750] 0 3750 289 2 4 2 0 0 docker-init
Aug 27 11:49:18 localhost kernel: [7392268.641676] [ 4144] 0 4144 420789 4642 54 5 0 0 nessus-plugin
Aug 27 11:49:18 localhost kernel: [7392268.641764] Memory cgroup out of memory: Kill process 4144 (nessus-plugin) score 6 or sacrifice child
Aug 27 11:49:18 localhost kernel: [7392268.650096] Killed process 4144 (nessus-plugin) total-vm:1683156kB, anon-rss:5916kB, file-rss:12652kB
Мы правильно читаем, что это именно кэш диска и он переполнился? Главное приложение самописное, ничего крупно не мапит, но активно читает и пишет. Подозрение усиливается за счёт похожего плача: https://github.com/moby/moby/issues/21759
Поведение, мягко говоря, необычное - и неудобное тем, что непонятно, как управлять системой в подобных условиях.
Можно ли это лечить средствами Linux, или только уходить от ECS?
(И какой смысл для Amazon делать 12309-в-квадрате?)