Software Aging Forecasting Using Time Series Model

,


Introduction
One of the main issues in cloud services is software aging, be it Software as a Service (SaaS), Platform as a Service (PaaS) or Infrastructure as a Service (IaaS).Software aging is the type of software fault that reduces the performance of the software system.Software aging happens due to the accumulation of aging related bugs that consume resources leading to resource exhaustion.Aging effects are the result of error accumulation that leads to resource exhaustion.This status of softwares makes the system gradually shift from healthy state to failure prone state.The system performance metrics needs to be monitored in order to find the aging patterns while the system is running.The accurate prediction of time of aging needs to be forecasted to initiate the necessary actions to counter the aging effects.
The software aging consequences can be avoided by using the technique called software rejuvenation.Software rejuvenation is the proactive technique proposed to counter software aging.Software rejuvenation mechanism involves a series of steps such as periodically stopping the application and restarting it after cleaning the internal state.Software rejuvenation executes the actions that include garbage clearance, flushing of buffer queues, reinitializing of the internal kernel tables and cleaning up of the file systems.Intrinsically, it cleans and restores the application operating environment.The rejuvenation methods vary in the approach they employ for carrying out the rejuvenation.Some of the techniques use timebased approach which rejuvenates the system at pre-determined time interval.The other techniques in practice are inspection-based which involves the monitoring of aging indicator metrics and apply rejuvenation mechanism during the forecasted period.As rejuvenation mechanisms employ reboot type of activity, the service may be disrupted which in turn has business impact.
Important research issue is to determine when and how often the software should be rejuvenated and the rejuvenation techniques to be followed to avoid the software aging effects.Usually cloud services have virtualized environment for optimized maintenance.Hence software aging on virtualized environment needs to be addressed.There exists a need to rejuvenate the different layers of the virtualized environment using innovative approaches to enhance the  ISSN: 2502-4752 IJEECS Vol. 8, No. 3, December 2017 : 589 -596 590 service availability by reducing the downtime to zero.The virtualized environment consists of different layers such as physical hardware, hypervisor (VMM), Virtual machines (VM), Operating System and Applications running on top of operating system.The Virtual Machine Monitor (VMM) also called as hypervisor is liable to suffer failures or hangs due to software aging [1].The aging issues in these layers are to be monitored and necessary rejuvenation action to be triggered in order to enhance the service availability and reduce the downtime.
Windows active directory is a necessary service that is used to authenticate the users in the domain network.Software aging of this service may lead to hazardous consequences like service downtime which in turn has business impact.Hence, there exists a need to analyze the software aging patterns in the active directory service for proper estimation of rejuvenation schedule.In this work, analysis is done on live work environment and results are discussed.
The remaining sections, Section 2 presents related work, Section 3 details the software aging study followed by Section 4 that discusses about the results and analysis.The conclusion is covered in Section 5.

Related Work
Researchers have employed different techniques for aging detection and rejuvenation.Previous studies have used measurement-based and model-based rejuvenation approaches.Measurement based approaches directly monitor system variables which are aging indicators and predict software aging patterns by analyzing the collected runtime data statistically.Modelbased studies can be distinguished by the type of stochastic process used to model the phenomenon such as Markov Chains and Petri Nets.
Alonso et al., [2] evaluated machine learning algorithms such as decision trees, K-nearest neighbor, and Random forest using the R statistical language for aging prediction.The researchers used different sets of values when the ML algorithm had parameters to create different configurations of the same algorithm.The results indicated Random Forest performs better than the rest of the models.Toshiaki Hayashi et al., [3] estimated the performance degradation by passively measuring the traffic exchanged by virtual machines.The authors have justified the selection of traffic characteristics as a performance information source by citing several advantages.This data along with the recorded traffic metrics was tested with the C4.5 machine learning classifier that constructed a decision tree to identify performance.This is a non-intrusive method of metrics collection as the traffic measurement is done on separate machine that is not a part of virtual environment.This facilitates the metrics extraction even under extreme performance degradation.
Jing Liu et al., [4] proposed an adaptive failure detection method.The parameters chosen for aging detection are CPU and memory usage; the delay in transmission of packet between service components and aging failure detection module.The collected metrics are encapsulated into a packet and sent to the aging detector module.The procedure used achieves two tasks, packet arrival time and the information it carries.Some failure probability is expected if the message does not arrive on time.The CPU usage and free memory available is used to detect the aging severity.The aging severity is divided into four levels i.e., from L1 to L4. Aging Degree Evaluator module inserts it into centralized failure event queue.Based on aging degree number, this queue is ordered and the top events will be rejuvenated inevitably.
The research work of Yongquan Yan [5] indicates the significance of choosing the proper data set.The researcher proved that choosing the proper data set is more important than the method used to analyze the collected metrics.The work compares the resource utilization of a webserver that is not subjected to artificial load, but a true load which has aging patterns using linear and nonlinear methods.Lei Cui et al. [6] concentrated their work on finding the impact of software aging defect on virtual machine and physical machines.The aging rate in both the forms was calculated and compared.The outcome of this study indicate aging effects are more in virtual machines than physical machines which was caused due to aging effects in code of hypervisor or depletion due additional calls in VMM layer.The outcome of the study of the existing techniques is that there is a scope for research in finding non-intrusive, platform independent and more accurate aging prediction techniques.

The proposed model for software aging forecasting 3.1 Data Collection
In order to find whether the aging patterns exist in long running applications, the study is conducted on long running service Windows Active Directory.For this study, an institute with an approximate user's strength of six thousand is chosen.It is necessary to monitor multiple metrics that reflect broader utilization of the resources.Two metrics are considered for this study i.e., CPU usage and memory availability which are aging indicators.The metrics are collected for a period of six months and analysis is done.The metrics and justification for choosing these aging indicators is given in Table 1.

Statistical analysis of collected data
Statistical analysis of software aging helps in collecting and scrutinizing collected metrics and finding software aging indicators.The presented analysis considers a period of six months.The monitoring interval was of two hours.Figure 4 has the results of CPU usage percentage of virtual machine that runs active directory.The Figure 5 depicts the results of Memory consumption.The plots also contain an approximated linear function of CPU usage behavior.
Software aging data analysis generally uses Mann-Kendall test to evaluate trend in the data [7][8][9].The Mann-Kendall test [10] checks the null hypothesis, H0, which shows that there is no trend in the data during the time, against the alternative hypothesis, H1, which indicates an upward or a downward monotonic trend in the data.As software aging is a cumulative process, the Mann-Kendall test can be used to reveal trends of software internal state degradation.Among Mann-Kendall tests results we have the Z-value which is used to accept or reject the null hypothesis.Z-value close to zero suggests no trend in the data; a high absolute value indicates the existence of a trend.Figure 4   The Table 2 presents the results of statistical analysis made in the data.The results show Mann-Kendall Z-value is high than zero.Therefore, it is possible to reject the null hypothesis (no trend in the data).The positive value indicates an upward monotonic trend in the data.To calculate the slope of the monotonic trend, we used the Sen Method [11].The Table 2 also presents the estimated slope and the 95% confidence interval for this slope.

Prediction using time series forecasting
This section discusses the proposed software aging forecasting model.To prevent the system crash, it is necessary to predict resource exhaustion time.The CPU usage metrics has been tabulated in the Table 3.The data from different time slots of a day that were captured are entered in a table.This is because number of users (load) varies at different time slots.Average values of the CPU consumption percentage are tabulated.Based on this, moving average of four slots is calculated.Moving average (MA) is a calculation to analyze data points by creating series of averages of different subsets of the full data set.In this scenario, MA is calculated on average value of CPU usage metric.The moving average is taken from an equal number of data on either side of a central value.This ensures that variations in the mean are aligned with the variations in the data rather than being shifted in time.Once the values are smoothed using moving average method, it can be further smoothed by center moving average method, a special procedure applied when the number of seasons is even.The relevant graph is shown in figure 6.
--- The next step is to deseasonalize the data.This can be achieved by dividing the time series data with seasonal component.So far, we have removed the irregularities and deseasonalized the data.The next step is to find the trend component.In order to get trend component, Simple Linear Regression is to be performed using deseasonlized data as Y variable and time as X variable.The Simple Linear Regression and Co-efficients, Y Intercept and Slope obtained are 44.11 and 1.33 respectively.Now, the trend component can be obtained by using the formula, The final values, predictions can be obtained by multiplying seasonal component with trend component.The summary data is presented in the Table 4.

Results and Discussions
In order to evaluate the accuracy of the proposed technique, forecasting of the values is done for already collected metrics.The results indicate that the predicted values are accurate.The The predictions done here are for one day.The same technique can be used for forecasting the values of aging indicators for upcoming week or a month.The aging indicators taken here are CPU usage percentage and memory availability percentage.The other significant parameter to be used here is the threshold value of aging indicator.i,e, maximum load tolerable by the system.The threshold value can be obtained by studying the history of the service like when the system was crashed, the reason for failure and what were the value of parameters.Once the threshold values are identified, the weights are assigned to these parameters depending on whether the system is processor intensive application or memory intensive application.By varying the weights and the threshold, we can get different models of decision-making.The inputs to the model are x1 and x2 that indicate CPU usage and memory availability which are aging indicators.The weights w1 and w2 are assigned depending on the type of application.Depending on whether the weighted sum ∑ j w j x j is less than or greater than some predetermined value, rejuvenation can be triggered.

Conclusion
The proposed forecasting technique can be a potential candidate for software aging prediction.As more and more educational institutes are using private cloud services as a part of their IT infrastructure, ensuring the continuous service delivery is important.This work helps in having better rejuvenation schedules thus avoiding downtime.

IJEECS
ISSN: 2502-4752  Software Aging Forecasting Using Time Series Model (I.M. Umesh) 591 Aging indicator Description CPU usageSystem-wide aging indicator that updates CPU load in percentage Memory availability System-wide aging indicator that updates available memory in percentageTo capture the data, a Network Monitoring tool called PRTG (Paessler Router Traffic Grapher) is used.Figure1& 2 depict the workload graphs during the data collection.

Figure 1 .
Figure 1.CPU workload graph during the metrics collection

Figure 2 .
Figure 2. Memory Availability graph during the metrics collection

Figure 3 .
Figure 3. Performance overhead of metrics collector and Figure 5 indicate the CPU usage trend and memory usage trend respectively.

Figure 6 .
Figure 6.Graph indicating CPU usage and center moving average

Figure 7 .
Figure 7.Comparison of actual values with predicted values

Table 2 .
Statistical Analysis

Table 3 .
Predictions using time series

Table 4 .
Summary Data