Operating System - OpenVMS

How to get the major part of RAM for one job?

Regular Advisor

How to get the major part of RAM for one job?

Hi all,

This one is similar to the one I posted last week, but seems to have a different solution.


On an Itanium (OpenVMS 8.4), with 64 GB RAM, I'm running a job that needs a lot of RAM. However it never gets more than:

valeta-jj) sh sys
OpenVMS V8.4 on node VALETA 19-SEP-2016 19:55:49.28 Uptime 0 05:30:36
Pid          Process Name State Pri I/O       CPU        Page flts  Pages

2300047C _RTA2:         CUR 1 4 1950 0 03:25:06.14 1429169 636010


My quota are set to exceed those 636010 pages:

No access restrictions
Expiration: (none) Pwdminimum: 6 Login Fails: 0
Pwdlifetime: (none) Pwdchange: 19-SEP-2011 16:47
Last Login: 19-SEP-2016 19:33 (interactive), 19-SEP-2016 19:33 (non-interactive)
Maxjobs: 0 Fillm: 5000 Bytlm: 2100000
Maxacctjobs: 0 Shrfillm: 0 Pbytlm: 0
Maxdetach: 0 BIOlm: 10000 JTquota: 60000
Prclm: 40 DIOlm: 1024 WSdef: 24000000
Prio: 4 ASTlm: 1200 WSquo: 100000000
Queprio: 0 TQElm: 400 WSextent: 524288000
CPU: (none) Enqlm: 4000 Pgflquo: 2147483632



The WSMAX sysgen-paremeter also is set high enough:

Parameter Name Current Default Min. Max. Unit Dynamic
-------------- ------- ------- ------- ------- ---- -------
WSMAX 95828400 131072 16384 134217728 Pagelets
internal value 5989275 8192 1024 8388608 Pages



What else should I do to get more RAM assigned to the job.




Respected Contributor

Re: How to get the major part of RAM for one job?

I'm not convinced that you require more memory.  Using the stats you have provided, you have 2.2 faults per page.  You need to incur at least 1 just to get the page into the working set.  The working set will grow by adding pages up to the quota.  It appear that you have done that.  Unless the process continues to page at a high rate, I don't think you can do much if anything.  Is there still an increate in page faults?  Does the process continue to grow?

Watch the process for a while and see what happens.

If possible, can you create a kit of the program being executed that can be run on another system.  I would like to see this in real time if possible.  I do have machines available to do this.  Let me know..

Given the info provided thus far, the system is using all the memory it requires.


Regular Advisor

Re: How to get the major part of RAM for one job?

The process is not growing anymore. It stays at the same amount of memory and the pgflquota drop to zero.

The process seems to be doing nothing but eating CPU-time.

Sorry the application is propriety, so I cannot have it run on another computer. Maybe I can create a small reproducer tomorrow which can be run on another computer



Respected Contributor

Re: How to get the major part of RAM for one job?

If the job is just consuming CPU, then the size reported is the size needed and no more memory is required.

If there was a need for more memory, the page fault count would be increasing.  Unless there is a system wide shortage of memory that triggers the swapper to reclaim memory from processes, your process should remain at the level it is currently and not incur any more pagefaults.

If the program is not 100% mapped and calls other routines not yet in memory, you will see more pagefaults to fault in those other routines.

At this point, you have all that is required.  No need for a reproducer.