Есть сервер с 1Гб памяти, и 512Мб свопом. Периодически java сервер убивается OOM Killer. Прямо перед этим событием atop показывает следующую картину:
MEM | tot 987.5M | free 54.7M | cache 87.0M | dirty 0.7M | buff 10.4M | slab 39.4M | | |
SWP | tot 512.0M | free 12.3M | | | | | vmcom 1.4G | vmlim 1.0G |
PID MINFLT MAJFLT VSTEXT VSIZE RSIZE VGROW RGROW RUID EUID MEM CMD
28966 1847 840 1K 938.6M 636.9M 1024K 8772K webserve webserve 64% java
31968 1573 18 17358K 7.9G 51036K 0K 460K mongodb mongodb 5% mongod
5985 15357 5 5243K 50360K 30028K 1156K 740K postgres postgres 3% postgres
5984 2726 22 5243K 49072K 29432K 0K 192K postgres postgres 3% postgres
5824 0 0 5243K 49460K 29200K 0K 0K postgres postgres 3% postgres
5983 7872 0 5243K 49072K 28968K -1348K -784K postgres postgres 3% postgres
6140 5092 0 5243K 49072K 27864K 0K 0K postgres postgres 3% postgres
3469 0 0 5243K 47036K 9092K 0K 0K postgres postgres 1% postgres
3468 0 0 5243K 47036K 7196K 0K 0K postgres postgres 1% postgres
Я знаю какие процессы доедают оставшуюся память, но интересует почему занято так много памяти и свопа в момент перед падением. Хотя если просуммировать колонку RSIZE - не получится 1.5 гигабайта.