[Info-vax] Raxco VMS Tuning Seminar Notes

jls notvalid at yahoo.com
Mon Nov 8 15:23:28 EST 2010


On Fri, 5 Nov 2010 04:31:20 -0700 (PDT), Neil Rieck
<n.rieck at sympatico.ca> wrote:

>On Nov 3, 1:43 pm, jls <notva... at yahoo.com> wrote:
>
>>
>[...snip...].
>>
>
>AFAIAC, the problem with the confusion around VMS tuning is due to the
>fact that many concepts are spread across multiple VMS manuals. So
>yesterday I was reading semi-unofficial VMS docs like "OpenVMS System
>Management Guide" which also gives the impression that AWSA runs
>independently every so often (like WATCHDOG or HITMAN). See topic
>18.7.3.2 or click the following link:
>
>http://books.google.ca/books?id=yn9RN2e32J4C&pg=PA421&lpg=PA421&dq=awsa+pfratl&source=bl&ots=Y4sWnsr8wm&sig=c60U2gj0hym3TJ_e7bhIq2zD6Ic&hl=en&ei=Md_TTLP6LNGbnwfCreHLBQ&sa=X&oi=book_result&ct=result&resnum=5&sqi=2&ved=0CCwQ6AEwBA
>
>But this official document "VMS System Performance Management" (see
>topic: 3.5.6 titled "Voluntary Decrementing")
>http://h71000.www7.hp.com/doc/73final/6491/6491pro_003.html
>discusses PFRATL in a context which has nothing to do with swapper
>trimming but everything to do with the process limiting itself.
>itself. So thanks for setting me straight.

Glad to help.

>
>###
>
>Okay so what would a system look like with with AWSA-
>Contraction(Reduction) disabled?
>Well, if the system becomes short of memory then swapper trimming
>would knock some/all processes who have borrowed memory over quota
>back to quota. If the system is still short of memory then some procs
>would be reduced even further to SWPOUTPGCNT (unless it was manually
>set higher) prior to swapping out.

Again, as I explained, judicious use of swpoutpgcnt so that it
encourages swapping entire processes, including up to their wsextent,
can actually help performance by reducing the amount of overhead cpu
spent on memory management, and also stop process page thrashing.

The assumption is that you're not trying to get  10 lbs of active sh*t
in a 5 lb bag.  I.e., you have a max 5 lbs of *active* stuff in that
bag, but can take on 10 (or 100) lbs of other inactive stuff.  Just as
long as you don't get more than 5 lbs of active stuff (since you've
only got enough physical resources to handle the 5).


>
>So I think it is better to have processes reducing their own memory
>requirements (acting like good citizens in the system) provided it
>doesn't invoke too much thrashing (hard or soft).

If it were idle processes giving up pages, then I'd agree with you.
But this isn't what is happening with AWSA.  With awsa, processes
aren't reducing their memory when they don't need it.  They are being
forced to give up necessary pages in their workingset by virtue of
actively using them.

>
>How could you reduce AWSA thrashing?
>1) Increase AWSMIN so you don't surrender below a certain value
>2) Reduce the size of WSDEC to a value below WSINC (the default SYSGEN
>values are the other way around). This would result in process being
>able to get more memory when it was required but surrendering fewer
>pages when required. Don't worry, if you get this wrong then then you
>can always fall back on swapper trimming
>3) Make AWSTIME some small multiple of QUANTUM. (don't make it too
>high as this would also affect AWSA-Expansion)

The point is that AWSA is a very drastic way to manage memory in most
cases.  It trades off a lot of CPU to perform memory management
activities compared to other methods.

>
>But all of this is moot if you've got plenty of memory like I do on my
>AS-DS20e with 3 GB. It is a different story on my AS-2100 which only
>has 128 MB
>

Right, the only reason to do more agressive memory management /
reclamation is when you're in a memory starved environment.  However,
just out od curiosity, do you use AWSA on the DS20e?  According to the
RAXCO bible, it was encouraged for use in ALL (or nearly all)
circumstances.

Look at all those processes on the AS-2100 and check how idle most of
them are.  How many are COM at any one time (well, say in a 1 min
interval).  How much memory would it take to keep all those COM
processes happy simultaneously.

Calculate the probability that a process that is idle for, say, one
minute is going to become active in the next minute.  If you don't
like one minute, choose 5 min.  Or whatever floats your boat.  But
calculate the probability of them become compute bound again after
that period.

In many workloads, those probabilities are pretty low.  That means
that if the entire process was swapped out (swpoutpgcnt = wsextent),
then you have much more memory available than stealing a couple of
pages here-and-there.

And the active processes can get more work done because they're not
thrashing.  If and when the idle process does become active again, it
is swapped back in with one I/O.

Swapper trimming can be a significantly lower overhead for many
circumstances.  



More information about the Info-vax mailing list