  OpenVMS Modified Page Writer Behaviour? (RWMPB) 
 The Question is:
 
 
The MPW_WRTCLUSTER system parameter defines the size of a page file write
used by the VMS Modified Page Writer when flushing pages from the Modified
Page List (MPL).  Our current understanding is that VMS will scan the MPL to
find the number of pages spec
ified by this parameter, and map them into a contiguous virtual address
space, before invoking the system routine that writes to disk.  The routine
that performs the write to a page file may break the I/O request into
multiple writes depending upon a numb
er of factors (according to "VMS Internals and Data Structures V5.2").
 
On a VAX, the default value for MPW_WRTCLUSER is 120 pages of 512
bytes/page.
 
On Alpha, the default value for MPW_WRTCLUSTER is 64 pages of 8196
bytes/page.
 
We have raised MPW_WRTCLUSTER on one of our Alpha system (8400 4GB)from 120
to 240 Alpha pages in an attempt to more quickly flush pages to the page
files.  Never-the-less, we continue to experience processes stalling in
Resource Wait/Modified Pagewriter
Busy (RWMPB) state with the Page Write I/O Rate (as displayed by the Monitor
Page command) very low.
 
MPW_HILIMIT is set to 48000 to allow a large "buffer" before processes start
stalling at MPW_WAITLIMIT (set to max value of 65535).  The theory being
that it's better to start writing sooner.
 
We want to know if the time spent by VMS to locate and map 240 candidate
pages for flushing to disk, coupled with the long service time to write
3,840 disk blocks (240 * 16) or ~1.9 Megabytes, is reducing the throughput
of the Modified Page Writer.
 
In other words, might we achieve faster flushing of the Modified Page List
by using a smaller value for MPW_WRTCLUSTER, such as the default value of 64
 
 
SYSGEN&gt;  SHOW MPW
Parameter Name            Current
MPW_WRTCLUSTER                240
MPW_HILIMIT                 48000
MPW_LOLIMIT                  2010
MPW_IOLIMIT                     8
MPW_PRIO                       10
MPW_THRESH                   4020
MPW_WAITLIMIT               65535
MPW_LOWAITLIMIT             65295
 
 The Answer is:
 
  Without a much closer look at what the system is actually doing here,
  the answer from the OpenVMS Wizard is a firm "it depends".
 
  Considerations include:
 
  - What is the application doing; it appears to be generating a huge
    number of modified pages.  What is the page read/write ratio?
    Could more memory or larger working sets help here?
 
  - How long are processes stalling in RWMPB?  What is the occasion?
    The OpenVMS Wizard has seen RWMPB "stall" situations when large
    pagefile-backed sections are deleted.  (Eg: when the last process
    closes a file with large numbers of global buffers enabled.)
 
    OpenVMS formerly only noticed that the world wasn't interested in
    this data only after most of it had been carefully saved to the
    pagefile.  V7.2 has a change that can avoid unnecessarily writing
    all of this data in many cases.  So far, the OpenVMS Wizard is
    unaware of a request to port this back to V7.1 or V6.2, but that
    might be an option if there is enough call for the change.
 
  - What is the I/O configuration?  Specifically, if you are using SCSI
    disks, the maximum transfer size used to be 127 blocks -- not quite
    8 pages.  Some controllers will allow a larger I/O size starting in
    OpenVMS V7.2.  But in the past -- and certainly in V6.2 -- this could
    lead to large numbers of split I/Os, which are about the slowest
    possible way to get data to disk: write some, wait 'til it's written,
    write some more ...
 
    You might have better luck using pagefiles on multiple spindles and a
    larger MPW_IOLIMIT value.
 
  - As of OpenVMS V7.0, MPW_WAITLIMIT and MPW_LOWAITLIMIT are no longer
    limited to 32 KB.
 
    Adjusting these values might also help.
 
  In summary: multiple, roughly equally sized, large and contiguous pagefiles
  distributed over multiple disks and combined with a large MPW_IOLIMIT (at
  least three per disk) are probably the best configuration.  This should
  allow the controller or disk to do some performance optimizations.  The
  OpenVMS Wizard would avoid using huge values for MPW_WRTCLUSTER.
 
