¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Hercules Optimization and Tuning


 

Hi
I am newbie in Mainframe and Hercules and Hyperion.
When i run something in guest my host shows approximately 20% of CPU usage or hard usage.
I want to tune and optimize Hercules with parameters of config file and selecting best hardware.
Finally I wana have good view of which parameters are important for getting better speed and which hardware should be upgrade when bottleneck reached.

some example questions:
?- having 2 Cpu with 10 core and frequency 4GHz is better or 2 Cpu of 20 core and GHz?

- In config file is maxcpu is for core or threads? What is best cpu parameters is better for set in config file for cpu with such as 20 cores.

- For below server configuration which config parameter do you suggest(maxcpu, numcpu, Mainsize, xpndsize, and specially engines)

Server 2 cpu 20 core and GHz and 128 GB ram.

- how many suggested CP, AP, IP and IL for especially if i have cpu with so many cores?

- How should i tune cckd parameters (ra, raq, rat, wr, ...) for normal hard or raid hard or ssd raid hard?

- In KVM binding host CPU cores and choosing host CPU model (xeon or haswell or ...)? may improve performance. Is there any thing similar here?


 

Usually one user job is going to be limited to one CPU. Running one
batch job is going to max out one CPU with another CPU handling I/O
and a third handling some MVS / Hercules / base overhead.
Although Hercules accepts different CPU types, it does not limit them
like real hardware, and varying the number of each type will not make
a difference. MAXCPU is best set to the number of cores minus 1 to
let a core handle overhead. Not sure if or when the MAXCPU should be
reduced by 2 to allow for overhead beyond 1 CPU. Of course, maxing
out all the cores is going to require 1 high usage batch job per CPU.
Hercules is compiled with C for universality. x86-64 is the expected
instruction set, unless you got a different package.

On Mon, Nov 16, 2020 at 7:49 AM <ehsdav@...> wrote:

Hi
I am newbie in Mainframe and Hercules and Hyperion.
When i run something in guest my host shows approximately 20% of CPU usage or hard usage.
I want to tune and optimize Hercules with parameters of config file and selecting best hardware.
Finally I wana have good view of which parameters are important for getting better speed and which hardware should be upgrade when bottleneck reached.

some example questions:
- having 2 Cpu with 10 core and frequency 4GHz is better or 2 Cpu of 20 core and GHz?

- In config file is maxcpu is for core or threads? What is best cpu parameters is better for set in config file for cpu with such as 20 cores.

- For below server configuration which config parameter do you suggest(maxcpu, numcpu, Mainsize, xpndsize, and specially engines)

Server 2 cpu 20 core and GHz and 128 GB ram.

- how many suggested CP, AP, IP and IL for especially if i have cpu with so many cores?

- How should i tune cckd parameters (ra, raq, rat, wr, ...) for normal hard or raid hard or ssd raid hard?

- In KVM binding host CPU cores and choosing host CPU model (xeon or haswell or ...) may improve performance. Is there any thing similar here?

--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?


 

¿ªÔÆÌåÓý

Hi,

?

For home use any more than 2 cores adds no extra to performance. Hercules will use one for CPU emulation and one for IO and other processing.

Generally, Hercules can emulate one less Mainframe CPU than you have total cores, the other being used for IO and other ancillary tasks.

If you are only running one job, you can only hit one mainframe CPU, which uses a single thread in Hercules, which hits only one core on the emulating CPU.

Speciality CPUs are marketing bullshit. They allow IBM to sell you performance, but only allow you to use it in a way that they specify.

?

Dave

?

?

From: [email protected] <[email protected]> On Behalf Of ehsdav@...
Sent: 16 November 2020 08:52
To: [email protected]
Subject: [H390-MVS] Hercules Optimization and Tuning

?

Hi
I am newbie in Mainframe and Hercules and Hyperion.
When i run something in guest my host shows approximately 20% of CPU usage or hard usage.
I want to tune and optimize Hercules with parameters of config file and selecting best hardware.
Finally I wana have good view of which parameters are important for getting better speed and which hardware should be upgrade when bottleneck reached.

some example questions:
?- having 2 Cpu with 10 core and frequency 4GHz is better or 2 Cpu of 20 core and GHz?

- In config file is maxcpu is for core or threads? What is best cpu parameters is better for set in config file for cpu with such as 20 cores.

- For below server configuration which config parameter do you suggest(maxcpu, numcpu, Mainsize, xpndsize, and specially engines)

Server 2 cpu 20 core and GHz and 128 GB ram.

- how many suggested CP, AP, IP and IL for especially if i have cpu with so many cores?

- How should i tune cckd parameters (ra, raq, rat, wr, ...) for normal hard or raid hard or ssd raid hard?

- In KVM binding host CPU cores and choosing host CPU model (xeon or haswell or ...)? may improve performance. Is there any thing similar here?


 

Dave Wade wrote:

For home use any more than 2 cores adds no extra to
performance. Hercules will use one for CPU emulation
and one for IO and other processing.
That's only true for uniprocessor guest operating systems (i.e. guest operating systems that only support one CPU). For any multiprocessor guest operator system however (such as z/Linux, z/VM or z/OS, etc), having more cores will most definitely guest performance -- in situations where the guest has enough work to keep all of its CPUs busy of course. If the typical workload on the guest is very light however, then having multiple CPUs defined to the guest will probably not help you much.

I suspect that maybe what you were referring to was the fact that having multiple cores on the host will not magically make a given Hercules virtualized guest CPU run any faster. Each defined Hercules guest CPU can only ever run as fast as however fast one real host CPU can run, but not any faster.


Generally, Hercules can emulate one less Mainframe CPU
than you have total cores, the other being used for IO
and other ancillary tasks.
That's not true either, but only because you worded it so poorly. :)

Hercules is able to emulate as many guest CPUs as you want, up to the Hercules host's implementation maximum: 64 on Windows and 128 on Linux, *regardless* of however many real cores you have on your host.

That is to say, even if your real Windows host only has 8 real cores, Hercules can nevertheless still emulate up to 64 mainframe CPUs for your guest.

But given that each mainframe CPU that Hercules emulates can only ever run on one real host core (it can bounce around from one core to another of course, but ultimately it can only ever execute on one of them at a time), it only makes sense to refrain from defining more than approximately 1 or 2 virtual CPUs to your Hercules guest than the number of real host cores you have. For example, it your real host has 8 cores, I personally would not define more than about 6 CPUs to my Hercules guest, thereby leaving 2 real host cores left over for both Hercules miscellaneous work (such as scheduling I/O, etc) as well as for Windows itself to use for its own workload.

But as I said, even if you only have 8 cores on your real host, Hercules is still able to emulate more than that! It's just that it doesn't make sense to do so. It's not efficient.


If you are only running one job, you can only hit one mainframe
CPU, which uses a single thread in Hercules, which hits only one
core on the emulating CPU.
THAT is true, yes.


Specialty CPUs are marketing bullshit. They allow IBM to
sell you performance, but only allow you to use it in a
way that they specify.
And THAT is very *VERY* true!

As far as the OP's question regarding cckd parameters is concerned (ra, raq, rat, wr, ...), I personally have ZERO experience playing with them. I always use the default values. Trying to tweak them to eke out additional I/O performance is likely a waste of time IMHO. The best way IMO to improve I/O performance is to get faster dasd. Again, just like the speed of Hercules's emulated CPUs, Hercules's emulated guest I/O can only ever operate as fast as the host's I/O is able to operate. The faster the host, the faster the Hercules guest.

So if you want a really fast Hercules guest, buy as many of the fastest CPUs as you can afford and as many of the fastest dasds that you can afford.

That's my 2 cents.

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


 

Fish wrote:

[...]
So if you want a really fast Hercules guest, buy as many
of the fastest CPUs as you can afford and as many of the
fastest dasds that you can afford.
And make sure you have PLENTY of RAM on your host too! (So you can give as much as your guest needs for best performance.(*))

(*) Which ultimately depends on your guest's workload and how well its configured (tuned) for performance.(**)

(**) Which is of course completely different from the way one configures/tunes one's real host!

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


 

¿ªÔÆÌåÓý

Dave wrote:

?

  • For home use any more than 2 cores adds no extra to performance. Hercules will use one for CPU emulation and one for IO and other processing.
  • Generally, Hercules can emulate one less Mainframe CPU than you have total cores, the other being used for IO and other ancillary tasks.

?

Hercules, even for home use will use more than one CPU thread or core for I/O when there is substantial I/O activity level. Testing was done to levels requiring the use of all CPU threads and cores to max out the machine on an eight-core machine, and that was done using a single CPU emulation thread.

?

For planning purposes, I look at the application running, I/O requirements, and parallel I/O being performed. Yes, my basic programs using nothing more than sequential processing usually run quite well on four real hardware threads. However, my parallel I/O bound programs require significantly more as they are running at more than 6,300 disk I/O operations per second (and not to SSDs!), with an average of 7.2 CCWs per I/O. I will note, however, that these programs are not using the OS provided access methods (xSAM, BDAM, etc.).

?

Mark
dasdman

?


 

ThanX.
As we now these days cpu has 2 thread and seen double core as real core in OS.
In hercules MAXCPU is max thread i think or max core and not max real cpu core( i dont know) and not max cpu slot(for server may have 2 or 4 slot cpu).
First what is your meaning by cpu in your reply? (core or thread)
Second if i use command like settask? should i have better performance?