Server monitoring Perl script might run out of memory on AIX systems
The Tivoli Storage Manager Server monitoring script, servermon.pl, might run into an out of memory or segmentation fault condition on AIX systems.
The 32 bit Perl interpreter, when compiled on AIX, gets only one memory segment for the heap which is 256MB of RAM.
Details: the following applies to the 32bit process model, a 32bit process can address a maximum of 2^32 = 4GB linear memory. This memory is divided up into 16 segments of 256MB each. Per default, the process stack (temporary local storage for process functions) and heap (dynamically allocated memory, also referred to as the data segment) share one segment, meaning they may grow to a maximum of 256MB, if not restricted via the user's ulimits, in the context of which the process is being
AIX is shipping Perl with this default, this might result in the out of memory condition as reported.
Before you make the following change to your Perl executable, make sure to take a backup copy and store it in a safe place. Then you can tweak your Perl executable with the following command (e.g. if you are running Perl 5.8.8):
ldedit -b maxdata:0x90000000/dsa /usr/opt/perl5/bin/perl5.8.8
This allows the Perl executable to use more than one segment.
Alternatively you can invoke the perl64 executable which does not have this limitation.
Translate this page: