Linux oom killer - найти фрагментированный процесс
В настоящее время у меня возникают серьезные проблемы с OOM после обновления с Debian 7 до Debian 8 на arm (cubietruck). Я уже много читал о механизме и причинах, но я все еще скучаю по ответу
Как найти фрагментацию памяти запущенного процесса?
У меня есть cat-ed /proc/buddyinfo и я вижу повышение фрагментации до того момента, когда Oom убивает процесс. Но это только для всей системы. Есть ли возможность получать информацию о buddyinfo по отдельным процессам?
PS: я предполагаю, что какой-то процесс создает (посредством kmalloc?) Фрагментацию или из-за его поведения во время выполнения запускает действия в ядре, которые фрагментируют память (буферы, управляющие структуры или что-то еще...)
Система cubietruck имеет 2 ГБ оперативной памяти и 4 ГБ подкачки.
2017-03-16 09:06:17 Ядро cubietruck:[2114250.857191] Максимум свободного места:245388 КБ, минимум:512 КБ, минимум:2016 КБ, максимум:3520 КБ active_anon:200864kB inactive_anon:230728kB active_file:331288kB inactive_file:294800kB unevictab le:0kB writepending:0Kb Настоящее:1307648kB управляемые:1307648kB mlocked:0Kb slab_reclaimable: 0Kb slab_unreclaimable: 0Kb kernel_stack: 0Kb pagetables:2456kB подпрыгивать: 0Kb free_pcp:92Kb local_pcp: 0Kb free_cma: 0Kb lowmem_reserve[]: 0 0 0