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

Request for help with paging.



    Date: Thu, 16 Mar 89 13:35:07 EST
    From: MILLER@vax.cam.nbs.gov

	Date: Mon, 13-Mar-89 23:08:40-EST
	From: khs@PORSCHE.SCRC.Symbolics.COM
	Subject:  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.  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.
    
	It's usually the data structures that matter in paging, not the functions.
    
    I, too, am concerned about paging performance, although I dont know at this
    point how bad ours is; I've focused on other optimizing so far (stuff I've
    got a better chance of understanding)

    Are there any tools or ways of telling which data structures are causing the 
    problems?  Even more interesting; which *classes* of data structures
    (eg. which flavors)?  [Obviously this must be a bit sticky because any given
    `object' (from the user's perspective) might be composed of a flavor thingy,
    structures, lists, chars ... which are in different reqions, if not different
    areas, and any one of which might be the `real' culprit. ]

    A harebrained scheme would seem to be to put each interesting class of things
    in its own area and then follow  KHS's suggestion of page-tracing.  However,
    this seems like hacking up a lot of code just to measure a program whose
    paging performance is likely to be completely different from the one I'm 
    trying to optimze!

    Any clues out there?

Page-tracing (and the metering interface, which has the advantage of being
documented) both display the object on which the page fault occurred.  There are
powerful tools as part of both to filter information as you suggest.