SUMMARY: Insufficient virtual memory to continue compilation

From: A. Mahendra Rajah <Mahendra.Rajah_at_URegina.CA>
Date: Wed, 11 Apr 2001 15:11:31 -0600 (CST)

   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

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:42 NZDT