Techniques for Tuning and Virtualizing Large Scale Java Applications

By Dzhingarov

There are many practically proven methods for modulating VMs and JVMs for large scale deployments and running Java on vSphere. The three key trends of tuning large scale Java applications are: Consolidation, Performance, and Elasticity and Flexibility. This article elaborately describes these trends and reveals how different types of JVMs can be tuned using GC recipe.

 

Java Books
By Clive Darra under CC BY-SA 2.0

 

Consolidation

Middleware deployment can be a challenge for Java developers for its proliferative nature and high costs. The customers are inclined towards virtualization as a method of downsizing the number of server instances. Consolidation is also preferred by the customers for rationalizing the number of middleware components for catering to a particular volume of load. Middleware components generally run within JVM (Java Virtual Machine) and offer several opportunities for consolidation of JVM instance. The most commonly observed range for JVM instances is within the scale of 100 to 1000.

Middleware virtualization offers two folds of consolidation, the first instance being the consolidation of server instances, while the second one is the opportunity for consolidating JVM instances. This approach of consolidation is very popular for its cost-effectiveness. It is also possible to consolidate the smaller JVMs simultaneously, while the total number of JVM instances is still fewer. It also improves performance, while maintaining the quality of SLAs.

Some of the customers even made it possible to reduce the cost of third party software license through over-committed CPU in QA and developmental environments. Some other customers have legitimate business requirement for maintaining one JVM per application, or one JVM per every single line of business. Consolidating JVM instances in these cases is quite challenging, as it would result in intermixing of the life cycles of different applications from different lines of business. If the customers are not benefited from removing additional JVM instances via the consolidation of JVM, they can take the advantage of fully utilizing the computer resource on server hardware. In a non-virtualized environment, these benefits are under-utilized.

 

Performance

Virtualizing of large scale Java application is helpful for the performance improvement of middleware platform. A virtualization project includes updated hardware for the betterment of system performance. Another way of performance improvement is powerful VMware hypervisor.

A customer has recently reported the enhanced performance level of Java application with upgraded Commerce, Middleware Services, WCM, Portal, DB2 Database and Service Layer. The project migration from AIX to Linux and virtualization on VMware caused the transaction increment over 150 percent and the application was moved into a three-tier DMZ. The whole approach was useful for enhancing customer experience and significantly lowering the cost. VSphere, VMware and other additional architectural changes improved the performance over 300 percent and enhanced scalability, availability and security. If the same plan is continued with the evolved application and technology, it will ensure 30 percent yearly growth and improved performance.

 

Elasticity and Flexibility

This attribute is necessary for finding applications according to seasonal demands. For example, the marketing campaigns are organized to attract seasonal traffic towards a specific application. VMware is ideal for handling such traffic burst. It is capable of automatically provisioning new middleware components and virtual machines, as and when needed. When the load is reduced, the VMs are automatically broken down. Moreover, the unique ability of middleware to modify the update or patch of different hardware without any interruption is supportive for cloud era scale and uptime.

VMware VMotion allows the movement of the VMs without necessarily stopping the applicators and the VM. Flexibility is one of the key features of virtualization of middleware while managing large scale Java deployments. The customers prefer to use VMotion regularly for handling millions of transactions singlehandedly and scheduling hardware upgrades without wasting any time.