home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / vmsnet / sysmgt / 421 < prev    next >
Encoding:
Internet Message Format  |  1992-12-24  |  4.8 KB

  1. Xref: sparky vmsnet.sysmgt:421 comp.os.vms:19833
  2. Path: sparky!uunet!wupost!uwm.edu!biosci!ucselx!crash!cmkrnl!jeh
  3. From: jeh@cmkrnl.com
  4. Newsgroups: vmsnet.sysmgt,comp.os.vms
  5. Subject: Re: SET COMMAND (memory "consumption")
  6. Message-ID: <1992Dec23.224406.1006@cmkrnl.com>
  7. Date: 24 Dec 92 06:44:06 GMT
  8. References: <22DEC199220180231@dstl86.gsfc.nasa.gov> <8DV9VB2w164w@jwt.UUCP>
  9. Organization: Kernel Mode Consulting, San Diego, CA
  10. Lines: 83
  11.  
  12. In article <8DV9VB2w164w@jwt.UUCP>, bbs-comarow@jwt.UUCP (Bob Comarow) writes:
  13. >> Why not just stick the SET COMMAND line in your LOGIN.COM?
  14. >> 
  15. >>        __  Paul J. Olson - VAX Systems Manager & Resident Amiga Addict 
  16. > You should avoid set commands as it consumes memory.
  17. > Bob
  18. > comarow@eisner.decus.org
  19.  
  20. No.  Putting the SET COMMAND in your LOGIN.COM won't help because your 
  21. LOGIN.COM is not executed for a SPAWN operation. 
  22.  
  23. As for "avoid SET COMMAND as it consumes memory":
  24.  
  25. It is true that doing a SET COMMAND causes your process to map to a process-
  26. private command table instead of the normal one.  Apparently new virtual
  27. address space is created for this, which is not altogether surprising; the
  28. surprise is that the v.a.s. used to map DCLTABLES.EXE is apparently not always
  29. released or reused.  
  30.  
  31. The evidence is that a SET COMMAND usually -- not always -- causes the 'virtual
  32. pages' seen in SHOW PROCESS/CONTINUOUS to increase by about the size of
  33. DCLTABLES.EXE (in the neighborhood of 400 blocks, depending on how many layered
  34. products you have installed which supply their own DCL verbs). 
  35.  
  36. Possibly the issue is that the new table, which is generally going to have a
  37. few more things in it than the old table, usually won't fit in the "hole" left
  38. in P1 space by the old table. 
  39.  
  40. In case you're wondering, DCL is clearly unmapping from DCLTABLES.EXE when 
  41. the first SET COMMAND is done.  This can be seen by looking at the Refcnt for
  42. DCLTABLES.EXE in the output of INSTALL> LIST/GLOBAL . 
  43.  
  44. So the process (usually) maps another few hundred pages of address space.  But
  45. this is no big deal -- this is *virtual* address space.  The v.a.s. used by the
  46. old table, even though it's still mapped, will soon be pushed out of the
  47. working set for good (SET COMMAND may even be smart enough to do a $PURGWS on
  48. it; it looks that way, since the process working set size stays the same across
  49. SET COMMAND invocations even when the virtual page count increases).  The
  50. v.a.s. used by the new table only needs to be resident as long as you're
  51. touching the data, which is to say, when you're asking DCL to interpret
  52. commands for you, which only happens when you're between images. 
  53.  
  54. It is true that a process mapped to its own command tables won't be sharing the
  55. command tables in memory, as happens with DCLTABLES.EXE.  But again, this is 
  56. only an issue when you're between images.  
  57.  
  58. Once you start running an image, if your working set isn't big enough to keep
  59. the things needed by the image plus the command tables and all the rest of the
  60. junk needed by DCL (including DCL itself), the latter will get pushed out onto
  61. the modified page list, and eventually to the free page list, and eventually
  62. reused for other things -- maybe the image you're running, but more likely by
  63. some other process. 
  64.  
  65. Since the additional v.a.s. required for the process-private command tables is
  66. puny compared to the v.a.s. required to run any image of any significance, and
  67. since you don't need both in the working set at the same time, you can forget
  68. about it. 
  69.  
  70. To put it another way, if your system is so memory-starved that a few users,
  71. or even a majority, doing SET COMMANDs is going to be noticed, you're going
  72. to have LOTS of other performance problems too.  
  73.  
  74. If it really bothers you, and if a lot of different people need the same
  75. changes to DCLTABLES, you can generate a new command table file, put it in
  76. SYS$LIBRARY, INSTALL it /SHARED/OPEN/HEADER_RESIDENT, and modify the
  77. appropriate users' UAF entries to reference it.  If multiple users happen to
  78. be touching the same regions of the image at the same time, there will be
  79. a small memory saving.  Perhaps more important, not doing a SET COMMAND in 
  80. the users' LOGIN.COM will noticeably speed up logins on slower machines --
  81. SET COMMAND is a rather lengthy thing.  
  82.  
  83. (This is one of those cases where a myth is based on a true statement.  That
  84. the underlying statement is true says nothing about whether or not it's
  85. significant.  In this case the significance is very small.)
  86.  
  87.     --- Jamie Hanrahan, Kernel Mode Consulting, San Diego CA
  88. drivers, internals, networks, applications, and training for VMS and Windows-NT
  89. uucp 'g' protocol guru and release coordinator, VMSnet (DECUS uucp) W.G., and 
  90. Chair, Programming and Internals Working Group, U.S. DECUS VMS Systems SIG 
  91. Internet:  jeh@cmkrnl.com, hanrahan@eisner.decus.org, or jeh@crash.cts.com
  92. Uucp:  ...{crash,eisner,uunet}!cmkrnl!jeh
  93.