March 26, 2012

New Whitepaper: "Java Design and Coding for Virtualized Environments"

Ever wondered why your Java application is not running as smooth as it should in a virtualized environment? There are multiple reasons for this and so Steve Wehr gives some explanation for this in this new whitepaper. This isn't a complete answer and not everything is black and white but it should get you started. The topic covered in the paper are:
  • Why is Virtualization a Problem for Applications?
  • How to Waste CPU in your Java Application
  • How to Waste Memory in your Java Application
  • Best Practices for Java Applications in Virtualized Environments
  • Employ Strategies that Encourage Efficient Application Design for Virtualization
Of course there are other "performance bugs" as well, but from what I see in may daily work running applications in a virtualized environment with shared resources will make those bugs visible.

March 8, 2012

Whitepaper update: "Explore Decimal Floating Point support in Linux on System z"

Since a few years no System z offers hardware support for decimal floating point operations as defined by IEEE 754-2008. This allows for exact and very fast calculations in the decimal (and not the normal binary) system in the processor.

You can check if your system does support this by
cat /proc/cpuinfo | grep features
features        : esan3 zarch stfle msa ldisp eimm dfp edat etf3eh highgprs

If you see a "dfp" in included in the feature list, your system is enabled for decimal floating point.

The new instructions can be used from Java and C/C++. For Java use the java.math.BigDecimal class in a recent JVM. Other languages need compiler and library support and language extensions. ISO/IEC TR 24732 defines this for C and ISO/IEC TR 24733 for C++.

This updated whitepaper describes the details for what's needed to exploit this feature. It includes some performance results as well and all the necessary references

March 7, 2012

New Whitepaper: "WebSphere Application Server Horizontal Versus Vertical JVM Stacking Report"

This new whitepaper addresses the question if one should do a 1:1 consolidation or putting more than one server into a zLinux guest from a performance perspective. The sweet spot for the setup used here was at 10 JVMs per guest.
It also looks at the alternatives for sharing the application binaries between guests using Discontiguous Saved Segments (DCSS) and shared z/VM minidisks. Here it turned out that starting from 10 guests the DCSS setup was more efficient.