1. 研究背景
当今社会下,分布式集群场景越来越多,而针对云架构的基准测试集比较少,现在的基准测试套件如SPEC CPU2017、SPEC CPU2006是针对单机的,而Cloud Suite,SPEC Cloud IssS等云架构下的基准测试也无法反映真实的集群负载情况。云服务厂商需要一个可以准确反映服务器负载的基准测试,以指导CPU选型,降低服务器维护成本,进行微架构或系统内核级别的优化。
DCPerf 是针对以上问题提出的一套基准测试框架,它从大型工作负载,到微架构级别的性能表现都和生产环境中非常相似,达到以基准测试来反映真实分布式服务器负载的效果。
2. DCPerf的介绍
DCPerf框架可以自动化对一些基准测试,如TaoBench、FeedSim、DjangoBench等进行自动化部署并执行,同时,它在基准测试中添加了一些“数据中心税”的模拟,它模拟了云架构中由于节点间通信造成的性能损失。为了测试已有的基准测试在什么程度上反映出真实的负载,DCPerf框架通过一些hook工具对CPU的性能数据进行采集,并将其与生产环境中的节点的性能数据进行对比,以确定它能在多大程度上反映出真实负载。

2.1 基准测试
按照分类来说,DCPerf针对当前生产环境中功耗最高的工作负载,包括Web服务、网页排名、数据缓存、大数据处理、媒体处理五项,分别提供了对应的基准测试。

针对每一项的工作负载提供的基准测试如上图,这些基准测试使用的软件栈如下:

除此之外,DCPerf还建模了一套微基准测试。数据中心应用中常用的一些库函数,例如用于RPC、加密、哈希、序列化、并发管理及内存操作的函数,虽然与应用的业务逻辑无关,但却是确保数据中心大规模环境下实现最优性能所必需的。DCPerf称这些功能为数据中心税。如果某款服务器SKU在这些数据中心税测试中的表现不佳,那么它很可能会导致多种应用的性能同样不理想。
2.2 基准测试的推算精度(projection accuracy)
DCPerf 对比了SPEC CPU2017,CloudSuite,真实生产环境的多个维度性能数据,这些维度包括:
- 不同的CPU平台
- Topdown Micro-Architecture Methodology下的L1层级的性能数据
- 每物理核心的IPC(开启SMT),内存带宽消耗,L1-Cache未命中率,CPU利用率,功耗,CPU核心频率
- 功耗
- 数据中心税
在这些维度,基准测试相对SPEC CPU2017和CloudSuite均可以更加精确地反映出真实的负载情况,误差率小于3%。