GNU/Linux >> Znalost Linux >  >> Linux

Server je přetížený, chová se jako nedostatek paměti, ale to není pravda

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

Linux
  1. Jak zkontrolovat zatížení serveru na serveru Windows

  2. Může být skript spustitelný, ale nečitelný?

  3. Tmux nevyužívá .tmux.conf?

  1. Linux – systém zamrzne, když mu dojde paměť?

  2. Konflikty Node.js:/sbin/node vs /usr/bin/node?

  3. free:příkaz nenalezen

  1. Linux jak kopírovat, ale nepřepisovat?

  2. php.ini se mění, ale není efektivní v ubuntu

  3. Linux zdarma ukazuje vysoké využití paměti, ale top ne