Je zde spousta volné paměti, ale tyto zóny jsou zcela fragmentované:
Node 0 Normal: 1648026*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 6592104kB
Node 1 Normal: 8390977*4kB 1181188*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB
Zbývá jen velmi málo stránek s nenulovým pořadím, v jedné zóně nezbývá vůbec žádná.
Nemohu nic zaručit, ale možná budete chtít zkusit vypnout ksmd a znovu zkompaktovat paměť. Compaction je volán automaticky pouze při alokacích stránek vyššího řádu a nikdy nevolá oom-killer, takže předpokládám, že se systém pokusil alokovat paměť z objednávek 2 nebo 3 a zasekl se.
Chcete-li komprimovat paměť, spusťte echo 1 >/proc/sys/vm/compact_memory
V této otázce je toho jen tolik, ale mám podezření, že ksmd
způsobuje fragmentaci skenováním stránek duplikovaných v obou virtuálních počítačích a jejich výměnou všude kolem.
@Matthewova odpověď by měla být označena jako řešení tohoto problému. /proc/buddyinfo
jasně ukazuje fragmentaci (kvůli ksmd nebo jinému chování). Zhutnění paměti je platným řešením.
Právě jsme narazili na stejný problém na našem serveru:
# cat /proc/buddyinfo
Node 0, zone DMA 1 0 1 0 0 1 0 0 0 1 3
Node 0, zone DMA32 4941 14025 10661 1462 1715 154 1 0 0 0 0
Node 0, zone Normal 420283 217678 3852 3 1 0 1 1 1 0 0
Node 1, zone Normal 1178429 294431 21420 340 7 2 1 2 0 0 0
To jasně ukazuje fragmentaci, protože většina paměti je fragmentována do mnoha malých bloků paměti (velké číslo vlevo, nula vpravo).
Nyní zhutnění řeší toto:
# echo 1 >/proc/sys/vm/compact_memory
# cat /proc/buddyinfo
Node 0, zone DMA 1 0 1 0 0 1 0 0 0 1 3
Node 0, zone DMA32 485 1746 8588 3311 2076 505 98 19 3 0 0
Node 0, zone Normal 83764 22474 8597 3130 1971 1421 1090 808 556 358 95
Node 1, zone Normal 51928 36053 36093 29024 21498 13148 5719 1405 151 8 0