Re: Memory overcommit

From: KAMEZAWA Hiroyuki
Date: Mon Oct 26 2009 - 23:25:00 EST


On Mon, 26 Oct 2009 17:16:14 +0100
Vedran FuraÄ <vedran.furac@xxxxxxxxx> wrote:
> > - Could you show me /var/log/dmesg and /var/log/messages at OOM ?
>
> It was catastrophe. :) X crashed (or killed) with all the programs, but
> my little program was alive for 20 minutes (see timestamps). And for
> that time computer was completely unusable. Couldn't even get the
> console via ssh. Rally embarrassing for a modern OS to get destroyed by
> a 5 lines of C run as an ordinary user. Luckily screen was still alive,
> oomk usually kills it also. See for yourself:
>
> dmesg: http://pastebin.com/f3f83738a
> messages: http://pastebin.com/f2091110a
>
> (CCing to lklm again... I just want people to see the logs.)
>
Thank you for reporting and your patience. It seems something strange
that your KDE programs are killed. I agree.

I attached a scirpt for checking oom_score of all exisiting process.
(oom_score is a value used for selecting "bad" processs.")
please run if you have time.

This is a result of my own desktop(on virtual machine.)
In this environ (Total memory is 1.6GBytes), mmap(1G) program is running.

%check_badness.pl | sort -n | tail
--
89924 3938 mixer_applet2
90210 3942 tomboy
94753 3936 clock-applet
101994 3919 pulseaudio
113525 4028 gnome-terminal
127340 1 init
128177 3871 nautilus
151003 11515 bash
256944 11653 mmap
425561 3829 gnome-session
--
Sigh, gnome-session has twice value of mmap(1G).
Of course, gnome-session only uses 6M bytes of anon.
I wonder this is because gnome-session has many children..but need to
dig more. Does anyone has idea ?
(CCed kosaki)

Thanks,
-Kame




#!/usr/bin/perl

open(LINE, "ps -A -o pid,comm | grep -v PID|") || die "can't ps";

while (<LINE>) {
/^\s*([0-9]+)\s+(.*)$/;
$PID=$1;
$COMM=$2;
open(SCORE, "/proc/$PID/oom_score") || next;
$oom_score = <SCORE>;
chomp($oom_score);
close(SCORE);
print $oom_score."\t".$PID . "\t",$COMM."\n";
}
close(LINE);