Download preprint PDF - Computer Science & Engineering
Transcript
1. Introduction In the ISO standard for software maintenance1 , four categories of maintenance are defined: corrective, adaptive, perfective and preventive maintenance. Perfective maintenance is done with the goal of improving and therefore perfecting a software system after delivery. An interesting application of perfective maintenance is performance maintenance, which is done to enhance the performance of running software by investigating and optimizing the performance after deployment [? ]. A reason to do this after deployment is that it may be too expensive to create a performance testing environment that is equal to the production environment, especially for large systems. As an example, many Software-as-a-Service (SaaS) providers spend a fair portion of their budget each month on hosting infrastructure as infrastructure forms the most important factor in the total data center cost [? ]. Copying the production system to provide an environment for performance testing will further increase these costs. Therefore, it is sometimes necessary to analyze and adapt the deployed system directly. While a large amount of research has been done on software performance engineering in general [? ], only few papers deal with software performance maintenance. Performance maintenance poses different challenges, as we are dealing with live environments in which computing resources may be limited when we are performing maintenance. In addition, experience from industry shows that performance maintenance engineers mainly use combinations of simple and rather inadequate tools and techniques rather than integrated approaches [? ], making performance maintenance a tedious task. Perfecting software performance is typically done by investigating the values of two types of metrics [? ]. On one hand, high-level metrics such as response time and throughput [? ] are important for getting a general idea of the performance state of a system. On the other hand, information retrieved from 1 http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm? csnumber=39064 2