February 2004Get the most out of your Robelle Tools
Important Suprtool Performance Notes
By Neil Armstrong
Suprtool extracts data very quickly; in fact, at times, HP asked me how we can throttle it back. Suprtool tends to push the envelope on disk IO, as it completes processing of each block it reads so quickly that at times, depending on the system configuration, some resources get pushed to the limit. This resource utilization became more of an issue with MPE/iX 6.5, due to changes in the memory manager and is more prevalent in systems with large amounts of memory. Symptoms vary depending on whether you are working with an N-Class system or a non-N-Class.
Happily, HP was most helpful in providing methods to help tune Suprtool for each system. First, some history on key developments that occurred for MPE/iX 6.5, 7.0 and N-class servers.
During the development of MPE/iX 6.5, HP contacted us to come down and get Suprtool to work with Large Files and MPE/iX 6.5. It was a requirement that Suprtool be able to handle Large Files and MPE/iX 6.5 This proved to be a challenge, not because the work was particularly technical, but rather because on the first machine we used the network would not stay up long enough for us to work on anything other than the console. The first trip was dedicated to looking at what would fail, detecting MPE/iX 6.5 and turning off certain options until HP had time to get more issues fixed.
The second trip was dedicated to turning some of those options back on, fixing Sort to work with Large Files and getting Suprlink and STExport to work. After the second trip, we were pretty much ready for Suprtool to be released with the support for large file features and compliant with MPE/iX 6.5.
However, as MPE/iX 6.5 rolled out, we began to get reports of performance issues, which were linked back to some near release changes to the memory manager. With help from some great lab people, such as Kevin Cooper and Bill Cadier, we quickly determined the source of the problem as well as implemented a solution on both sides.
HP identified the performance problem to be related to our prefetching of pages of data so that subsequent reads are completed quickly. Simply put, we make data available in memory ahead of where Suprtool disc reads are done, in such a way that IOs are reduced. Because of a memory management change, these pages were being kept in memory longer than previously, which forced the memory manager to read down a longer chain of pages and increased the amount of work the system had to do. At times, the problem presented itself as a high number of disk IOs waiting to complete while the system was doing so much work in-between disk IOs. As a temporary work around, we had customers turn off prefetching with a command of Set Prefetch 0.
The solution was to reduce the number of pages that the system had to chain through, by releasing them from memory earlier. HP made a enhancement to one of their low-level system calls, which allowed us to invoke an option for releasing pages from memory when the prefetch feature in Suprtool is turned on.
Within Suprtool 4.5 and higher, you can turn this feature on with the MakeAbsent setting: Set MakeAbsent On.
This feature is only relevant if prefetch is turned on with a setting of 1-5, which controls the size of a prefetch. Set MakeAbsent On has no impact if prefetch is turned off.
The MakeAbsent setting was not documented, as we wanted to gain metrics on whether or not the setting was effective and under what cases this was effective.
What is Happening Now
As mentioned, we saw the problem as being long waits for disk IOs to be completed. This was primarily on non N-Class systems. Over time, the N-Class systems have been widely deployed in various customer sites and the symptoms that were observed were slightly different. Due to the dramatic improvement in disk IOs, the symptom we see on N-Class machines is a high utilization of memory. To get more information on N-Class machine disk IO, please see my paper Living with 400 IOs Per Second at www.robelle.com/library/papers/ios400.pdf
Some Metrics and Advice
So now that we have a general understanding of the symptoms and some of the settings that you can control to help alleviate the problem, lets discuss how and what to change and when. Keep in mind that these are just general guidelines and your mileage may vary.
2Gb and less: For systems with less than 2Gb of memory you probably do not need to do anything. Of course, you are free to experiment with setting MakeAbsent on, or with changing the prefetch quantum or even turning it off. But the defaults should usually be fine.
Please note that when testing, your results may naturally improve if you repeat the same extract over and over, since more portions of the file or dataset will be in memory. You may want to make a change to the settings and monitor some jobs that you run frequently and at various times of the day, to see how the changes will impact your system over time.
My gut feeling overall for systems with less than 2Gb memory, the default setting of set prefetch 2 should be adequate and turning MakeAbsent on may hurt your system performance.
Greater than 8Gb: For systems with 8Gb of memory and larger, we have found that set makeabsent on has been helpful for memory consumption on N-Class systems and has reduced disc IO queues for non N-Class systems.
Between 2Gb and 8Gb: The results here have been mixed; as you get closer to 8 gigabytes turning MakeAbsent on has been better for N-class systems, but I have no real results for non N-class systems. For some systems turning prefetch off altogether proved to be the best option, but these systems were usually CPU bound. I would recommend first trying to turn off prefetch to see if that helps, and then turning it back on and trying MakeAbsent on. Again, I suggest doing this and leaving the setting for a day or two and measuring the results.
Should I change anything?
If you do not detect a problem, then normally I would not recommend changing anything blindly. Most people who call or e-mail about this issue have discovered it by using either Glance (from HP) or SOS (from Lund).
How do I make changes?
You can make global changes to these settings for every Suprtool process, by putting the various set commands in the file SUPRMGR.PUB.SYS
So to turn on the MakeAbsent feature, you could add set Makeabsent on to the suprmgr.pub.sys file. Of course if you see Set Prefetch 0 in the file, MakeAbsent will have no effect. If you do not see a Set Prefetch command, the default setting is Set Prefetch 2 and this is probably reasonable for most systems.
If you do experiment with this feature we would like to hear your results. Please send me an email at Neil@robelle.com.
Copyright The 3000 NewsWire. All rights reserved.