Auto-scaling systems in cloud computing are important for handling application workload fluctuations. This research uses machine learning to predict resource requirements based on workload work patterns and design an automatic scaling system. The dataset used includes features of node name, time, CPU usage percentage, and RAM usage. The ML model is applied for prediction regression of CPU usage percentage, CPU load, and RAM usage, and then server workload is classified into four categories: Very High, High, Low, and Very Low. The autoscaling system used is horizontal scaling. From the results of this research, it was found that the stacking algorithm with the base learner Random Forest and XGBoost had better performance in producing predictive regression. Then, after performing stability testing using K-Fold cross-validation by classifying based on workload status, it was found that the Gradient Boosting algorithm had better results compared to other algorithms, namely for the percentage of CPU usage with an accuracy of 0.998, precision 0.9, recall 0.878, f1score 0.888; CPU load average 15 minutes with accuracy 0.997, precision 0.854, recall 0.863, f1score 0.863; Meanwhile, the percentage of RAM usage is accuracy 0.992, precision 0.986, recall 0.986, and f1score 0.986. However, the XGBoost algorithm also has test results that are almost the same as Gradient Boosting.
Read full abstract