8th International Conference on Performance Evaluation Methodologies and Tools

Research Article

Automatic Application Performance Improvements through VM Parameter Modification after Runtime Behavior Analysis

Download879 downloads
  • @INPROCEEDINGS{10.4108/icst.valuetools.2014.258196,
        author={Kenneth Kent and Nicolas Neu and Charlie Gracie and Andre Hinkenjann},
        title={Automatic Application Performance Improvements through VM Parameter Modification after Runtime Behavior Analysis},
        proceedings={8th International Conference on Performance Evaluation Methodologies and Tools},
        publisher={ICST},
        proceedings_a={VALUETOOLS},
        year={2015},
        month={2},
        keywords={java virtual machine garbage collection performance optimizations},
        doi={10.4108/icst.valuetools.2014.258196}
    }
    
  • Kenneth Kent
    Nicolas Neu
    Charlie Gracie
    Andre Hinkenjann
    Year: 2015
    Automatic Application Performance Improvements through VM Parameter Modification after Runtime Behavior Analysis
    VALUETOOLS
    ICST
    DOI: 10.4108/icst.valuetools.2014.258196
Kenneth Kent1,*, Nicolas Neu1, Charlie Gracie2, Andre Hinkenjann3
  • 1: University of New Brunswick
  • 2: IBM
  • 3: Hochschule Bonn-Rhein-Sieg
*Contact email: ken@unb.ca

Abstract

This article describes an approach to rapidly prototype the parameters of a Java application run on the IBM J9 Virtual Machine in order to improve its performance. It works by analyzing VM output and searching for behavioral patterns. These patterns are matched against a list of known patterns for which rules exist that specify how to adapt the VM to a given application. Adapting the application is done by adding parameters and changing existing ones. The process is fully automated and carried out by a toolkit. The toolkit iteratively cycles through multiple possible parameter sets, benchmarks them and proposes the best alternative to the user. The user can, without any prior knowledge about the Java application or the VM improve the performance of the deployed application and quickly cycle through a multitude of different settings to benchmark them. When tested with the representative benchmarks, improvements of up to 150% were achieved.