Article Preview
Top1. Introduction
It has been reported that 9% of overall business revenues (Bixby, 2010) is affected by application performance problems. Taking the most popular web service as an example, when the web server runs in a very long time, the system cannot respond quickly for the upcoming request. Even worse, it may not respond any requests even if the workload level is modest. In generally, this performance degradation does not show an instantaneous failure. This performance degradation phenomenon may last a few days or even several weeks, if there is no any manual intervention. This phenomenon of performance degradation, unplanned software outages, or suddenly failure is called software aging (Cotroneo, Natella, Pietrantuono, & Russo, 2014), smooth degradation (Alencar, Santos, Santana, & Fernandes, 2014), or chronics (Kavulya et al., 2012). In this work, we call it as software aging.
In fact, software aging is a consequence of problems with the software itself. When a fault is activated, an error will appear as part of the internal state of the software system. When multiple errors sufficiently accumulate and the proliferation of errors reaches the service interface of the software system, the system will incur performance degradation, or even failure. Fig. 1 gives chain of software failure.
Figure 1. Chain of software failure
In order to counteract problems caused by software aging, Huang, Kintala, Kolettis, and Fulton (1995) proposed the technique of software rejuvenation, including occasionally ceasing software application, removing accumulated error environments and then rebooting application. However, execution of software rejuvenation can cause both direct and indirect costs during the downtime of the system. In order to minimize the loss caused by rejuvenation, the implementation of software rejuvenation need be executed based on the current state of the system. There are two core problems which need be solved to identify system state and execute rejuvenation.
This paper, which gives a practice framework for forecasting software aging using a classification algorithm, focuses on these two problems. Firstly, we propose two feature selection algorithms to choose a subset of variables of operating system and application system. Secondly, a classification algorithm called support vector machine (SVM) is carefully analyzed and used to model the software aging process through the collected variables of an IIS web server that is a running commercial server. Lastly, statistical analysis is used to analyze the performance between SVM and artificial neural network (ANN).