Re: Misleading OOM messages

From: Pavel Machek
Date: Fri May 15 2009 - 09:06:20 EST


Hi!

> > > > - printk(KERN_ERR "%s: kill process %d (%s) score %li or a child\n",
> > > > + printk(KERN_ERR "No available memory %s: "
> > > > + "kill process %d (%s) score %li or a child\n",
> > > > message, task_pid_nr(p), p->comm, points);
> > >
> > > "No available memory" still suggests that plugging in more memory is the
> > > right solution.
> >
> > And... on correctly working kernel, it is, right?
> >
> > If you have no swap space and too many applications, you plug more
> > memory. (Or invent some swap).
> >
> > If you misconfigured cgroups, you give more memory to them.
> >
> > If your applications mlocked 900MB and you have 1GB, you need to plug
> > more memory.
> >
> > So... when is plugging more memory _not_ valid answer? AFAICT it is
> > when it is some kernel problem, resulting in memory not being
> > reclaimed fast enough....
>
> I recently had a problem (~2.6.27) where the user did an mlock() of ~95%
> of memory then started doing ftp tests. The machine also had 64k base
> pages. We let you dirty ~30% of memory, so they were able to dirty 6x
> more memory than what we even had to work with. We OOMed pretty fast
> every time.

Ok, so kernel should be fixed to make limits 30% of non-mlocked
memory.

> This is actually a pretty common scenario for the HPC and database
> folks. They go sucking up and locking as much memory as they can get
> their hands on. Adding memory never helps them because they'll use up
> whatever is there.

Well, but it is uncommon everywhere else. If you have desktop system,
job size is pretty much constant. If you have too little memory, you
OOM.

Even with mlock, if mlock size is constant (like 1GB), adding memory
will help.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/