Therefore I want to summarize information about "balancing z/VSE workloads" based on blog entries I posted the last years.
The z/VSE base system provides partition and CPU balancing.
Let's start with partition balancing: 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 PRTY SHARE command is used to allocate a relative share of CPU time to partitions belonging to a balanced group. I described partition balancing in blog entries "How does z/VSE's PRTY SHARE work ?" and "z/VSE PRTY command tips". The SHARE value can range from 0 - 9999. If you use small MSECS numbers like MSECS 100, I would go for 3 digit shares. In some calculations for small (1-2 digit) share values it could be that the shares don't show the behavior you would expect, caused by rounding / adjustments.
Now to CPU balancing:
The blog entries "Are you running your z/VSE system with multiple CPUs active ?" and "z/VSE: Are you running z/VSE on a multiprocessor ?" describes briefly how z/VSE multiprocessing works and introduces CPU balancing. One scenario for using CPU balancing could be if your workload has different CPU requirements during day and night. CPU balancing starts only additional CPUs, if that's required for the workload. The CPU balancing overhead is very low. Workloads may change their behavior in seconds. Therefore I would use smaller intervals as a start (e.g. the default INT=9) and would not go over 70 with the threshold (THR) value (if about 70 % CPU utilization is reached, an additional CPU will be activated).
You may monitor the CPU utilization and non-parallel share with the CPUMON tool. More details are in the blog entry "Do you know the CPU utilization of your z/VSE workload ?".
Let me know, if you have more questions.