Article Preview
TopIntroduction
As increasing software complexity, some phenomena, such as performance degradation, unplanned downtime, have been found in many systems: operating system (Cotroneo, 2010), web server (Grottke, 2006), communication system (Hoffmann, 2007), android system (Huo, 2018), stream processing system (Ficco, 2018), and so on. These phenomena are called software aging problems (Varasteh, 2017), which are influenced by many factors, such as memory leak, unreleased file connection, round-off error due to software bugs. Software bugs can be classified into two types of bugs, Mandelbug (Grottke, 2007) and Bohrbug. Software aging bug is mainly involved in Mandelbug which can be hardly reproduced in the same situations. So, the traditional tolerance technologies, such as multiple replicas, cannot solve the software aging problems. These problems can be settled by a method called software rejuvenation, which reboot the software system suffered from software aging problems, clean the internal states and make the software system enter into a fresh state.
The main motivation for software aging and rejuvenation research is the desire to find software aging phenomenon in advance and make a software system enter into a robust state with a high service quality. Since resource consumption is a key factor to influence software state and software state can be represented as time series, many studies concentrate on building a series processing model to forecast the future events of software state.
A resource consumption series is composed of a natural measurement or observation process which is made sequentially in time. All kinds of methods, which can be classified into linear methods and nonlinear methods, are used to forecast resource consumption. Among various linear methods, autoregressive and autoregressive integrated moving average (in abbreviated form, ARIMA) (Box, 1970) models are the most used approaches in practice. Although a resource consumption series owns linear characteristics in a short time span, it shows nonlinear feature in the long run. Artificial neural network methods, which are biologically inspired models that are typically made up of simple connected computing units in some ways, are most used nonlinear methods.
Also, linear and nonlinear models (Zhang, 2018) can be divided into global and local models by the modeling process. In global models, only a model is used to train the collected data, such as autoregressive model and radial basis function network. Global methods give the best results with stationary resource consumption series. However, when the resource consumption series is nonstationary, it is difficult to find a suitable model and often some methods, such as difference method, can be used to make the series stationary.
In the past years, local methods, such as self-organizing map, have arisen enough interest, since they can solve some problems in the global methods (Singer, 1992). In the local methods, the dataset is divided into some smaller datasets and these datasets are executed with some clustering or quantization algorithms such as k- means or neural gas. After clustering the data, the local method is used to train the local data.