一种面向在离线容器混合部署的LLC分配方法组成比例

技术编号:29488836 阅读:27 留言:0更新日期:2021-07-30 19:00
本发明专利技术公开了一种面向在离线容器混合部署的LLC分配方法,应用于缓存分配程序,包括以下步骤:S1、获取所述缓存分配程序所在主机中的所有在线服务与离线任务容器进程,并进行性能监控;S2、根据性能监控的结果,计算缓存使用特性,判断进程属于缓存敏感型还是问题型;S3、限制问题型进程的可用LLC缓存总量;S4、采集缓存敏感型进程的内存访问记录,计算复用时间直方图,将直方图代入到平均逐出模型计算丢失率曲线;S5、将所有应用的丢失率曲线和步骤S1中采集的性能监控数据代入到缓存分配退火算法,计算能够保证在线服务性能和离线任务性能的分配方案。本发明专利技术方法解决在离线任务混合部署环境中的CPU缓存分配问题,保证在线服务和离线任务的性能。

【技术实现步骤摘要】
一种面向在离线容器混合部署的LLC分配方法
本专利技术属于计算机
,具体涉及一种面向在离线容器混合部署的LLC分配方法。
技术介绍
近年来,大量互联网公司及互联网服务层出不穷,用户数量、应用数量更是年年攀升,这对新时代的基础设施——云数据中心提出了非常高的性能要求。在容器运行环境中,一台服务器通常承载成百上千的容器,多个容器对计算资源竞争激烈,导致应用的响应时间被延长。在此情况下,如何高效利用已有的计算资源,成为了企业和研究人员努力攻克的方向。随着CPU性能的提升,缓慢的IO速率已经成为了制约性能的最大因素。为此,CPU高速缓存用于缩小寄存器和内存速率之间的巨大鸿沟。现代CPU典型的高速缓存有3个层次,CPU高速缓存是N路组相联缓存,即一个内存地址将会通过映射函数映射到一个缓存组,缓存组内有多个缓存路存放数据。L1、L2、L3(即LLC)的大小逐渐变大,而访问延迟也在逐渐变大。多级缓存能够很好的利用内存访问的空间和时间局部性,极大提高内存访问的速率。然而,云容器平台的一台服务器需要承载数百甚至上千个容器,各个容器的进程之间本文档来自技高网...

【技术保护点】
1.一种面向在离线容器混合部署的LLC分配方法,其特征在于,应用于缓存分配程序,包括以下步骤:/nS1、获取所述缓存分配程序所在主机中的所有在线服务与离线任务容器进程,并分别在两条LLC缓存路和全部LLC缓存路的条件下进行性能监控;/nS2、根据进程两次性能监控的结果,计算缓存使用特性,判断进程属于缓存敏感型还是问题型;/nS3、限制问题型进程的可用LLC缓存总量;/nS4、采集缓存敏感型进程的内存访问记录,采用水塘抽样法计算复用时间直方图,将所述直方图代入到平均逐出模型计算丢失率曲线;/nS5、将所有应用程序的丢失率曲线和步骤S1中采集的性能监控数据代入到缓存分配退火算法,计算能够保证在线服...

【技术特征摘要】
1.一种面向在离线容器混合部署的LLC分配方法,其特征在于,应用于缓存分配程序,包括以下步骤:
S1、获取所述缓存分配程序所在主机中的所有在线服务与离线任务容器进程,并分别在两条LLC缓存路和全部LLC缓存路的条件下进行性能监控;
S2、根据进程两次性能监控的结果,计算缓存使用特性,判断进程属于缓存敏感型还是问题型;
S3、限制问题型进程的可用LLC缓存总量;
S4、采集缓存敏感型进程的内存访问记录,采用水塘抽样法计算复用时间直方图,将所述直方图代入到平均逐出模型计算丢失率曲线;
S5、将所有应用程序的丢失率曲线和步骤S1中采集的性能监控数据代入到缓存分配退火算法,计算能够保证在线服务性能和离线任务性能的分配方案。


2.根据权利要求1所述的一种面向在离线容器混合部署的LLC分配方法,其特征在于,所述在线服务为面向用户的、有服务质量要求的应用程序;所述离线任务为不需要面向用户的批处理应用程序;
所述缓存分配程序所在主机中的其他类型进程不在缓存管控范围内;
所述性能监控具体为对缓存敏感型和问题型两种应用程序的进程采用CPU性能计数器,监控8个事件,所述8个事件具体为,指令完成数、CPU运行周期数、读取指令总数、写入指令总数、内存访问总周期数、数据访问总周期数、LLC丢失总数以及LLC命中总数;
所述性能监控的具体步骤如下:
采用CAT技术,设置被监控进程使用两个缓存路,使用监控工具监控所述8个事件1分钟,然后设置被监控进程使用全部缓存路,再重复监控过程,记录下两次监控得到的数据。


3.根据权利要求1所述的一种面向在离线容器混合部署的LLC分配方法,其特征在于,所述步骤S2采用性能事件计数的前后变化和绝对值,计算出进程的缓存使用特性,缓存使用特性计算还包括计算出下列性能指标:
每周期指令数,计算公式为:
指令完成数÷CPU运行周期数
每周期LLC访问数,计算公式为:
(LLC丢失总数+LLC命中总数)÷指令完成数
平均LLC缓存丢失惩罚,计算公式为:
内存访问总周期数÷LLC丢失总数
LLC丢失率,计算公式为:
LLC丢失总数÷(LLC命中总数+LLC丢失总数)
每千条指令LLC丢失数,计算公式为:
LLC丢失总数÷指令完成数*1000
每千条指令LLC命中数,计算公式为:
LLC命中总数÷指令完成数*1000
每千条指令LLC访问数,计算公式为:
(LLC命中总数+LLC丢失总数)÷指令完成数*1000
非访存指令每指令周期数,计算公式为:
(CPU运行周期数-数据访问总周期数)÷(指令完成数-(读取指令总数+写入指令总数))
平均缓存访问延迟周期,计算公式为:
(数据访问总周期数-内存访问总周期数)÷((读取指令总数+写入指令总
数)-LLC丢失数)
计算出每周期指令数变化量、每千条指令LLC丢失数变化量以及每千条指令LLC命中数变化量,三个变化量的计算式均为:
|(全部缓存路性能事件计数-两条缓存路性能事件计数)÷两条缓存路性能事件计数|
判断进程的缓存使用特性,判定条件如下:
挥霍型:每千条指令LLC丢失数大于4,每千条指令LLC命中数小于0.5且变化量小于0.3;
霸凌型:每周期指令数小于等于0.6,每千条指令LLC丢失数大于等于10,每千条指令LLC命中数大于等于10且变化量小于0.3;
高敏感型:每周期指令数小于1.3且变化量大于0.1,每千条指令LLC丢失数变化量大于0.3;
中敏感型:每周期指令数大于1.3且变化量大于0.1,每千条指令LLC丢失数变化量大于0.3;
低敏感性:除挥霍型、霸凌型、高敏感型以及中敏感型的其他情况。


4.根据权利要求3所述的一种面向在离线容器混合部署的LLC分配方法,其特征在于,所述问题型进程即挥霍型和霸凌型应用程序;所述敏感型进程即高敏感型、中敏感型以及低敏感型应用程序;
所述限制问题型进程的缓存使用空间具体是通过CAT技术,限制挥霍型和霸凌型应用程序仅能使用最多4个缓存路。


5.根据权利要求2或4所述的一种面向在离线容器混合部署的LLC分配方法,其特征在于,所述步骤S4中采集内存并计算丢失率曲线的具体步骤为:
筛选出需要进行内存访问采集的目标线程,线程需要属于所述在线服务和离线任务的进程,不属于问题型进程和低敏感型进程,运行满1个小时;
使用Pin工具开发内存复用时间直方图采集程序,采集目标进程的所有内存访问地址,然后使用水塘抽样法进行抽样,得到复用时间直方图;
将复用时间直方图代入到缓存平均逐出时间模型中计算丢失率曲线。


6.根据权利要求5所述的一种面向在离线容器混合部署的LLC分配方法,其特征在于,所述水塘抽样法的具体步骤为:
创建一个大小为k的水塘;当第i条地址到来...

【专利技术属性】
技术研发人员:王振宇吴俊贤
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1