Abstract:
An unsupervised behavior learning system and method for predicting anomalies in a distributed computing infrastructure. The distributed computing infrastructure includes a plurality of computer machines. The system includes a first computer machine and a second computer machine. The second computer machine is configured to generate a model of normal and anomalous behavior of the first computer machine, where the model is based on unlabeled training data. The second computer machine is also configured to acquire real-time data of system level metrics of the first machine; determine whether the real-time data is normal or anomalous based on a comparison of the real-time data to the model; and predict a future failure of the first computer machine based on multiple consecutive comparisons of the real-time data to the model. Upon predicting a future failure of the first computer machine, generate a ranked set of system-level metrics which are contributors to the predicted failure of the first computer machine, and generate an alarm that includes the ranked set of system-level metrics. The model of normal and anomalous behavior may include a self-organizing map.

Description:
RELATED APPLICATIONS 
       [0001]    This patent application claims priority from U.S. Provisional Application No. 61/875,439 filed Sep. 9, 2013, entitled, “UNSUPERVISED BEHAVIOR LEARNING SYSTEM AND METHOD FOR PREDICTING PERFORMANCE ANOMALIES IN DISTRIBUTED COMPUTING INFRASTRUCTURES,” and U.S. Provisional Application No. 61/876,097 filed Sep. 10, 2013, entitled, “UNSUPERVISED BEHAVIOR LEARNING SYSTEM AND METHOD FOR PREDICTING PERFORMANCE ANOMALIES IN DISTRIBUTED COMPUTING INFRASTRUCTURES,” the disclosures of which are incorporated herein, in their entirety, by reference. 
     
    
     STATEMENT OF GOVERNMENT INTEREST 
       [0002]    This invention was made with government support under Contract No. 550816, awarded by the U.S. National Science Foundation, and Contract No. 552318, awarded by the U.S. Army Research Office. The government has certain rights in the invention. 
     
    
     BACKGROUND 
       [0003]    The present invention relates to unsupervised behavior learning and anomaly prediction in a distributed computing infrastructure. In one particular example, the invention is implemented in an Infrastructure-as-a-Service (“IaaS”) cloud system. 
         [0004]    IaaS cloud systems allow users to lease computing resources in a pay-as-you-go fashion. In general, a cloud system includes a large number of computers that are connected through a real-time communication network (e.g., the Internet, Local Area Network, etc.) and can run numerous physical machines (“PMs”) or virtual machines (“VMs”) simultaneously. A VM is a software-based implementation of a computer that emulates the computer architecture and functions of a real world computer. Due to their inherent complexity and sharing nature, cloud systems are prone to performance anomalies due to various reasons such as resource contentions, software bugs, and hardware failures. It is difficult for system administrators to manually keep track of the execution status of tens of thousands of PM or VMs. Moreover, delayed anomaly detection can cause long service delays, which is often associated with a large financial penalty. 
         [0005]    Predicting and detecting anomalies, faults, and failures is of interest to the computing community as the unpredicted or surprise failure of a computing system can have numerous negative impacts. Broadly, contemplated approaches of failure prediction can include supervised learning methods and unsupervised learning methods. Supervised learning methods rely on labeled training data to accurately identify previously known anomalies. Unsupervised learning methods do not require labeled training to identify anomalies. These methods can be further divided into anomaly detection schemes and anomaly prediction schemes. Anomaly detection schemes identify a failure at the moment of failure, while anomaly prediction schemes try to predict a failure before it occurs. 
       SUMMARY 
       [0006]    Some embodiments of the invention provide an unsupervised behavior learning (“UBL”) system for predicting anomalies in a distributed computing infrastructure, which in one embodiment is a virtualized cloud computing system that runs application VMs. The system uses an unsupervised learning method or technique called Self Organizing Map (“SOM”) to capture the patterns of normal operation of all the application VMs. The unsupervised learning method does not require labeled training data. To predict anomalies, the system looks for early deviations from normal system behaviors. Upon predicting an anomaly, the system can provide a warning that specifies the metrics that are the top contributors to the anomaly. 
         [0007]    Other embodiments of the invention provide a method of predicting performance anomalies in a distributed computing infrastructure, which in one embodiment is a virtualized cloud system, with unsupervised behavior learning. The method begins with a behavior learning phase. In the behavior learning phase, the method develops a model of normal and anomalous behavior of the system with a SOM training process that does not require labeled training data. Next, the method proceeds into a performance anomaly prediction phase. In the performance anomaly prediction phase, the method receives and compares real-time data with the SOM to determine if the system&#39;s current behavior is normal or anomalous. The method predicts a future system failure when numerous consecutive samples of real-time data indicate anomalous system behavior. Upon predicting a system failure, the method proceeds into performance anomaly cause inference phase. In the performance anomaly cause inference phase, the method identifies a ranked set of system-level metrics which are the top contributors to the predicted system failure. The method raises an alarm that includes the ranked set of system-level metrics. 
         [0008]    In addition, certain embodiments of the invention provide a method of predicting performance anomalies in a first computer machine in a distributed computing infrastructure with a second computer machine using unsupervised behavior learning. The method includes generating, by the second computer machine, a model of normal and anomalous behavior for the first computer machine based on unlabeled training data; acquiring, by the second computer machine, real-time data of system level metrics for the first computer machine; and determining, by the second computer machine, whether the real-time data is normal or anomalous based on a comparison of the real-time data to the model. The method also includes predicting, by the second computer machine, a future system failure of the first computer machine based on multiple consecutive comparisons of the real-time data to the model. Upon predicting a future system failure, the second computer machine generates a ranked set of system-level metrics which are contributors to the predicted system failure of the first computer machine, and generates an alarm that includes the ranked set of system-level metrics. 
         [0009]    The act of generating a model of normal and anomalous behavior may include generating a self-organizing map. 
         [0010]    In still another embodiment or aspect, the invention provides an unsupervised behavior learning system for predicting anomalies in a distributed computing infrastructure. The distributed computing infrastructure includes a plurality of computer machines. The system includes a first computer machine and a second computer machine. The second computer machine is configured to generate a model of normal and anomalous behavior of the first computer machine, where the model is based on unlabeled training data. The second computer machine is also configured to acquire real-time data of system level metrics of the first machine; determine whether the real-time data is normal or anomalous based on a comparison of the real-time data to the model; and predict a future failure of the first computer machine based on multiple consecutive comparisons of the real-time data to the model. Upon predicting a future failure of the first computer machine, generate a ranked set of system-level metrics which are contributors to the predicted failure of the first computer machine, and generate an alarm that includes the ranked set of system-level metrics. The model of normal and anomalous behavior may include a self-organizing map. 
         [0011]    Other aspects of the invention will become apparent by consideration of the detailed description and accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  illustrates a distributed computing infrastructure. 
           [0013]      FIG. 2  illustrates a process for operating the UBL system in  FIG. 1  to predict performance anomalies. 
           [0014]      FIG. 3  illustrates a process for operating the UBL system in  FIG. 1  to perform behavior learning. 
           [0015]      FIG. 4  illustrates a process for operating the UBL system in  FIG. 1  to update a SOM. 
           [0016]      FIG. 5  illustrates an exemplary iteration of the process in  FIG. 4 . 
           [0017]      FIG. 6  illustrates a process for operating the UBL system in  FIG. 1  to perform performance anomaly prediction. 
           [0018]      FIG. 6  illustrates a process for operating the UBL system in  FIG. 1  to perform performance anomaly prediction. 
           [0019]      FIG. 7  illustrates an exemplary system failure of the UBL system in  FIG. 1 . 
           [0020]      FIG. 8  illustrates an exemplary SOM model after the behavior learning phase. 
           [0021]      FIG. 9  illustrates an exemplary SOM model after the behavior learning phase. 
           [0022]      FIG. 10  illustrates a process for operating the UBL system in  FIG. 1  to perform anomaly cause inference. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]    Before any embodiments and aspects of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the examples provided, the embodiments discussed, or to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. 
         [0024]    Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. A plurality of hardware and software based devices, as well as a plurality of different structural components may be utilized to implement the invention. 
         [0025]    A distributed computing infrastructure includes a large number of computers that are connected through one or more communications networks, such as a real-time communications networks.  FIG. 1  illustrates an exemplary distributed computing infrastructure  10  that includes, among other components, a first computer machine  12 , a second computer machine  14 , and a communication network  16 . A computer machine is either a physical machine (e.g., a computer) or a virtual machine that runs on one or more computers. Each computer includes a processor (such as a CPU or a microprocessor), memory (RAM, ROM, etc.), and I/O elements, and one or more peripherals (e.g., display, keyboard, mouse, etc.). The second computer machine  16  includes, among other components, an unsupervised behavior learning (“UBL”) system  18 . 
         [0026]    In some implementations, the UBL system  18  is a virtual module that runs on a distributed computing infrastructure such as the Xen platform. The UBL system  18  is scalable and can induce behavior models for a large number of application components on-the-fly without imposing excessive learning overhead. Production distributed infrastructures typically have less than 100% resource utilization. The UBL system  18  utilizes these residual resources to perform behavior learning as background tasks that are co-located with different application VMs (e.g., foreground tasks) on distributed hosts. 
         [0027]      FIG. 2  illustrates an exemplary process  20  of operating the UBL system  18  to predict performance anomalies in the first computer device  12 . The steps of the process  20  are described in an iterative manner for descriptive purposes. Various steps described herein with respect to the process  20  are capable of being executed simultaneously, in parallel, or in an order that differs from the illustrated serial and iterative manner of execution. The process  20  includes, among other steps, a behavior learning phase (step  22 ), a performance anomaly prediction phase (step  24 ), and a performance anomaly cause inference phase (step  26 ). 
         [0028]    In the behavior learning phase (step  22 ), the UBL system  18  determines a model that represents normal system behavior of a VM (e.g., the first computer machine  12 ). In some implementations, the model is a SOM. The SOM maps a high dimensional input space into a low dimensional map space while preserving the topological properties of the original input space (i.e., two similar samples will be projected to close positions in the map). The UBL system  18  can dynamically induce a SOM for each VM of the virtualized distributed computing infrastructure  10  to capture the different VM behaviors. The SOM is composed of a set of nodes. The nodes are referred to as “neurons.” The neurons are arranged in a lattice formation. In some implementations, the neurons are arranged in a gird formation. Each neuron is associated with a weight vector W(t) and a coordinate in the SOM. The SOM is developed based on a plurality of measurement vectors D(t)=[x 1 , x 2 , . . . , x n ] included in a set of unlabeled training data, where x i  denotes one system-level metric (e.g., CPU, memory, disk I/O, or network traffic) of a VM at time instance t. The weight vectors are the same length as the measurement vectors (i.e., D(t)). 
         [0029]      FIG. 3  illustrates an exemplary process  30  for operating the UBL system  18  to perform the behavior learning phase  22 . The UBL system  18  receives a set of unlabeled training data (step  31 ). The set of unlabeled training data includes a plurality of measurements vectors. The UBL system  18  updates the SOM for each measurement vector in the plurality of measurement vectors (step  32 ). Next, the UBL system  18  calculates a neighborhood area size for each neuron in the SOM (step  33 ). The UBL system  18  calculates a neuron&#39;s neighborhood area size by examining each neuron&#39;s immediate neighbors. In the two-dimensional lattice topography, immediate neighbors include the top, left, right, and bottom neighbors. In some implementations, the UBL system  18  calculates the Manhattan distance between the neuron and its neighbor. The Manhattan distance between two neurons N i , N j , with weight vectors W i =[w 1,i , . . . , w k,i ], W j =[w 1,j , . . . , w k,j ] respectfully, is: 
         [0000]    
       
         
           
             
               M 
                
               
                 ( 
                 
                   
                     N 
                     i 
                   
                   , 
                   
                     N 
                     j 
                   
                 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   l 
                   = 
                   1 
                 
                 k 
               
                
               
                   
               
                
               
                  
                 
                   
                     w 
                     
                       l 
                       , 
                       i 
                     
                   
                   - 
                   
                     w 
                     
                       l 
                       , 
                       j 
                     
                   
                 
                  
               
             
           
         
       
     
         [0030]    The neighborhood area size for neuron is the sum of the Manhattan distance between the neuron N i  and its top, left, right, and bottom immediate neighbors denoted by N T , N L , N R , and N B : 
         [0000]    
       
         
           
             
               S 
                
               
                 ( 
                 
                   N 
                   i 
                 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   X 
                   ∈ 
                   
                     { 
                     
                       
                         N 
                         T 
                       
                       , 
                       
                         N 
                         L 
                       
                       , 
                       
                         N 
                         R 
                       
                       , 
                       
                         N 
                         B 
                       
                     
                     } 
                   
                 
                 
                     
                 
               
                
               
                   
               
                
               
                 M 
                  
                 
                   ( 
                   
                     
                       N 
                       i 
                     
                     , 
                     X 
                   
                   ) 
                 
               
             
           
         
       
     
         [0031]    Next, the UBL system  18  sorts all of the calculated neighborhood area size values (step  34 ) and sets a threshold value to be the neighbor area size value at a predetermined percentile (step  35 ). In some implementations, the predetermined percentile value is 85%. Other percentile values are used in different implementations. 
         [0032]      FIG. 4  illustrates an exemplary process  40  for operating the UBL system  18  to update the SOM based on a measurement vector from a set of unlabeled training data. The UBL system  18  receives an input measurement vector from the set of unlabeled training data (step  42 ). The UBL system  18  compares a Euclidean distance of the input measurement vector to each different neuron&#39;s weight vector in the SOM (step  44 ). Next, the UBL system  18  selects the neuron with the smallest Euclidean distance as the currently trained neuron (step  46 ). Then, the UBL system  18  updates the weight vectors of the currently trained neuron and the neurons that are in the neighborhood of the currently trained neuron (step  48 ). In some implementations, any neuron that is in a radius of r units from the currently trained neuron is considered to be inside the neighborhood. An exemplary formula, used by the method, for updating the weight vector of any neuron at time t is: 
         [0000]        W ( t+ 1)= W ( t )+ N ( v,t )· L ( t   0 ·( D ( t )− W ( t ))
 
         [0033]    N(v,t) is a neighborhood function (e.g., a Gaussian function) which depends on the lattice distance to a neighbor neuron v. L (t) is a learning coefficient that can be applied to modify how much each weight vector is changed in different iterations of the behavior learning phase. 
         [0034]      FIG. 5  illustrates an exemplary iteration of process  40 . In this exemplary iteration, the SOM includes 9 neurons. The weight vectors for each neuron in SOM  52  represent the values before the SOM is updated with an input measurement vector  54 . In this exemplary iteration, the input measurement vector  54  is [0, 2, 4]. The weight vectors in SOM  56  represent the values after the SOM is updated with the input measurement vector  54 . The UBL system  18  selects neuron 1 as the currently trained neuron because it has the smallest Euclidean distance to the input measurement vector  54 . The UBL system  18  updates the weight vector of neuron 1. In this exemplary iteration: r=1, L=1, and N=1/4. Accordingly, the UBL system  18  updates the weight vectors of neurons 2, 4, and 5 as they are in the neighborhood of neuron 1. The neighborhood function used in this exemplary iteration is simple and only intended to help illustrate the process. It is to be understood that more complex neighborhood functions are used in other implementations of the invention. 
         [0035]      FIG. 6  illustrates an exemplary process  60  for operating the UBL system  18  to perform the performance anomaly prediction phase  24 . The UBL system  18  receives a real-time input measurement vector (step  61 ). The UBL system  18  maps the real-time input measurement vector to a neuron in the SOM (step  62 ). In some implementations, the UBL system  18  performs mapping with the same Euclidean distance metric used in the behavior learning phase  22 . Next, the UBL system  18  compares the neighborhood area size value (i.e., S(N i )) of the neuron that the real-time input measurement vector is mapped to with the set threshold (step  63 ). The UBL system  18  classifies the real-time input measurement vector as normal, if it is mapped to a neuron with a neighborhood area size value that is below the threshold (step  64 ). On the other hand, the UBL system  18  classifies a real-time input measurement vector as anomalous, if it is mapped to a neuron with a neighborhood area size that is greater than or equal to the threshold (step  65 ). The UBL system  18  determines if a threshold number of consecutive anomalous real-time input measurement vectors have occurred (step  66 ). If a threshold number of consecutive anomalous real-time measurement vectors have occurred, the UBL system  18  outputs an alarm (step  67 ). In some implementations, the UBL system  18  output the alarm if three consecutive anomalous real-time measurement vectors have occurred. In other implementations, the UBL system  18  uses a threshold number other than three. 
         [0036]    Performance anomalies, such as long service level objective (“SLO”) time violations, in distributed infrastructures often manifest as anomalous changes in system-level metrics. Faults do not always cause an instantaneous SLO failure. Instead there is a time window from when the faults occur to the actual time of failure. Therefore, at any given time, the first computer machine  12  can be thought to be operating in one of three states: normal, pre-failure, and failure.  FIG. 7  illustrates an exemplary system failure where the UBL system  18  follows a path through SOM  70  over time. The first computer machine  12  typically enters the pre-failure state before entering the failure state. Neurons 1-8 in SOM  70  represent normal state neurons. Neurons 9-13 in SOM  70  represent pre-failure state neurons. Neurons 14-16 in SOM  70  represent failure state neurons. The arrows in SOM  70  represent the evolving path of the UBL system  18 . 
         [0037]      FIGS. 8 and 9  illustrate two example SOM models after the behavior learning phase.  FIG. 8  illustrates a SOM model for a RUBiS web server with a network hog bug. RUBiS is an online auction benchmark.  FIG. 9  illustrates a SOM model for an IBM System S with a memory leak bug. IBM System S is a commercial stream processing system. In  FIGS. 8 and 9 , the X axis and Y axis represent the coordinates of the neurons and the gray-scale visualization identifies behavior patterns. Darker neurons represent anomalous behavior while lighter neurons represent normal behaviors. 
         [0038]    Upon deciding to raise an alarm, the UBL system  18  enters the performance anomaly cause inference phase  26 . In this phase, the UBL system  18  determines and outputs the system-level metrics that differ the most as faulty metrics.  FIG. 10  illustrates an exemplary process  100  for operating the UBL system  18  to perform the performance anomaly cause inference phase  26 . The UBL system  18  determines a set of normal neurons that are nearby to the anomalous neuron which the last real-time input measurement vector was mapped to (step  102 ). In some implementations, if a neighbor neuron has a neighborhood area value that is above the threshold, the UBL system  18  ignores it and moves on to the next neuron in the neighborhood. If no normal neuron is found in the anomalous neuron&#39;s neighborhood, the UBL system  18  expands the distance calculation to include more neurons in the SOM. 
         [0039]    Next, the UBL system  18  determines a set of metric ranking lists (step  104 ) by calculating the differences between the individual metric values of each normal neuron in the set and the individual metric values of the anomalous neuron. For each metric ranking list in the set, the UBL system  18  determines the absolute value of the calculated difference and sorts the metric differences from the highest to the lowest in order to determine a ranking order. 
         [0040]    Then, the UBL system  18  determines a final ranking order for each of the rankings (step  106 ). In some implementations, the final ranking order is determined using majority voting. The UBL system  18  ascertains a first ranked metric by comparing the top ranked metric from each ranking list. The metric that is in the most ranking lists as the top ranked metric is set as the first ranked metric. The UBL system  18  repeats the above process to determine the final ranking of all of the other metrics. In the case of a tie, the UBL system  18  selects the metric that happens to be placed first in the final ranking list construction. 
         [0041]    After determining a final ranking list for the metrics of the anomalous neuron, the UBL system  18  raises an alarm that contains the final ranking list of metrics (step  108 ). 
         [0042]    In some implementations, the UBL system  18  performs retraining in the performance anomaly prediction phase  26 . In some implementations, retraining includes updating the weight vectors of the SOM with real-time input measurement vectors, similar to processes used in the behavior learning phase  22 . In some implementations, retraining also includes recalculating the neighborhood area size for each neuron in the SOM using the updated weight vectors. In some implementations, retraining occurs for each real-time input measurement vector after it has been mapped to a neuron and identified as normal or anomalous. In some implementations, retraining occurs for a plurality of real-time input measurement vectors after the plurality of real-time input measurement vectors have all been mapped to a neuron and identified as normal or anomalous. In some implementations, retraining occurs if a plurality of system failures occur and the method did not predict them. In some implementations, retraining occurs if the method predicts a large number of anomalies within a predetermined time frame. 
         [0043]    If is to be understood that the unsupervised behavior learning, performance anomaly prediction, and performance anomaly cause inference methods described above can also be implemented on a distributed computing infrastructure that runs application PMs. 
         [0044]    Thus, the invention provides, among other things, mechanisms for assessing the performance of a computing system. Various features and advantages of the invention are set forth in the following claims.