Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Fragmented AIX Shared Library Cache?

Status
Not open for further replies.

zipididooda

Technical User
Feb 23, 2007
1
US
An application vendor supplied one of my customers the following explanation of why their application crashed. To me this sounds like a load of fesces, but maybe I can stand corrected. Anyone ever heard of something like this?


The best explanation for the 2nd login problem is that the application could not load Shared Libraries. The Shared Libraries that could not be loaded prevented logins from succeeding. The Shared Libraries couldn't be loaded because an AIX Resource became exhausted. We think this occurred because AIX was configured so that shared libraries were loaded when needed and then unloaded when they were not needed. The swapping of Shared Libraries fragmented the Shared Library Cache. Eventually there wasn't enough memory to load shared libraries.

This issue can be addressed through an AIX parameter change that prevents Shared Libraries from being unloaded. This change has been introduced into the AIX production environment.


The parameter being discussed is the IGNOREUNLOAD environment variable.
 
the ignoreunload options causes the app not to unload the libraries, so no memory fragmentation occurs.Worst case scenario, you have a performance penalty that occurs due to memory fragementation.If they claim there is no more memory left to load the libs, trust me, you will be having lots more problems that time ,and the app will be the least of your problems ' errors like unable to fork , .... ) :).I'm guessing they're full of ... :)

rgds,

R.
 
Or they're trying to cloak some serious memory leak in the app?


HTH,

p5wizard
 
Yes, you can have fragmentation of the shared pool which includes the library cache. If the pool is fragmented and your application has to load a large object into the pool, it will flush object that are not in use (LRU). This will free memory and your application will load if it can find a large contiguous block of memory.

Paging and segmentation should reduce fragmentation.
 
That's what i found surfing the net on that


Code:
Specifying the IGNOREUNLOAD option prevents the application from unloading libraries. This might prevent memory fragmentation and eliminate the overhead incurred when libraries are repeatedly loaded and unloaded. If you do not specify the IGNOREUNLOAD option, you might end up with two data instances of a module if the module was loaded at application load time and the module was then requested to be dynamically loaded and unloaded multiple times.

I will have to agree with the guys above! if it was something normal, then the application should work with normal AIX setting!

If you want to make sure that the application is not having memory leak, then locate the PID of the application process, then use the following:

svmon -P PID

try to run the above command serveral times while watching the work shared library. If it was continually growing then you know that its the application leaking the shared library memory!

If not then, if i were you, i will apply the advice they mentioned and monitor the system afterward! if every thing was ok then fine!

But most likely it's the application problem not AIX!

Regards,
Khalid
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top