An In-Depth Study of Microservice Call Graph and Runtime Performance

论文分析了阿里巴巴集群中近两万个微服务在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直接管理。

剩下是一些详细介绍,有空放上来。