How does z/VSE's PRTY SHARE work ?
Ingolf24 120000DRN3 Visits (2050)
Just a few days ago there was a discussion on VSE-L on PRTY SHARE. I think, that could be worth a blog entry.
Let's start with the PRTY command.
The PRTY command is used to query and set the priority of static partitions and dynamic classes. You may separate specified partitions via comma or equal sign (=). Static partitions / dynamic classes concatenated with "=" belong to a balanced group. You can have just one balanced group. The first static partition / dynamic class in the PRTY list has the lowest priority, the last one the highest. All members of the balanced group participate in time slicing, that is after a given time slice (CPU time) is used, the member of the balanced group will be moved to the lowest priority within the group.
E.g. PRTY FB,Q
The balanced group can be used to avoid, that a partition can monopolize the CPU consumption.
For some static partitions / dynamic classes of the balanced group you may want to give a higher weight (larger time slice). To allow higher weights (relative shares) the PRTY SHARE command was introduced. PRTY SHARE gives more flexibility to control partitions in an environment with high overall CPU utilization.
The PRTY SHARE command is used to allocate a relative share of CPU time to partitions belonging to a balanced group. The relative share of CPU time for a partition is reflected by a numeric value. Such a value can be defined for a static partition or for a dynamic class. The PRTY command displays the relative shares.
The default share value for static partitions / dynamic classes is 100, the maximum 9999. A value of "0" means that the static partition / dynamic class of the balanced group will be moved to lowest priority and will not receive a time slice except all other partitions with a higher priority are in wait state. All dynamic partitions of a dynamic class receive the same share value. The time slice of a static or dynamic partition will be calculated with the ratio of the partitions share, the total share values of all active partitions within the balanced group and the MSECS value - with some adjustments.
The share value will only be used for members of the balanced group to calculate the time slice. Shares / time slices only have effect to partitions, if they are dispatchable.
I would adjust the share values dependent on the results you observe and want to have. Refine the share values in an iterative way.
Finally a word on the MSECS value: The time slice will be calculated from the MSECS command value (default is about 1 sec. - 976). On faster processors, I would lower the MSECS value. E.g. try a value of 100 (lowest value), you would have more granular time slicing and I would assume that you do not see too much additional overhead. If you see more overhead, increase the MSECS value again to a valie you can afford.
The PRTY and PRTY SHARE commands are described in the z/VSE System Control Statements book. You can find that on our docu