Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!usc!cs.utexas.edu!csd4.milw.wisc.edu!lll-winken!uunet!mcvax!hp4nl!philapd!ssp2!pb From: pb@idca.tds.PHILIPS.nl (Peter Brouwer) Newsgroups: comp.unix.wizards Subject: Re: Sizing RAM usage in a SUN Keywords: sun,4/260,memory,RAM,ps,pstat,shared,library Message-ID: <454@ssp2.idca.tds.philips.nl> Date: 29 Jun 89 09:04:56 GMT References: <210@melpar.UUCP> Organization: Philips Telecommunication and Data Systems, The Netherlands Lines: 61 In article <210@melpar.UUCP> jim@melpar.UUCP (J. Hopkins) writes: > > > I am trying to calculate the amount of RAM taken up by application >tasks in a SUN 4/260. My local SUN rep. told me to use pstat or ps. >Pstat reports sizes in "pages" which I believe are 8k bytes each. Depends of the system, see the ctob macro in /usr/include/sysmacros on how to convert from clicks ( pages ) to bytes. >There are two "size" fields one is SZ which is the executable image and >the other is the RSS which is the "real" size in RAM. > > Questions: > 1) Is there a better way to evaluate size than pstat and ps? Write your own tool: If you have the source of ps available than you can use that as an example. You have to read the region structures to get the size of each item ( text, data, stack and so on ) . There may be more than one region for each for each type. The type can be found in p_type of the pregion of the process and in the region structure the field r_pgsz contains the size of the type and r_nvalid contains the number of pages currently in memory. Output looks like Kernel data usage for each process + system stack (= USIZE) = 8 k name text data stack shtext shdata shmem dmmem vpix sched 0 0| 0 0| 0 0| 0 0| 0 0| 0 0| 0 0 init 36 36| 16 16| 8 4| 0 0| 0 0| 0 0| 0 0 vhand 0 0| 0 0| 0 0| 0 0| 0 0| 0 0| 0 0 bdflush 0 0| 0 0| 0 0| 0 0| 0 0| 0 0| 0 0 getty 16 12| 8 8| 8 4| 20 20| 4 4| 0 0| 0 0 uugetty 28 28| 20 16| 8 4| 0 0| 0 0| 0 0| 0 0 ksh 104 104| 28 28| 8 4| 0 0| 0 0| 0 0| 0 0 cron 24 24| 20 20| 8 4| 20 20| 4 4| 0 0| 0 0 uugetty 28 28| 20 16| 8 4| 0 0| 0 0| 0 0| 0 0 pp 16 12| 36 36| 8 4| 20 20| 4 4| 0 0| 0 0 physmem 3712 Kbytes 928 pages freemem 1292 Kbytes 323 pages For comercial reasons I cannot post the source. > 3) Where are shared library sizes accounted for? > Are they in each entry of a pstat? > (i.e. I'm adding them in multiple times) Text of shared libraries are to be accounted for once and its data for each user. > 4) How can I get an accurate RAM usage for each task? I use the above described tool. > 6) If there is enough physical RAM to hold the tasks will there > still be swapping? Depends on the low water mark of the vhand process, see GPGSLO in tuneable.h -- # Peter Brouwer, ## # Philips TDS, Dept SSP-V2 ## voice +31 55 432523 # P.O. Box 245 ## UUCP address ..!mcvax!philapd!pb # 7300 AE Apeldoorn, The Netherlands ## Internet pb@idca.tds.philips.nl