1834055 Members
2533 Online
110063 Solutions
New Discussion

Re: memory VMSTAT

 
SOLVED
Go to solution
Yair Goldel
Advisor

memory VMSTAT

I see in the vmstat output that the free memory is 1300000 but my process need more , i mean that he take all the memory till free memory is 0 and crash
Which kernel parameter i need to increasefor this
I have 10G RAM 4CPU
Thanks
3 REPLIES 3
Armin Feller
Honored Contributor

Re: memory VMSTAT

Hi,

please have a look at this:

Overview of Process-Management Parameters
http://docs.hp.com/hpux/onlinedocs/939/KCParms/KCparam.ProcessParmsOverview.html

Regards,
Armin
RAC_1
Honored Contributor

Re: memory VMSTAT

The free column you see in vmstat is pages. The free memory you have is (1300000+*4096)MB.

Now this is the free memory available to you.

If you start your program/application which needs more than this program/application will use whatever is available at that point in time. after that swapping will start and that wont be good.

If you want to reserve the memory for your program/application you can think of using PRM.(Process Resource Manager)
There is no substitute to HARDWORK
Bill Hassell
Honored Contributor
Solution

Re: memory VMSTAT

HP-UX is a virtual memory machine, so as long as your process can address more memory, and you have plenty of swap space, you won't have any problems. The amount of free memory has nothing to do with whether a program can request (and address) the memory it needs.

First, the kernel parameter maxdsiz limits the size that a single program can request for a local data area. The default value is far too small (67megs), so change that parameter to 900 megs as a start.

Second, is your program 64bit or just a simple 32bit program. You can tell by using the file command on the program:

file /dir_name/program_name

If the result has the letters: ELF then it is a 64bit program and is constrained only by maxdsiz_64 and the total amount of virtual memory (swap and RAM). However, if ELF does not appear, there are MANY restrictions on this 32bit program. maxdsiz is one restriction, another is the type of executable. If your program needs more than 900 megs, you'll need to use chatr to allow quadrant1+2 bonding.

Third: if the program is crashing due to shared memory (not local), you'll need to check on the programs requirements for shared memory segments (how big, how many, etc) and set the appropriate kernel parameters. If the program is 64bit, then you'll only be constrained by swap and RAM. But if it is a 32bit program, things get quite complicated due to map limitations and shared memory area fragmentation.

Read the two documents in /usr/share/doc called mem_mgt and proc_mgt and for 11.00 and higher, take a look at memory windows in the same directory.


Bill Hassell, sysadmin