容量保障核心技术与实战
吴骏龙
前阿里巴巴本地生活 P8 高级专家
5387 人已学习
新⼈⾸单¥29
登录后,你可以任选2讲全文学习
课程目录
已完结/共 19 讲
容量保障核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

08 | 容量预测(上):第三只眼,通过AI预测服务容量瓶颈

你好,我是吴骏龙。在这一讲和下一讲中,我们来扮演一回预言家,看看容量预测是怎么做的。
我们先来看一个问题,也许在工作中你也会有这样的疑问:
“双 11 期间,网站需要举办大促活动,我们目前的服务器能不能承载这些大促活动所产生的访问量?如果不能,用多少服务器可以支撑,又不至于太浪费呢?”
回答这个问题,其实就是容量规划的过程,其中既体现了预测的思想,也体现了对成本的考虑。很显然,容量预测是容量规划中最重要的环节,没有之一,容量预测若不准确,容量规划的价值也会大打折扣。
明确了容量预测的重要性,那么该怎么做呢?很不幸的告诉你,在很长一段时间,即便是在阿里本地生活这样体量的公司,技术人员进行容量预测也靠的是“直觉”,不要觉得好笑,你或许也经历过这样的对话:
A:马上要双 11 了,服务器撑得住吗?
B:要搞大促了,肯定要扩容。
A:扩多少?
B:依我的经验,扩 1000 核吧。
A:要那么多吗?
B:呃…… 那 500 核吧。
这种将容量预测完全建立在个人经验上的做法,在大部分情况下都是没有什么道理的,在我的容量保障生涯中,就没见过拍脑袋能拍的准的,最后往往都是硬生生的把容量规划变成了一门“玄学”,而容量风险依然存在。
由此可见,我们需要的是一种科学的容量预测方式,它不能依赖于人的经验,而且必须足够准确。坦白说,这是非常困难的,因为影响服务容量的因素实在是太多了,我花了将近 1 年的时间带领团队做了大量的研究和探索,最终找到了一种通过 AI 手段进行容量预测的实践方案,并已经在实际工作中落地,现在我就把这项实践的核心技术分享给你,希望能给你带来帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

基于AI的容量预测方法是本文的主题,强调了AI方法在容量预测中的重要性。作者提出了基于AI的容量预测方法的三大步骤:特征选取、建立模型和准确度评价。特征选取是关键环节,需要选择具有代表性的少量特征,以减轻建模复杂度和规避过拟合。在模型建立方面,作者介绍了回归模型的选择标准,并详细介绍了神经网络的建模过程。准确度评价方面,作者介绍了K折交叉验证的方法,并提出了重视数据准确性和数据清洗的重要性。神经网络被介绍为建模工具,具有强大的学习能力,满足容量预测对模型的要求。K折交叉验证被强调为强大的模型准确度评价工具。最后,文章提到了容量预测中的典型Badcase,并强调了数据清洗和去噪的重要性。整体而言,本文为读者提供了基于AI的容量预测方法的详细过程,强调了特征选取、模型建立和准确度评价的重要性,为读者提供了新的思路和技术手段。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《容量保障核心技术与实战》
新⼈⾸单¥29
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • Respect🐾
    想问一下,是所有的服务通用一套模型么?还是每个服务单独train一个模型

    作者回复: 可以认为是每个服务单独训练一个模型,训练的数据是不一样的(每个服务有自己的训练数据),但是训练的流程都是一样的(同一套神经网络算法代码)。 当然,最后总有少数几个服务的结果不那么准确(Badcase),这时候就要单独看待了,如果服务很特殊,又必须预测容量,那么也许针对这个服务需要引入更特别的模型。

    2021-06-17
    1
  • Geek1560
    你好: 1、这里的CPU指的是单机的CPU还是对整个服务的集群的CPU进行了归一化? 2、每次训练出来的模型,在集群扩容后,是否适用了呢?

    作者回复: 1.是整个服务集群的CPU 2.集群扩容后就不适用了,因为服务的容量表现改变了,需要重新训练

    2023-08-05归属地:上海
  • 飞翔
    老师 还是不理解 获得了cpu利用率之后 能做啥

    作者回复: 例如,某大促活动预计服务QPS将到达1000,我们通过模型预测出CPU利用率将达到105%,显然是有风险的,此时我们就可以提前进行扩容或进行服务优化

    2023-06-03归属地:美国
    2
  • kay
    请教吴老师一个问题,这里的预测是对未来多长时间的预测?以tps为输入特征,是需要知道未来的tps吗?如何知道未来的tps?

    作者回复: 你好,能够预测未来多长时间的容量情况,取决于我们针对未来何时的业务场景建立模型。容量预测的模型与业务场景有关,与时间无关。 对于第二个问题,你的理解是对的,具体方法可以回顾第01篇中“容量保障目标的量化”这部分的“QPS/TPS”小节,如何将业务目标转化为容量保障的技术目标。

    2022-08-05归属地:上海
  • 于加硕
    另外,在请教个问题吴老师,神经网络使用历史数据计算出模型后,下次模型更新的决策条件是什么?是应用逻辑变更吗?还是残差(实际值如CPU与预测值CPU的差)变大才会触发神经网络再次建模?

    作者回复: 好问题,下篇有解答你的疑问

    2022-07-11
  • 于加硕
    吴老师能否简单讲下回归分析和神经网络来做容量规划思路的区别?目前对于神经网络还没有研究过,在之前的调研中,没有发现有公司使用这种方案,大多采用回归分析;文中所说的因变量,自变量,模型,预测,评价模型优劣,与回归分析思路一致;

    作者回复: 原理上,两者都能处理“回归问题”,神经网络的重点是建立自变量和因变量之间的关系,而回归分析更关注这一关系的内部结构。就容量预测的问题来说,两者没有本质的区别(我们并不需要去解释这一关系的结构)。

    2022-07-11
  • qinsi
    第一印象感觉并不是很靠谱,希望能探讨一下: 1. 模型能学习到的都是历史数据。文章开头的例子里提到要应对每年双11的流量,但双11的流量每年都在创新高(据说淘宝的数据还能用多项式完美拟合,这里不讨论),对于模型来说就是要预测在已知数据分布外的全新数据,通常来说效果都不会太好。不知道实际使用的时候效果如何? 2. 不知道输入特征的维度有多少?如果是低维度特征的话用深度神经网络很容易就会过拟合。使用k-fold cross validation也并不能完全避免过拟合的情况。不知道实际使用的时候有采取什么方法检测过拟合的情况呢?

    作者回复: 很高兴看到有深度的回复,咱们互相学习。 对于第一个问题,在容量测试下篇中的“容量预测迭代与校准”和“警惕业务场景变化”这两部分恰好谈到了相应的解决方案(当然,没有银弹),可以看看是不是有启发。 对于第二个问题,我在这里细讲一下,假定你所指的维度=特征数量。在我们的实践中,输入特征的维度不高,甚至我们还额外做了一些降维的工作(将各依赖服务的TPS合并为一个特征),原因是特征过多的情况下,模型很难收敛,调优也很困难。但是维度过低也容易出现过拟合的情况,我们的做法是将所有特征通过类似feature importance的方式去打分,从而获得对结果贡献最大的某组特征的组合,再基于这个特征组合去进一步识别是否过拟合(识别过拟合比较偷懒,直接可视化以后人肉识别),以及是不是要降维,反复调优逼近最佳结果。

    2021-08-17
    3
  • yungoo
    有试过ARIMA模型吗?

    作者回复: 我们当时并没有将研究的重点放在时序预测模型上,主要是考虑到神经网络的通用性更强,所以我们觉得这条路一定是走得通的(事实证明确实走通了)。不过辩证地说,也许类似AMIRA或ARIMAX这样的时序预测模型会得到更好的效果,如果你有成功的实践案例,非常愿意学习!

    2021-06-05
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部