next up previous contents index
Next: Code to Calculate Minium Up: FIT2D as a Sub-Process Previous: Using FIT2D with Shared


Limitations With Using Shared Memory

For reasons unknown to the author, Linux systems restrict, by default, the maximum size of shared memory segments to much smaller values than normal physical or virtual memory limits. e.g. A Suse 2.4.20 Linux system restricts the maximum size of a shared memory segment to 32 MBytes (the on-line documentation says the limit is 4 MBytes !)

This limit must be changed if large arrays are to used in shared memory segments.

(There are other system limits such as the total number of shared memory segments allowed, but these should normally not be a problem.)

On Linux systems /sbin/sysctl may be used to change this limit at run-time (there are doubtless other ways of doing this). You appear to need ``root'' privileges to be able to do this.

e.g.:

/sbin/sysctl -w kernel.shmmax=256000000

should set SHMMAX to be 256000000 bytes.

/sbin/sysctl -a

can be used to obtain a list of all the system limit variables and values. (See man sysctl for further information.)


next up previous contents index
Next: Code to Calculate Minium Up: FIT2D as a Sub-Process Previous: Using FIT2D with Shared
Andrew Hammersley
2004-01-09