Paging-space problems
John D. McCalpin
mccalpin at perelandra.cms.udel.edu
Fri Nov 16 07:03:08 AEST 1990
>On 15 Nov 90 18:09:19 GMT,dennis at gpu.utcs.utoronto.ca (Dennis Ferguson) said:
Dennis> In article <1990Nov14.223820.29154 at arnor.uucp> rhoover at cirrus.watson.ibm.com (Roger Hoover) writes:
>In article <MARC.90Nov14153807 at marc.watson.ibm.com>, marc at arnor.uucp writes:
>|> malloc fails when the request causes the heap to exceed the
>|> ulimit for data. It has nothing to do with paging space.
>|>
Dennis> System V (or at least the release I was familiar with) doesn't
Dennis> do this. Instead it allocates page space dynamically, when
Dennis> you need to page something out. Running processes have no
Dennis> page space allocation unless they actually have pages out on
Dennis> the backing store. The good effects of this are that you can
Dennis> run System V systems with no page space at all if need be, and
Dennis> that the total in-use memory allowed is related to (physical
Dennis> memory + page space) rather than just page space.
Dennis> I think AIX exhibits the latter behaviour exactly.
This does not mesh with my experience with AIX. Under AIX 3.1 on my
RS/6000, I find that I cannot run jobs for which there is not enough
paging space available on the disk --- even though there is plenty of
memory to contain the job.
Examples:
(1) With 16 MB paging space, the O/S used 12 MB and reported 4 MB
free. With either 8 MB or 32 MB installed in the machine, I was
unable to run jobs with an *active working set* larger than 4 MB.
(2) With 36 MB paging space, the O/S used 12 MB and reported 24 MB
free. With 32 MB RAM, I was able to run jobs with *active working
sets* right up to the 24 MB paging space limit. A check with 'ps v'
showed that the jobs were completely in RAM.
So what do I mean by *active working set*? Well, I'm not sure how the
O/S figures it out, but the following program runs until the part of
the array that is *actually used* gets too big for the currently
available paging space:
parameter (n = 2**22)
doubleprecision a(n)
do length=65536,n,65536
do i=1,length
a(i) = float(i)
end do
print *,'Size (MB) :',float(length*8)/float(2**20)
end do
end
So somewhere this datum has to fit into theories on how AIX does
paging....
--
John D. McCalpin mccalpin at perelandra.cms.udel.edu
Assistant Professor mccalpin at vax1.udel.edu
College of Marine Studies, U. Del. J.MCCALPIN/OMNET
More information about the Comp.unix.aix
mailing list