HPlogo HP-UX Reference > M

maxdsiz(5)

Tunable Kernel Parameters
HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

maxdsiz, maxdsiz_64bit — maximum size (in bytes) of the data segment for any user process

VALUES

Default

32bit: 1 GB

64bit: 4 GB

Allowed values

32 bit minimum: 0x40000

32 bit maximum: 0xfffff000

64 bit minimum: 0x40000

64 bit maximum: 0x3ffbffff000

DESCRIPTION

User programs on HP-UX systems are composed of five discrete segments of virtual memory: text (or code), data, stack, shared, and I/O. Each segment occupies an architecturally defined range of the virtual address space that sets the upper limit to their size, but text, data and stack segments may have smaller maxima enforced by the maxtsiz, maxdsiz, and maxssiz tunables.

This tunable defines the maximum size of the static data storage segment for 32-bit and 64-bit processes. The data storage segment contains fixed data storage such as globals, arrays, static variables, local variables in main(), strings, and space allocated using sbrk() and malloc(). In addition, any files memory mapped as private and shared library per-invocation data also resides in the data segment.

Who is Expected to Change This Tunable?

Anyone.

Restrictions on Changing

Changes to this tunable take effect only for processes started after the modification. In addition, a process which modifies it's rlimit for the data segment propagates the modified limit to all child processes, thereby exempting them from any future modification of maxdsiz.

When Should the Value of This Tunable Be Raised?

This tunable should be raised if user processes are receiving the ENOMEM error message:

exec(2): data exceeds maxdsiz

or

exec(2): data exceeds maxdsiz_64bit.

This may or may not cause a process failure depending on the program code.

What Are the Side Effects of Raising the Value?

Raising this tunable by definition allows larger data segments for every process. The maxdsiz and maxssiz tunables limit the amount of swap space that can be reserved or used by each process, but using more virtual address space does not translate directly into using more physical address space because virtual pages can be swapped out.

Note that if swap space on the machine is near capacity, raising this tunable increases the amount of reservable swap per process. This could exhaust the swap space on the system by allowing a process with a memory leak or a malicious program that uses huge amounts of memory to reserve too much swap space.

When Should the Value of This Tunable Be Lowered?

This tunable should be lowered if swap space is at a premium on the machine and programs that are using too much swap space are affecting the execution of other critical user processes.

What Are the Side Effects of Lowering the Value?

If swap space on the machine is near capacity, lowering this tunable will limit the amount of swap reserved for each process and will cause the processes that consume large amounts of swap space to receive the ENOMEM error.

What Other Tunable Values Should Be Changed at the Same Time?

The maxssiz tunable should be considered because it too limits swap usage by process stack segment.

WARNINGS

All HP-UX kernel tunable parameters are release specific. This parameter may be removed or have its meaning changed in future releases of HP-UX.

Installation of optional kernel software, from HP or other vendors, may cause changes to tunable parameter values. After installation, some tunable parameters may no longer be at the default or recommended values. For information about the effects of installation on tunable values, consult the documentation for the kernel software being installed. For information about optional kernel software that was factory installed on your system, see HP-UX Release Notes at http://docs.hp.com.

AUTHOR

maxdsiz was developed by HP.

SEE ALSO

getrlimit(2), setrlimit(2), maxtsiz(5), maxssiz(5).