Automated Performance Profiling of Software Applications

Sammanfattning: For industrial systems performance, it is desired to keep the IT infrastructure competitive through the efficient use of computer resources. However, modern software applications are complex and often utilize a broad spectrum of available hardware resources. The way how applications utilize these resources may vary from platform to platform due to the different architectural features, requirements and performance levels guaranteed by the hardware as well as due to the type of application under analysis. It becomes challenging to predict how the deployed applications will perform on a particular platform, how to improve the hardware resource utilization, and how to meet the Quality of Service (QoS) requirements.  Computers these days enable us to precisely trace down the performance of applications using the Performance Monitoring Counters (PMCs) available in the Performance Monitoring Unit (PMU) of the processors. PMCs can record micro-architectural events, called PMU events, at the CPU cycle level. Tools like perf API and PAPI provide performance information using manual and selective function calls. Nevertheless, it is difficult for humans to make analyses, visualize performance over time and draw conclusions from this wealth of data without automatic and intelligent tools.   In this thesis, our first contribution is to propose a cross-platform automated approach to investigate the overall performance profile of the applications. Instead of relying on a static and pre-selected list of hardware and software performance events we avoid the selection bias by capturing the entire range of performance events specific to the platform on which applications are running.   The performance data being generated from shared resource environments and hierarchical resource utilization demands makes it harder to represent the behavior in one model. That being the case, it was deemed appropriate to demonstrate the compact representation of behavior. So, our next contribution is to present a simplified model to understand the behavior of performance events. Therefore, we determine segments in performance data by locating the points in their data distribution using the change point detection method. The proposed solution reduces the complexity of data handling, allows the application of further statistical analyses and provides better visualization.  Lastly, to reveal the out-of-sight information, we present a customized approach to automatically identify the groups of similar performance events based on the change in their behavior. There can be several ways to group the performance data, we opt to form the groups based on change points in the behavior of the performance events. The knowledge can then be used by the decision-makers as per their interests such as for load balancing, deployments, scheduling and anomalous behavior detection. 

  Denna avhandling är EVENTUELLT nedladdningsbar som PDF. Kolla denna länk för att se om den går att ladda ner.