内存使用率预测
实验基础信息
-
实验名称:内存使用率预测
-
实验英文名:MemoryUsage
-
所属类目:智能运维
-
实验描述:根据内存使用率的历史数据,通过聚合算法使数据平滑,再利用时间序列Serima预测未来几个时刻的内存使用率
-
主要应用算法:Serima
-
应用场景:当遇到动态变化的平台和租户软硬件故障时,面对海量监控数据和庞大复杂的分布式系统,运维人员无法在高压下人力做出迅速、准确的运维决策,希望对服务性能指标进行监控、异常预测,反哺优化应用体验。现基于监控数据,利用算法能力,实现CPU与内存的动态阈值基线预测、磁盘容量预测、告警收敛等场景。
实验搭建
实验整体流程如下:

-
读数据:读入原始数据,及历史时间点的内存使用率。
-
表信息统计:统计该表的count值、缺失值、unique数、均值、标准差、最最小值、二分位数、四分位数等指标。

-
Python脚本:由于数量较大,变化明显,通过2分钟对时间进行聚合,得到2min时间段内的内存使用率均值
import numpy as np
col0, col1 = table0.columns[0], table0.columns[1]
time_index = table0[col0].apply(lambda x: pd.Timestamp(x))
time_se = pd.Series(index = time_index, data=table0[col1].values.squeeze())
time_se = time_se.resample('2min').mean()
df_res = pd.DataFrame(columns=[col0], data=time_se.index)
df_res[col1] = time_se.values.squeeze()
-
缺失值填充:缺失值采用均值填充。
-
Sarima预测:通过Sarima模型预测了未来5个值,得到未来5个时刻的内存使用率为[10.427, 10.430, 10.429, 10.430, 10.428]。
