Re: Hardcore trashing without any swap

From: Ed Tomlinson
Date: Fri Jun 11 2010 - 09:47:32 EST


On Friday 11 June 2010 08:53:50 LÃszlà Monda wrote:
> On Fri, Jun 11, 2010 at 2:16 PM, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Fri, 11 Jun 2010 02:10:33 +0200
> > LÃszlà Monda <laci@xxxxxxxx> wrote:
> >
> >> Hi List,
> >>
> >> The problem I'm facing with is very simple, yet extremely irritating
> >> in nature. I have a laptop with 4G RAM and I don't use any swap.
> >> Whenever the RAM is full my system keeps trashing. This makes X and
> >> SSH completely unresponsive for about a hour then a bunch of processes
> >> gets killed and it's usable again.
> >>
> >> How is possible that my system is trashing even though I don't use any swap?
> >
> > Because you don't have any swap. Its having to dump stuff it doesn't want
> > to like bits of applications that it can retrieve back from disk.
>
> I can read what you wrote but cannot really understand it. Please
> tell me where my logic fails:
>
> No swap -> no dedicated space on disk to dump stuff -> no disk I/O
> should happen at all

No. This is not the case. If the vm needs memory it will discard pages from that are
backed by objects _not_ stored in swap - like executables. Only if there is nothing to
discard will it start killing... That being said you need to read up on what Alan's
suggestion below does - or add a swapfile (which works nearly as well as a swap partition
now).

> >> I'd expect the kernel to immediately kill the largest process without
> >> any trashing so I could continue my work right after the event. How
> >> is it possible to configure?

See above. Its not out of memory that it can discard without killing...

> > It isn't.
> >
> > However if you want to avoid overcommit and thrashing play with
> >
> > /proc/sys/vm/overcommit*

Ed
--
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/