UTILIZING MICROSERVICE REQUEST TRACES TO ENHANCE WORKLOAD PREDICTION
Container orchestration systems, such as Kubernetes, often rely on manual resource allocation to manage resources, which can be inefficient and inflexible due to frequent over-provisioning or underprovisioning. Kubernetes horizontal pod autoscaler (HPA), vertical pod autoscaler (VPA), and Google Kubernetes Engine (GKE) Autopilot are primarily threshold-based, making them reactive rather than proactive since they adjust resources after exceeding utilization thresholds, leading to temporary degradation in quality of service~(QoS). While some solutions utilize calls per minute (CPM) counts for requests to microservices to estimate resource consumption dynamically, they do not fully exploit distributed traces or associated microservices' interdependencies. This thesis hypothesizes that more profound insights into future workload patterns can be gained by exploiting microservices' interaction and the CPM counts for each pair of communicating microservices. This thesis proposes a comprehensive machine learning workflow to assess whether factoring in the interdependencies between microservices results in improved workload prediction. The findings of this study indicate that a long short-term memory (LSTM) model performs well, with average mean absolute error (MAE) and root mean square error (RMSE) values of 7.02 and 10.54, respectively. The highest \(R^2\) score observed was 0.07. This suggests that although incorporating distributed traces and inter-microservice CPM counts provides valuable insights, the models fail to capture the full complexity of workload dynamics. These results highlight the potential for enhancing workload prediction accuracy and underscore the need to refine these methods further to achieve more proactive and efficient resource allocation in container orchestration systems.
History
Degree Type
- Master of Science
Department
- Computer and Information Technology
Campus location
- West Lafayette