- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: Shared memory usage for Java native libraries
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-10-2003 05:16 PM
тАО02-10-2003 05:16 PM
My question is: does it make sense to try and start multiple instances of the application on the same machine and find a way of sharing the load between them?
Why I ask this question: I have heard that all 32-bit libraries share the same memory area - is that true? If the memory area is shared then I don't gain anything by starting multiple processes, the many library instances will just share the same area that was previously used by a single instance. If on the other hand the memory is not shared and the library gets a separate memory area in each process then it's worth the trouble of distributing the load.
Thank you,
Dino
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-10-2003 05:26 PM
тАО02-10-2003 05:26 PM
SolutionIn a nutshell, If they share the same libs, then they MUST occupy the same memory area.
If they didn't then you *could* run them in seperate memory windows. Else you're constricted to a 1.75Gb shared area.
See the whitepaper on this in
/usr/share/doc/mem_wndws.txt
And do mans on
getmemwindow
setmemwindow
for detailed explanations on how/why to use memory windows on 32-bit apps.
HTH,
Jeff
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-10-2003 05:32 PM
тАО02-10-2003 05:32 PM
Re: Shared memory usage for Java native libraries
By default, you will get a maximum of 1.75 GB of shared memory. Even less in case the allocation is fragmented.
You are right. All 32-bit processes share the same area.
However, you can make use of memory windows and create seperate pools of shared memory. If your application does not use IPC_GLOBAL while creating the shared memory window, you will not be able to access the shared objects of other processes that are using a different memory window.
/usr/share/doc/memwindows.txt has more information.
-Sri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-10-2003 06:10 PM
тАО02-10-2003 06:10 PM
Re: Shared memory usage for Java native libraries
Thanks again,
Dino
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-11-2003 03:23 PM
тАО02-11-2003 03:23 PM
Re: Shared memory usage for Java native libraries
The normal process data area used by malloc is private to a process.
The java heap used by java new operations is private to a process.
Explicitly created System V shared memory and shared mmap regions are shared between processes.
Shared libraries have both text and data areas. A shared library's text area can be shared between multiple processes. Its data area is always private. Calls to malloc from shared library code use the same private data area that calls from the a.out
use.
Only the shared memory areas use a system-wide address space. The other data areas are private to a process and only compete with other processes for swap space.
So, multiple 32 bit processes can have more data than a single 32 bit process.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-11-2003 03:29 PM
тАО02-11-2003 03:29 PM
Re: Shared memory usage for Java native libraries
-Sri
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-12-2003 10:35 AM
тАО02-12-2003 10:35 AM
Re: Shared memory usage for Java native libraries
The correct answer is that most memory is not shared between processes.