Workload characterization is critical for resource management and scheduling.Recently,with the fast development of container technique,more and more cloud service providers like Google and Alibaba adopt containers to ...Workload characterization is critical for resource management and scheduling.Recently,with the fast development of container technique,more and more cloud service providers like Google and Alibaba adopt containers to provide cloud services,due to the low overheads.However,the characteristics of co-located diverse services(e.g.,interactive on-line services,off-line computing services)running in containers are still not clear.In this paper,we present a comprehensive analysis of the characteristics of co-located workloads running in containers on the same server from the perspective of hardware events.Our study quantifies and reveals the system behavior from the micro-architecture level when workloads are running in different co-location patterns.Through the analysis of typical hardware events,we provide recommended/unrecommended co-location workload patterns which provide valuable deployment suggestions for datacenter administrators.展开更多
在IntelP6系列处理器与Microsoft Windows NT平台上开发了一个工具软件PTracker,它利用处理器中的硬件性能计数器来获取程序性能数据,并结合机器体系结构参数对数据进行分析。它无需用户编程,与应用程序所使用的编程语言无关,使用很方...在IntelP6系列处理器与Microsoft Windows NT平台上开发了一个工具软件PTracker,它利用处理器中的硬件性能计数器来获取程序性能数据,并结合机器体系结构参数对数据进行分析。它无需用户编程,与应用程序所使用的编程语言无关,使用很方便。它不仅能够通过性能计数器获得精确的性能参数,而且还能通过对测试得到的性能数据的分析,揭示程序高层次的性能特征,对程序性能评价与优化具有一定的指导作用。本文介绍了PTracker的技术背景、设计与系统实现,并给出了一个应用实例。展开更多
进行精确的软件性能分析,需要在代码中插入测量和控制代码,并根据具体运行状态动态的检查多个不同的参数。但是,用静态类型的程序语言,如 C 语言等书写的代码,一经编译和链接,其处理逻辑即不可更改。因此,在无法获取源代码或者重新编译...进行精确的软件性能分析,需要在代码中插入测量和控制代码,并根据具体运行状态动态的检查多个不同的参数。但是,用静态类型的程序语言,如 C 语言等书写的代码,一经编译和链接,其处理逻辑即不可更改。因此,在无法获取源代码或者重新编译和重新启动代价较高的应用中,对软件进行动态性能分析非常困难。本文将介绍一种在软件运行时刻动态插入监控点的动态指令编译技术对软件进行监控,从而在上述情况下达到对软件的监控目的。这种方法是基于 DynInst API 和 PAPI 技术的。实验表明,这种方法在去掉了对源代码的依赖的情况下,仍然与在源代码级插入监控点的方法具有同等的采集效率,在很大程度上增强了基于硬件性能计数器方法的软件监控技术的应用范围,达到了较好的性能分析效果。展开更多
同时可记录的处理器硬件事件数量受限于处理器硬件性能计算器的数量.目前主流处理器可支持大量(数百个)硬件事件,但由于片上寄存器数量有限,仅提供了少量(通常6~12个)硬件性能计数器.为缓解这一矛盾,硬件计数器复用技术(multiplexing,M...同时可记录的处理器硬件事件数量受限于处理器硬件性能计算器的数量.目前主流处理器可支持大量(数百个)硬件事件,但由于片上寄存器数量有限,仅提供了少量(通常6~12个)硬件性能计数器.为缓解这一矛盾,硬件计数器复用技术(multiplexing,MPX)通过分时复用策略,利用少量计算寄存器来估算大量硬件事件.但在实践中,由于已有基于时间局部性的MPX估计算法结果准确率偏低,导致MPX一直未被广泛采用.为了提升MPX结果准确率,主要工作包括3部分:1)通过Kolmogorov-Smirnov正态性检验,发现针对同一硬件事件,相同代码在单计数器记录单事件(one counter one event,OCOE)的OCOE模式和MPX模式下,存在数据分布一致性的规律;2)基于此规律,提出了轮廓线估计法(outline estimation,OLE);3)在开源MPX库NeoMPX上实现了OLE算法,并在主流X86和ARM处理器上进行了验证.实验结果表明:在对16个硬件事件同时进行采集时,OLE算法相比PAPI默认的MPX估计算法,结果准确率平均提高了10.5%左右,最多可提升46.6%;相比已有算法,结果准确率分别提升了18.8%和17.7%.展开更多
基金This work is supported by the National Key Research and Development Program of China under Grant No.2018YFB1004804the National Natural Science Foundation of China under Grant No.61702492the Shenzhen Basic Research Program under Grant Nos.JCYJ20170818153016513 and JCYJ20170307164747920,and Alibaba Innovative Research(AIR)Project.
文摘Workload characterization is critical for resource management and scheduling.Recently,with the fast development of container technique,more and more cloud service providers like Google and Alibaba adopt containers to provide cloud services,due to the low overheads.However,the characteristics of co-located diverse services(e.g.,interactive on-line services,off-line computing services)running in containers are still not clear.In this paper,we present a comprehensive analysis of the characteristics of co-located workloads running in containers on the same server from the perspective of hardware events.Our study quantifies and reveals the system behavior from the micro-architecture level when workloads are running in different co-location patterns.Through the analysis of typical hardware events,we provide recommended/unrecommended co-location workload patterns which provide valuable deployment suggestions for datacenter administrators.
文摘在IntelP6系列处理器与Microsoft Windows NT平台上开发了一个工具软件PTracker,它利用处理器中的硬件性能计数器来获取程序性能数据,并结合机器体系结构参数对数据进行分析。它无需用户编程,与应用程序所使用的编程语言无关,使用很方便。它不仅能够通过性能计数器获得精确的性能参数,而且还能通过对测试得到的性能数据的分析,揭示程序高层次的性能特征,对程序性能评价与优化具有一定的指导作用。本文介绍了PTracker的技术背景、设计与系统实现,并给出了一个应用实例。
文摘进行精确的软件性能分析,需要在代码中插入测量和控制代码,并根据具体运行状态动态的检查多个不同的参数。但是,用静态类型的程序语言,如 C 语言等书写的代码,一经编译和链接,其处理逻辑即不可更改。因此,在无法获取源代码或者重新编译和重新启动代价较高的应用中,对软件进行动态性能分析非常困难。本文将介绍一种在软件运行时刻动态插入监控点的动态指令编译技术对软件进行监控,从而在上述情况下达到对软件的监控目的。这种方法是基于 DynInst API 和 PAPI 技术的。实验表明,这种方法在去掉了对源代码的依赖的情况下,仍然与在源代码级插入监控点的方法具有同等的采集效率,在很大程度上增强了基于硬件性能计数器方法的软件监控技术的应用范围,达到了较好的性能分析效果。
文摘同时可记录的处理器硬件事件数量受限于处理器硬件性能计算器的数量.目前主流处理器可支持大量(数百个)硬件事件,但由于片上寄存器数量有限,仅提供了少量(通常6~12个)硬件性能计数器.为缓解这一矛盾,硬件计数器复用技术(multiplexing,MPX)通过分时复用策略,利用少量计算寄存器来估算大量硬件事件.但在实践中,由于已有基于时间局部性的MPX估计算法结果准确率偏低,导致MPX一直未被广泛采用.为了提升MPX结果准确率,主要工作包括3部分:1)通过Kolmogorov-Smirnov正态性检验,发现针对同一硬件事件,相同代码在单计数器记录单事件(one counter one event,OCOE)的OCOE模式和MPX模式下,存在数据分布一致性的规律;2)基于此规律,提出了轮廓线估计法(outline estimation,OLE);3)在开源MPX库NeoMPX上实现了OLE算法,并在主流X86和ARM处理器上进行了验证.实验结果表明:在对16个硬件事件同时进行采集时,OLE算法相比PAPI默认的MPX估计算法,结果准确率平均提高了10.5%左右,最多可提升46.6%;相比已有算法,结果准确率分别提升了18.8%和17.7%.
文摘经过多年的发展, X86架构与ARM架构的处理器逐渐分别占据了桌面端和移动端市场的主导地位.虽然无论从技术角度还是从生态体系方面,这两类架构的处理器性能越来越高,但是由于其指令集臃肿、技术复杂、授权困难等原因,使得开发这两类架构的处理器的门槛较高.研究院所还没有一个合适的指令集用于体系结构的研究和创新. RISC-V指令集的开源使得这一局面得以缓解.其具备精简、开源、敏捷开发等特点引起了工业界与学术界的广泛关注与积极参与.性能计数器(Hardware Performance Counter, HPC)是处理器研究和性能调优的重要工具.由于RISC-V制定的标准性能计数器的可拓展性欠佳、可同时捕获事件的数量有限等不足,本文提出一种新的基于RISC-V的分布式硬件性能计数器.本文使用Genesys2开发板作为实验平台,将这种性能计数器适配到lowRISC-v0.4开源SoC项目上,完成了对该设计方案的验证与评估.该性能计数器只占用3个控制状态寄存器(Control and Status Registers, CSRs)就可以同时捕获比标准的性能计数器多近乎一个数量级的事件,在RISC-V处理器的性能分析、结构优化、侧信道攻防等方面为研究者提供了翔实的统计数据.