本文分享自天翼云开发者社区《一种面向混合云平台基于LSTM预测模型的资源池配额方法。》,作者:l****n
基于用户的历史配额申请情况和实际资源使用情况组成数据集搭建LSTM时序预测模型。当前用户提出资源配额申请时,基于该用户的历史资源实际使用情况结合LSTM模型来预测该次配额申请的实际使用量来动态调整实际分配给用户的配额量从而减少资源滥用的可能性。
针对用户是否所属于组织或者部门来限定用户可分得的最大资源配额数量,进一步实现资源配额公平性。
步骤1 选取包含用户的资源实际使用数和对应申请额度数的数据集。将用户u在日期d申请的资源配额数表示为,本次配额申请最终用户实际使用的资源配额数表示为,计算 并以日期d作为索引,若同样的日期d用户u提交了多个资源配额申请则对所有资源的取平均值作为索引d的值,将索引以此类推以时间从早到晚为序列顺序组成数据集。
步骤2 依据时间索引,将数据集前百分之八十的数据划分为训练集,末尾百分之二十划分为测试集。导入keras包构建LSTM模型,即通过Sequential顺序模型以及添加图层layer,卷积层Conv2D,最大池化层MaxPooling等搭建LSTM模型,通过RMSE判断模型实际表现并进行优化。
步骤3 用户提出资源配额申请,判断资源申请为增加还是减少配额,若为增加该资源配额量则跳转至步骤4,否则直接减少配额至申请数量。
步骤4 判断该用户是否有历史配额使用记录,如有跳转至步骤5,否则跳转至步骤6。
步骤5 将用户本次申请前一个月的历史资源实际使用率作为预测数据,得到预测的资源实际使用率为,假设用户提交的配额申请数为,则调整本次配额申请该用户实际可分得的配额数为
步骤6 依据用户是否选择将该配额申请与组织挂钩来确定该资源申请的最大限额标准,如该申请与组织相关则执行步骤7,否则跳转至步骤8。
步骤7 根据配额申请以及用户信息获取用户所属组织中该资源剩余可支配的配额数,若当前实际可分得配额数Q大于组织中该资源剩余配额,则将剩余配额作为资源实际可分得配额数,否则依据Q值分配相应资源给该用户。
步骤8 根据配额申请获取该资源对应资源池中该资源剩余可分配的最大配额数,若当前可分配配额数Q大于该资源对应资源池中的余额,则将最大限额分配给该用户,否则依据Q值分配相应资源给该用户。
当用户在混合云平台上提交配额申请时,首先依据历史使用记录判断用户是否为首次提交资源配额申请,如为首次: 判断当前用户是否隶属于相关组织。如与组织关联则跳转至步骤2,否则跳转至步骤3。 获取当前资源配额申请的资源类型在该组织中剩余额度,如果当前申请的资源数超过剩余额度则将剩余额度分配给该用户,否则分配申请的相应资源数给当前用户。 获取当前资源配额申请的资源类型在资源池中剩余额度,如果当前申请的资源数超过剩余额度则将剩余额度分配给该用户,否则分配申请的相应资源数给当前用户。
若为非首次申请资源配额的用户,则如图2所示: 判断当前配额申请是增加还是减少资源数,如为增加跳转至步骤2,否则直接释放资源至用户要求。 通过LSTM模型依据用户历史资源使用情况预测当前实际资源使用率并结合当前用户提交的资源配额数量调整用户当前实际可分得的资源配额数。 判断当前用户是否隶属于相关组织。如与组织关联则获取当前资源配额申请的资源类型在该组织中剩余额度,如果当前申请的资源数超过剩余额度则将剩余额度分配给该用户,否则分配预测的资源配额数给当前用户,若不隶属于组织则跳转至步骤4。 获取当前资源配额申请的资源类型在资源池中剩余额度,如果当前申请的资源数超过剩余额度则将剩余额度分配给该用户,否则分配预测的资源配额数给当前用户。