Many thanks to:
Thomas Leitner, Nick Hill, Alan Lu, Hannes Visagie, rowan.bailey,
Corinne Haesaerts, Regis Carlier, Derk Tegeler, Rochelle Lauer, Joe
Fletcher, Udo Grabowski, Keith Strange and Oisin McGuinness
for their very rapid and helpful replies. (aplogies if I have
forgotten anyone)
The answer(s) are to use sysconfig or dxkerneltuner to modify the
relevant parameters and reboot.
To quote Nick Hill:
The default and maximum sizes for process limits either come
from kernel limits set at kernel build time or from boot time
values set in /etc/sysconfigtab. You can see what these values
are set to with the command:
sysconfig -q proc
Which will list the current values for the proc subsystem. The
ones you are interested in are
per_proc_data_size
max_per_proc_data_size
max_per_proc_address_space
per_proc_address_space
You will probably find that the 1G limit is set by the default
values of these.
To adjust these values you need to add a stanza to the
/etc/sysconfigtab file. I have the following in mine:
proc:
max-per-proc-address-space = 3221225472
per-proc-address-space = 3221225472
max-per-proc-data-size = 3221225472
per-proc-data-size = 262144000
max-per-proc-stack-size = 268435456
Which gives a 3G max.
These values are read at boot time.
Original question:
> Dear Managers,
>
> My 4-processor ES40 has 4GB of real memory (and some swap). I have a
> user who needs to run some vary large programs, but I can't work out
> how to let him use more than a gigabyte of the available total for a
> single process.
>
> Using the built-in limit in tcsh:
>
> beta % limit datasize unlimited
> beta % limit stacksize unlimited
> beta % limit memoryuse unlimited
> beta % limit vmemoryuse unlimited
>
> But then:
>
> beta % limit
> cputime unlimited
> filesize unlimited
> datasize 1048576 kbytes
> stacksize 32768 kbytes
> coredumpsize unlimited
> memoryuse 4097016 kbytes
> vmemoryuse 4194304 kbytes
> descriptors 4096
>
> or even:
>
> beta % ulimit -a
> time(seconds) unlimited
> file(blocks) unlimited
> data(kbytes) 1048576
> stack(kbytes) 32768
> memory(kbytes) 4097016
> coredump(blocks) unlimited
> nofiles(descriptors) 4096
> vmemory(kbytes) 4194304
>
> Presumably these are maximum limits set somewhere system-wide. Where
> are they set, and how could I change them?
>
> Many thanks,
>
> Andrew
>
> --
> Dr. Andrew Raine, Head of IT, MRC Dunn Human Nutrition Unit,
> Wellcome Trust/MRC Building, Hills Road, Cambridge, CB2 2XY, UK
> phone: +44 (0)1223 252830 fax: +44 (0)1223 252835
> web: www.mrc-dunn.cam.ac.uk email: Andrew.Raine_at_mrc-dunn.cam.ac.uk
>
Andrew
--
Dr. Andrew Raine, Head of IT, MRC Dunn Human Nutrition Unit,
Wellcome Trust/MRC Building, Hills Road, Cambridge, CB2 2XY, UK
phone: +44 (0)1223 252830 fax: +44 (0)1223 252835
web: www.mrc-dunn.cam.ac.uk email: Andrew.Raine_at_mrc-dunn.cam.ac.uk
Received on Fri Jul 20 2001 - 09:00:28 NZST