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