[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Request for help with paging.



    Date: Tue, 14 Mar 89 20:08:41 EST
    From: whuts!davel@att.att.com

    We have written a system which appears to have a grave difficulty with
    thrashing in the paging system.  When freshly loaded, the system
    appears to spend perhaps 10% of its process time in the paging system,
    but after about four hours of continuous running, paging system time
    increases dramatically to 80% or so.

Sounds to me like the working set of your application increases over time.
Perhaps you have a data structure which references lots of objects which would
otherwise be garbage?

					  These results have been confirmed
    with both the TIME macro and the Metering system.  According to the
    metering system, there is no small subset of functions responsible for
    most of the paging.  So far, we have found that our efforts to increase
    locality of reference by using many areas have yielded minimal improve-
    ment.  

I am curious on why you think fragmenting memory with lots of areas will improve
locality of reference?
	   
	   We had expected the problem to be solved by the use of areas;
    we have a physical memory of 6MW, each area is smaller than 
    4MW or so for the first five hours of the run, and references between 
    areas should be uncommon.  For reference, we are using a 3675 with a swap
    space of 150MW, but using a smaller swap space (75MW) seems to have no
    effect on performance.
    1. What is the paging scheme used by the 3600-series (e.g.,
    least-recently-used), anyway? Software support doesn't know and has had
    some difficulties getting a hold of a developer who does.
    2. Has anyone had similar difficulties with paging?  How did you solve
    them?
    3. We are particularly alarmed by the fact that increasing the
    number of areas (and, we believe, increasing locality of reference)
    has had so little impact.  Does anyone know of a way to find out
    how much physical memory is devoted to each area?  Is there any way
    to measure locality of reference directly, such as counting the
    number of pointer references across area boundaries?

Have you tried using the metering interface to see what is causing the page
faults?  Have you tried documented functions to examine areas such as ROOM and
DESCRIBE-AREA?  You can discover things about cross-area references using
mouse-middle and SYS:%AREA-NUMBER.