I asked the following in this list:
.............................................................
A user here is attempting to compile some programs but always
end up with the error message
Insufficient virtual memory to continue compilation.
The machine is an ES40 with 1G memory running Tru64 v5.1.
What parameters affect virutal memory allocation to processes?
What could I change in sysconfig to allow sufficient virtual
memory for his compilation?
.............................................................
I received several replies with useful hints. My sincere
thanks go to
Aaron Siebert <aaron.siebert_at_nagrastar.com>
John P Speno <speno_at_isc.upenn.edu>
Elizabeth Harvey-Forsythe <ehf_at_media.mit.edu>
"David J. DeWolfe" <sxdjd_at_java.sois.alaska.edu>
"North, Walter" <wnorth_at_state.mt.us>
"Thomas M. Payerle" <payerle_at_physics.umd.edu>
alan_at_nabeth.cxo.dec.com
Nikola Milutinovic <Nikola.Milutinovic_at_ev.co.yu>
Udo de Boer <Udo.de.boer_at_ubero.nl>
"Rao, Ram" <Ram.Rao_at_COMPAQ.com>
and "McCulloch, Alan" <alan.mcculloch_at_agresearch.co.nz>
I have included their replies at the end. What worked for this
user was Elizabeth's and Nikola's suggestion of turning off
optimization.
ulimit -v revealed 4G virtual memory!
The swapfile on the system is 3G of which only 5% was reserved
for use. So, I haven't tried adding another swapfile.
Thanks everybody.
-- mahendra
All the replies I got:
.............................................................
From: Aaron Siebert <aaron.siebert_at_nagrastar.com>
We have had similiar issues in our environment. We used the
following settings to solve the problems.
per-proc-data-size = 10000000000
max-per-proc-data-size = 10000000000
max-per-proc-address-space = 10000000000
per-proc-address-space = 10000000000
.............................................................
From: John P Speno <speno_at_isc.upenn.edu>
You need to get an updated C compiler.
You can try looking in the 5.1 patch kits, or get the DTK
version from:
http://www.tru64unix.compaq.com/dtk/
.............................................................
From: Elizabeth Harvey-Forsythe <ehf_at_media.mit.edu>
Turning off optimization will probably resolve the error.
ALso you can increase the available meory with the ulimit
command.
.............................................................
From: "David J. DeWolfe" <sxdjd_at_java.sois.alaska.edu>
Obviously a Banner shop, so here's a compile of fgpbody that
I did on a 2100 with 2G of memory using Oracle 7.3.4:
proc iname=`basename fgpbody .o`.pc ireclen=132 oreclen=132 lines=y
select_error=no hold_cursor=no release_cursor=no maxopencursors=255
maxliteral=160 ltype=none include=/t05/BANSEED/general/c/
include=/t05/BANSEED/general/c/ dbms=v6 sqlcheck=limited
Pro*C/C++: Release 2.2.4.0.0 - Production on Tue Feb 15 18:16:52 2000
Copyright (c) Oracle Corporation 1979, 1996. All rights reserved.
System default option values taken from:
/t02/home/oracle/product/rel73440/precomp/admin/pcscfg.h
cc -migrate -I. -I/t05/BANSEED/general/c -I/t05/BANSEED/general/c -O -std1
-s -DOPSYS_UNIX -DPLAT_ALPHA -c `basename fgpbody .o`.c
mv `basename fgpbody .o`.o /t05/BANSEED/general/exe/`basename fgpbody .o`.o
rm -f fgpbody.c
chmod 644 /t05/BANSEED/general/exe/`basename fgpbody .o`.o
Don't know if it will help but thought I'd send it along. I
notice that we're using the "-migrate" option and you are
not. It is in the makefile that we get from SCT.
.............................................................
From: "North, Walter" <wnorth_at_state.mt.us>
I had this problem compiling openssl. I took 4.0G to patch
kit 2 and the problem went away.
.............................................................
From: "Thomas M. Payerle" <payerle_at_physics.umd.edu>
You may wish to look at limits imposed by the ulimit
command. (In csh and derivatives, limit builtin command).
In particular, see if ulimit -dvm may give a clue.
.............................................................
From: alan_at_nabeth.cxo.dec.com
The most common two limits on virtual memory are:
o Insufficient per-process virtual memory limits.
o Insufficient page/swap space.
Per-process virtual memory limits come in two values;
a default and a maximum. V4 had three pairs of limits;
stack, data and address space. I think V5 only has stack
and data. These limits will be documented in the sys_attrs_proc
manual page. Look for names like max-per-proc... and per-proc...
Most shells impose an initial limit of the default value (per-
proc-...), but have built-in commands that raising the value
to the maximum. Have the user consult the manual page for
whatever he is using.
If raising the value to the maximum doesn't solve the problem,
then look at page/swap space. Nearly every page of virtual
memory that gets created needs a page of page/swap space
reserved for it. There is a reservation mode that allows
not doing this, but it has its own risks. The two reservation
modes are documented. Look for words like "eager" and "lazy".
If there is sufficient page/swap space for maximum virtual
memory desired, then you may need to raise the limit.
Thank you Alan for the explanation. I was not aware of
sys_attrs_proc manual page. (AMR)
.............................................................
From: Nikola Milutinovic <Nikola.Milutinovic_at_ev.co.yu>
Try with/without optimization - it was known to cause this,
which is a bug, BTW.
.............................................................
From: Udo de Boer <Udo.de.boer_at_ubero.nl>
Take a look at the process limits with "ulimit".
.............................................................
From: "Rao, Ram" <Ram.Rao_at_COMPAQ.com>
Add more swap space. That will fix the problem.
.............................................................
From: "McCulloch, Alan" <alan.mcculloch_at_agresearch.co.nz>
have you tried "unlimit" (C-shell only - see ulimit for
other shells like Bourne) before running the compilation ?
If that doesn't work then check out sysconfigdb
.............................................................
Received on Wed Apr 11 2001 - 21:15:09 NZST