[comp.os.vms] Detached "run" page faults

DL01@TE.CC.CMU.EDU (David B. Love) (07/18/88)

Howdy All,

    I've recently showed some of our uVax II users how to do run commands
with both input and output being to and from files instead of interactive
IO.  They've taken to doing much of their Lindo (a linear programming 
package) work this way.  Once they do a :

        "Run /input=foo.in/out=foo.out foo.exe"

     the job spawns a sub-process and goes on its merry way.  I've
noticed that these jobs are hitting huge page-fault rates ( usually
over 300 on the "monitor system" display ).  Have I created monsters ???
Is it bad to run large programs in this mode ???  Am I unnecessarily
killing the system ???

      Any answers to these questions would be appreciated.  Thanks !


	David Love
	DL01@TE.CC.CMU.EDU

-------

LEICHTER@VENUS.YCC.YALE.EDU ("Jerry Leichter ", LEICHTER-JERRY@CS.YALE.EDU) (07/22/88)

	I've recently showed some of our uVax II users how to do run commands
	with both input and output being to and from files instead of
	interactive IO.  They've taken to doing much of their Lindo (a linear
	programming  package) work this way.  Once they do a:

	        "Run /input=foo.in/out=foo.out foo.exe"

	the job spawns a sub-process and goes on its merry way.  I've noticed
	that these jobs are hitting huge page-fault rates ( usually over 300
	on the "monitor system" display ).  Have I created monsters ???  Is it
	bad to run large programs in this mode ???  Am I unnecessarily killing
	the system ???

When you create a subprocess, it gets its own values for various quotas.  Most
of these are "pooled", or shared with the master process (subprcess quota is
an obvious one); some are "deductible" taken from the parent, given to the
child, and returned when the child terminates (I think the remaining time
limit may currently be the only deductible quota); and some are just granted
anew to the new process ("non-deductible").  The working set quotas are
non-deductible; the values given to the new process are the system defaults,
which are usually quite small.  As a result, if you run a large image in such
a subprcess, it will generate TONS of pagefaults.

The working set quotas for the new process can be specified on the RUN
command, using the qualifiers /EXTENT, /MAXIMUM_WORK, and /WORK.  The values
actually granted to the subprocess are minimized with the values for the
current process, so you can't get around the limits for your account this
way - and you can just specify very large values for all of them, rather than
trying to figure out which values are appropriate.

BTW, you may find it simpler to use SPAWN/NOWAIT; it will worry about passing
stuff over for you.  In addition, it will pass over logicals that the program
may try to use.  If you find SPAWN too slow, use /NOSYM/NOKEY to avoid passing
over the DCL symbols and key definitions you don't need - it should then run
almost as fast as RUN for a subprocess.
							-- Jerry