![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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> 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.
|