In short, in my experience, Java performance on the mainframe is acceptable to 
very good today. 

If you're trying to make the case that "my mainframe processor is faster than 
your processor in your laptop", that's somewhat difficult to prove because the 
processors and systems are designed for different use cases: high throughput 
for large mutli-user workloads vs. high performance for single-user workloads. 
I believe you could construct a benchmark that would prove either platform is 
superior.

If you're trying to get a feel for "is Java fast enough on the mainframe", then 
the answer is generally yes, it Java on the mainframe with adequate zAAP 
capacity is more than likely fast enough. I have Java workloads I've run on 
both Intel and zAAPs and the difference in performance (on the last few 
generations of z hardware, with adequate zAAP capacity) is not generally 
significant. I/O performance can be a much more interesting component than the 
CPU time.

If you're trying to determine how much zAAP capacity you're going to need to 
run a particular workload on the mainframe, that's more complicated. Your best 
bet is to actually test the workload there. Again with adequate zAAP capacity, 
or on an off time with adequate GCP capacity. If testing on GCPs, take care if 
you're using sub-capacity GCPs.

Several years ago we did a test for a relatively large (for us) Websphere 
application on both AIX and z/OS. The proposed AIX config was something like a 
pair of 16-way AIX boxes. The z config was 4 z9 zAAPs (two on two separate 
CECs). Personally, I think the AIX boxes were likely over-configured, but I 
wasn't responsible for testing on that platform, so I can't say for sure if 
that was the case. In the end the application ended up going live on 6 z10 
zAAPs, and the z10 zAAPs stayed at right around 15-20% busy or so.

Note I say zAAP, but zAAP on zIIP should be effectively the same. Other than of 
course you may have more workloads competing for those zIIPs. Note that 
depending on the xxxHONORPRIORITY setting in IEAOPTxx, Java workload may fall 
back to GCPs. Depending on how many specialty engines you have, how busy your 
GCPs are, and whether or not you're running sub-cap GCPs, you may want to 
consider setting xxxHONORPRIORITY=NO to keep as much of the Java work on the 
specialty engines as possible. With that set to "no" I think all of my JVMs 
show >95% of their zAAP-eligible time is on the zAAPs, and >98% is not uncommon.

If you're trying to test the same code on both platforms be aware that there 
are a lot of differences to worry about... You probably are not running the 
same JVM on Windows as you are on z/OS. JVM settings such as heap size and the 
garbage collection algorithm can make for significant differences in run times. 
If you're running relatively short-lived tests, the JVMs may not JIT the code 
in the same timeframe on both platforms. The I/O subsystems as well as the file 
systems are completely different between the platforms. If the application uses 
JDBC, the performance of the database, and of the network between the JVM and 
the database can easily be the most important component.

I don't think I answered your question, but hopefully I've given you some 
things to think about.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to