I keep a Ubuntu 7.04 VM running at Linode.com to host a few web sites, e-mail lists, etc. It was working flawlessly for a long time. I don't patch it or really pay attention to it.
Recently (past few months) and with increasing frequency, the box runs out of memory and I have to reboot it. Its configured with 350MB real memory, plus 64MB swap. It runs Apache, Mysql, Postfix, and mailman.
The out-of-memory symptoms are obvious and I see these in the kernel.log:
Jul 21 10:16:42 grendel kernel: Out of memory: kill process 30364 (apache2) score 11205 or a child Jul 21 10:16:42 grendel kernel: Killed process 30364 (apache2) Jul 21 10:16:42 grendel kernel: apache2 invoked oom-killer: gfp_mask=0xa01d2, order=0, oomkilladj=0
Is there a silver-bullet method to determine what's going on here? I'm watching 'top' and while I see the available real memory decline over time I don't see an obvious culprit.