首发于公众号 「DreamHub」
原文链接:Sinan:云微服务中基于机器学习和服务质量管理的资源管理模型
文章链接:https://asplos-conference.org/abstracts/asplos21-paper43-extended_abstract.pdf
源码链接:未公布
TL;DR
随着微服务架构日趋复杂以至于难以合理分配微服务所需资源,论文中提出一种微服务资源配置管理模型 Sinan,主要是考虑了不同层级服务间的依赖关系;
Key Insights
- Dependencies among tiers (microservice graph)
- System complexity and large action space
- Delayed queueing effect
- Importance of boundaries of the resource space
短文中没有详细介绍 Sinan 模型架构,仅简单陈述了模型及其作用;详细介绍在另一篇文章中:Sinan: Data-Driven Resource Management for Interactive Microservices
Model / Algorithm
整体架构图如下,主要包括 CNN 和 XGBoost 两部分;
CNN:short-term latency predictor
- 主要用于预测尾延迟(tail latency, 95%~99%);输入为 resource usage history (
X
R
H
X_{RH}
XRH),latency history (
X
L
H
X_{LH}
XLH),potential resource configuration (
X
R
C
X_{RC}
XRC),竟然没介绍
X
R
N
X_{RN}
XRN 🤔; 损失函数如下:
L ( X , y ^ , W ) = 1 n ∑ i n ( y ^ i − f W ( x i ) ) 2 \mathcal{L}(X, \hat{y}, W)=\frac{1}{n} \sum_{i}^{n}\left(\hat{y}_{i}-f_{W}\left(x_{i}\right)\right)^{2} L(X,y^,W)=n1i∑n(y^i−fW(xi))2
XGBoost:long-term violation predictor
- 主要用于判定QoS violation,二分类问题;
Evaluation
实验结果以可视化解释了合理性;