Predicting Software Abnormal State by using Classification Algorithm

Predicting Software Abnormal State by using Classification Algorithm

Yongquan Yan (School of Computer Science and Technology, Beijing Institute of Technology, Beijing, China) and Ping Guo (School of System Science, Beijing Normal University, Beijing, China)
Copyright: © 2016 |Pages: 17
DOI: 10.4018/JDM.2016040103
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Software aging, also called smooth degradation or chronics, has been observed in a long running software application, accompanied by performance degradation, hang/crash failures or both. The key for software aging problem is how to fast and accurately detect software aging occurrence, which is a hard work due to the long delay before aging appearance. In this paper, two problems about software aging prediction are solved, which are how to accurately find proper running software system variables to represent system state and how to predict software aging state in a running software system with a minor error rate. Firstly, the authors use proposed stepwise forward selection algorithm and stepwise backward selection algorithm to find a proper subset of variables set. Secondly, a classification algorithm is used to model software aging process. Lastly, t-test with k-fold cross validation is used to compare performance of two classification algorithms. In the experiments, the authors find that their proposed method is an efficient way to forecast software aging problems in advance.
Article Preview

1. 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.

  • Problem 1:

    How to accurately find proper system and application variables to represent system state for running software.

  • Problem 2:

    How to predict software aging state in a running software system with a minor error rate.

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).

Complete Article List

Search this Journal:
Reset
Open Access Articles
Volume 28: 4 Issues (2017): 3 Released, 1 Forthcoming
Volume 27: 4 Issues (2016)
Volume 26: 4 Issues (2015)
Volume 25: 4 Issues (2014)
Volume 24: 4 Issues (2013)
Volume 23: 4 Issues (2012)
Volume 22: 4 Issues (2011)
Volume 21: 4 Issues (2010)
Volume 20: 4 Issues (2009)
Volume 19: 4 Issues (2008)
Volume 18: 4 Issues (2007)
Volume 17: 4 Issues (2006)
Volume 16: 4 Issues (2005)
Volume 15: 4 Issues (2004)
Volume 14: 4 Issues (2003)
Volume 13: 4 Issues (2002)
Volume 12: 4 Issues (2001)
Volume 11: 4 Issues (2000)
Volume 10: 4 Issues (1999)
Volume 9: 4 Issues (1998)
Volume 8: 4 Issues (1997)
Volume 7: 4 Issues (1996)
Volume 6: 4 Issues (1995)
Volume 5: 4 Issues (1994)
Volume 4: 4 Issues (1993)
Volume 3: 4 Issues (1992)
Volume 2: 4 Issues (1991)
Volume 1: 2 Issues (1990)
View Complete Journal Contents Listing