论文分析了阿里巴巴集群中近两万个微服务在7天内超过100亿次的调用trace。是socc那篇文章的改。
是这篇socc改的Characterizing microservice dependency and performance: Alibaba trace analysis。
有以下几个特征
- 微服务call graphs的大小遵循heavy-tail分布。大概10%的call graphs有多余40个的microservices
- 树状结构-入度为1。而传统的大数据任务一般都是有aggretation步骤的
- 一小部分microservices是call graphs中的热点。大概5%的microservices被90%以上的在线服务复用
- 微服务的call dependencies动态性很高,一个同样的online service可以有9种不同的topologically different graphs
- 关键路径很多。20%的在线服务包括100+的关键路径
几个关键结论
- call graph的结构对在线服务的性能影响很大
- 微服务的call rates(MCR)周期性地变化,在不同时期的相同时间内有很大的波动
- 微服务的性能对CPU inference比对内存inference要敏感得多
- 在微服务架构中,基于堆内存管理资源是至关重要的
Alibaba Trace Overview - Background
论文分析了阿里巴巴集群中近两万个微服务在7天内超过100亿次的调用trace。
阿里巴巴集群采用Kubernetes来管理云,并依靠硬件-软件混合virtio I/O系统来提高集群的性能,实现不同服务之间更好的隔离。 在线服务和离线作业通常共存于同一个裸机节点,以提高集群的资源利用率。在线服务(例如,微服务)在容器中运行,由Kubernetes直接管理。
剩下是一些详细介绍,有空放上来。