HP.com Home
IT Resource Center Forums > HP-UX > system administration

mmap: Not enough space


» Return to original page
Content starts here
   Create a new message    Receive e-mail notification if a new reply is posted  Reply to this message
Author Subject: mmap: Not enough space      Add to my favorites
Robin C. Querol
Nov 27, 2002 03:10:35 GMT   

We have a program that maps a file into memory. The command uses mmap and is used like this:
__output_rec = (Mptr) mmap ( 0, ( __max_file_recs + SAFE_BUFFER) * sizeof ( Mnode ), PROT_READ | PROT_WRITE, MAP_PRIVATE, __output_fd, 0 );

The error is:Nov 27 09:50:38 smscp2 MVAS1[11380]: sms_merge_ord.c : create_new_file () : Failed to map file to memory.. 12 : Not enough space
Nov 27 09:50:38 smscp2 MVAS1[11380]: sms_merge_ord.c : main () : Failed to create new file.


We have 8GB physical memory and have around 80% utilization. Based on our calculations the file should only be around 100MB. Do we have a kernel configurable parameter for this?
Note: If you are the author of this question and wish to assign points to any of the answers, please login first.For more information on assigning points ,click here


Sort Answers By: Date or Points
harry d brown jr Expert in this area This member has accumulated 20000 or more points
Nov 27, 2002 03:14:14 GMT  10 pts

Check your swap space, and post your kernel parameters. Look at dbc_min and max also.

What OS ??

live free or die
harry
Michael Tully Expert in this area This member has accumulated 20000 or more points
Nov 27, 2002 03:18:24 GMT  6 pts

I agree with Harry. Look at your dbc_min_pct and dbc_max_pct kernel parameters. You will find that they are set to the default which is 50%. This is just about useless. The ideal value should be somewhere in the vicinity of 300-500Mb no more. So in your case, dbc_max_pct should be set to 5, dbc_min_pct to 2.

Make sure you have enough swap space.
T G Manikandan This member has accumulated 7500 or more points
Nov 27, 2002 03:18:55 GMT  10 pts

The error is due to
1.Amount of memory and swap available.
If you have 80% used.
What is the value of dbc_max_pct on your kernel.
If it is 50% of memory bring it down to somewhere around 8.
The buffer cache half the memory is too high.

check the individual process usage using
UNIX95= ps -e -o ruser,pid,vsz=Kbytes

to check the process usage by each process.
How is the usage of the swap on the machine
Just do a
swapinfo -ta

you can use glance to monitor the process which is throwing out the error.

2.You have to increase your kernel parameters like
These paramters define the upper limit for a process.
They have default values like 8MB.

maxdsiz
maxdiz_64
maxssiz
maxssiz_64
maxtsiz
maxtsiz_64
ALso make sure that you check these values.

Revert with the amount of swap utilization
 
Create a new message    Receive e-mail notification if a new reply is posted   Reply to this message
 
 
» Return to original page
Privacy statement Using this site means you accept its terms
© 2009 Hewlett-Packard Development Company, L.P.