- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - Linux
- >
- Re: Is there any limitation on memory a process ca...
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
05-29-2007 07:42 AM
05-29-2007 07:42 AM
Is there any limitation on memory a child process can use?
But still the program fails after allocating 1900 GB.
maxdsiz limit is at 4GB.
maxdsiz_64 is at 8 GB.
Is there anything else that I need to look at to provide the entire 2700 GB of memory?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:01 AM
05-29-2007 08:01 AM
Re: Is there any limitation on memory a child process can use?
I think these figures are wrong.
You should not be able to exceed 8 GB on a 64 bit program and 4 GB on a 32 bit.
Lets say you are actually failing at 1900 MB, thats pretty close to the limit for a 32 bit program based on compiler memory windows.
Is it a 32 bit program? Details please.
SEP
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:16 AM
05-29-2007 08:16 AM
Re: Is there any limitation on memory a child process can use?
- Tags:
- maxssiz
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:35 AM
05-29-2007 08:35 AM
Re: Is there any limitation on memory a child process can use?
Stephensen,
My ulimit also shows 4GB for the data. I was also thinking whether to compile the program as 64-bit, but wanted to check, whether there could be any other parameter at the kernel level limiting the memory to 2 GB.
Why is it failing at 1900 GB when it can use 2700? So I thought probably some other parameter is restricting the memory to 2GB.
I used the +q4p option the program is still running, I could see that it has crossed the point where it was failing initially.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:38 AM
05-29-2007 08:38 AM
Re: Is there any limitation on memory a child process can use?
Value is 0X800000 for both maxssiz and maxsiz_64. Is this the reason why thought 2700 GB is available for data, only 1900 is available to the program?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:46 AM
05-29-2007 08:46 AM
Re: Is there any limitation on memory a child process can use?
0x800000 = 8,388,608 bytes = 8 MiB
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:46 AM
05-29-2007 08:46 AM
Re: Is there any limitation on memory a child process can use?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 08:57 AM
05-29-2007 08:57 AM
Re: Is there any limitation on memory a child process can use?
I still dont get, why my program isnt using the available 3700 GB to it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 09:38 AM
05-29-2007 09:38 AM
Re: Is there any limitation on memory a child process can use?
Try this code, mem.c:
---------------------------------------------
#include
#include
#include
#include
#define assign_errno(x) ((errno != 0) ? errno : (x))
static void problem(char *msg, int err)
{
(void) fprintf(stderr,"\n%s (%d)\n",msg,err);
(void) fflush(stderr);
return;
} /* problem */
int main(int argc, char *argv[])
{
int cc = 0;
long m = 0;
size_t sz = (10 * 1024 * 1024);
char *p = (char *) (NULL + 1);
while ((cc == 0) && (p != NULL))
{
p = malloc(sz);
if (p != NULL)
{
m += 10L;
(void) printf("%7ld MiB\n",m);
}
else
{
cc = assign_errno(-1);
problem("malloc failed",cc);
}
}
return(cc);
}
-------------------------------------------
Compile, link it like this:
cc -N +DAportable mem.c -o mem
Now execute it (and I assume that your maxdsiz is set to 4GiB, your ulimit -m value is unlimited, and that your maxssiz is set to 32MiB or less). I also assume that you have sufficient virtual memory space (memory + swap) to allow for a 4GiB address space.
You should get a memory allocation somewhere near 1900 MiB.
Now execute chatr on the executable file.
chatr +q4p enable mem
Execute mem again and you should get a value very near 3800 MiB.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2007 06:21 PM - edited 10-01-2011 10:51 PM
05-29-2007 06:21 PM - edited 10-01-2011 10:51 PM
Re: Is there any limitation on memory a process can use?
If you look at the fine print in both of Clay's replies, you need -N to get quadrant 1. And +q3p and +q4p for quadrants 3 and 4. And of course you get quadrant 2 for free.
- Tags:
- -N