- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: Apportion of memory for a process By HP-UX
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
Forums
Discussions
Discussions
Discussions
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
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
03-30-2007 07:12 AM
03-30-2007 07:12 AM
The output of glance RSS/VSS = 929.6mb/930.3mb when the program failed.
I have the third quadrant private data enabled, the output of chatr on the binary confirms this
"third quadrant private data space enabled
fourth quadrant private data space disabled
third quadrant global data space disabled"
But am not sure why it failed when it has used only 930mb of 2700 mb.
1. Is the RSS memory also included in the allocated 4 GB of memory for a process? Still it is well within the range
2. I saw a documentation saying that, if the underlying OS is a 32 bit version, then the 3rd quadrant enabling will be ignored. Is it true? I am not sure how to check the bit of my OS. can any one help to determine this?
3. I ran a sample program which allocates memory in chunks of 100 mb. I did this in a while loop enabling the third quadrant. In the test environment, it failed only after allocation of 1.86 gb. RSS/VSS at the time of failure was 516kb/ 1.86gb. I copied the same binary to production box, ensured the third quadrant is still enabled, but it failed for a lower RSS/VSS value ==> 376kb/ 1000mb. Considering this behaviour, I feel though my original binary in prodution is enabled for the third quadrant, it is not using it.
Do I have to check for some option at the OS level?
can some one please advice?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2007 07:15 AM
03-30-2007 07:15 AM
Re: Apportion of memory for a process By HP-UX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2007 07:47 AM
03-30-2007 07:47 AM
Solution- You have to link -N to break through 1Gb that gets you to 1.9Gb. So it seems to me the "third quadrant private data space enabled" is not working on the test box either.
- Check MAXDSIZ with sam or kctune.
- Check for adqaut swap space
there are several earlier discussion on this.
Google: +hpux +q3p +site:itrc.hp.com
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=72276
Or google: +malloc +maxdsiz +2gb +site:itrc.hp.com
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1053415
http://www.gehrytechnologies.com/catia/catia/catia_hpux_large_memory.htm
hth,
Hein van den Heuvel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2007 08:43 AM
03-30-2007 08:43 AM
Re: Apportion of memory for a process By HP-UX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2007 09:58 AM
03-30-2007 09:58 AM
Re: Apportion of memory for a process By HP-UX
Thanks for all your responses.
How can I check the maxdsiz?
None of the commands sysdef, kctune, swapinfo works from my login. Do I have to have special preveliges for it?
From Christian's note I could find that My OS is 64 bit.
I did a ulimit -a on my test server and production server. The test server had a higher value for data. Is that the reason why my sample binary worked in test environment and it failed in production?
Test server
-------------
$ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 2015464
stack(kbytes) 8192
memory(kbytes) unlimited
coredump(blocks) 4194303
production server
-----------------
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 1048576
stack(kbytes) 8192
memory(kbytes) unlimited
coredump(blocks) 4194303
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2007 11:50 AM
03-30-2007 11:50 AM
Re: Apportion of memory for a process By HP-UX
You are limited by several factors in getting your program to allocate memory. First is the basic EXEC_MAGIC option to get more than 1 quadrant (1 Gb) using -N. Then you use chatr to change your executable to use +q3p and +q4p to get most the 4 quadrants. If you are running on HP-UX 11.23 or later, ytou can forget all this quadrant stuff and use the MPAS model with -Wl,+as,mpas
However, you cannot use the extra addressing space until your system administrator enables larger program limits. The kernel parameter MAXDSIZ and MAXDSIZ_64 are setup to prevent runaway programs from using all your RAM. The default MAXDSIZ has historically been very low, but since you have gotten up to 900 megs of RAM, MAXDSIZ is at least that large. Check it with:
kmtune | grep maxdsiz
(or kctune if you are on an 11.23 system). NOTE: MAXDSIZ_64 must be greater than MAXDSIZ or MAXDSIZ_64 will become the upper limit. Have your sysadmin change these two parameters to 3700 megs and a much larger value for MAXDSIZ_64.
Your ulimit value for data (memory) follows the MAXDSIZ value. Note that your sysadmin may have limited all users to a lower value in /etc/profile.
Even if you have only 4Gb of RAM but 8 Gb of swap, you can compile this program as a 64bit program and get more than 8Gb of data space.
Bill Hassell, sysadmin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2007 06:20 PM
03-30-2007 06:20 PM
Re: Apportion of memory for a process By HP-UX
This true for IPF but PA should allow you to skip one quadrant and combine 2 & 3.
>Is that the reason why my sample binary worked in test environment and it failed in production?
Yes, that is one reason, your 1GB limit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2007 01:18 PM
04-10-2007 01:18 PM
Re: Apportion of memory for a process By HP-UX
maxdsiz 2063835136 - 2063835136
maxdsiz_64bit 0x40000000 - 0X40000000
But my ulimit -a still shows
data(kbytes) 1048576
which should ideally follow maxdsiz value.
Why is it like that?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2007 01:27 PM
04-10-2007 01:27 PM
Re: Apportion of memory for a process By HP-UX
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2007 01:36 PM
04-10-2007 01:36 PM
Re: Apportion of memory for a process By HP-UX
ulimit -d 2015464
but as it is currently set at 1048576. I am unable to do it.
So I have to be the root user to increase beyond what is configured for my login
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2007 02:02 PM
04-10-2007 02:02 PM
Re: Apportion of memory for a process By HP-UX
> maxdsiz_64bit 0x40000000 - 0X40000000
maxdsiz=2063835136 = 2Gb
maxdsiz=0X40000000 = 1073741824 = 1Gb
Your system is misconfigured. This is a very common mistake. Tell your system administrator to replace the hex value with decimal numbers like maxdsiz. maxdsiz_64 *MUST* be larger than maxdsiz. If it is less (which it is), then maxdsiz is forced to the maxdsiz_64 value. Change maxdsiz_64 to 4Gb or larger if desired. It is only a fence (a limitation) and does not change anything in your programs.
> But my ulimit -a still shows data(kbytes) 1048576
ulimit defaults to the maxdsiz value which in your system means 1048576 Kb or 1Gb (the value of maxdsiz_64 which is lower than maxdsiz).
> Some where I checked that these values are defined in for every user in /etc/user/security file. But I dont see this in my UNIX server
Not true. All the options for the /etc/default/security file are found in the security man page. ulimit can only be globally set in /etc/profile or you can change the value in your local .profile or from the command line. Read the man page for sh-posix or ksh concerning ulimit.
Bill Hassell, sysadmin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-18-2007 04:59 AM
04-18-2007 04:59 AM
Re: Apportion of memory for a process By HP-UX
It required to change the maxdsiz parameter as all of you pointed out.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-18-2007 05:00 AM
04-18-2007 05:00 AM