*BSD News Article 23303


Return to BSD News archive

Newsgroups: comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!news.uoknor.edu!ns1.nodak.edu!plains.NoDak.edu!tinguely
From: tinguely@plains.NoDak.edu (Mark Tinguely)
Subject: Re: Swap staying full?
Sender: usenet@ns1.nodak.edu (Usenet login)
Message-ID: <CFz3ny.KL6@ns1.nodak.edu>
Date: Thu, 4 Nov 1993 15:14:22 GMT
References: <2b9g97$93g@terminator.rs.itd.umich.edu>
Nntp-Posting-Host: plains.nodak.edu
Organization: North Dakota State University
Lines: 34

In article <2b9g97$93g@terminator.rs.itd.umich.edu> altitude@css.itd.umich.edu (Alex Tang) writes:
>Hi all.  I'm wondering if i should be worried about this.  
>I'm running NetBSD-0.8 on a machine with 5 meg ram.  When I do large  builds,
>my swap (10 megs) gets pretty full.  Unfortunately, if, when the build is
>finished, the swap is 87% full, it stays 87% full, and if i try to do another
>build, it gets to 100% full.  and then it hangs.  

More information is required...what else is running. The current VM does not
push dirty non-text pages onto the swap backstore unless new physical pages
are needed and all physical pages are being used. The pages from the other
running programs are one-by-one pushed out to make room for the new pages.

If a page that has been put on the swap backstore is placed back in physical
memory, the backstore copy is not removed. Lately, I have been thinking if this
is a good thing or not. The way I reason if the swap store size is less than
physical memory (a stupid thing to do, but this was the default in 386bsd
installation procedure), then this is a bad thing because the page may not
be the one to be squeezed back to swap backstore before a page that has never
been put to backstore yet causing a pre-mature swap depletion hang. If the
swap backstore size is greater than physical memory, this does not matter,
and the cost of the making and breaking the pager values is a waste. but I
digress.

when the program end, the pages associated with the program on the backstore
will be removed from the backstore. the remaining entries in the swap should
be associated with the applications still running.

To make a short story long ... as I said in the first line, check what else
is running. There are some people looking in improving the VM for *BSD. But
in the meantime use the following work arounds. If you are running large
applications (such as X), then try to kill them before the large builds, or
buy more ram/add more swap.

--mark.