CN103970679A - 一种动态缓存污染防治系统及方法 - Google Patents
一种动态缓存污染防治系统及方法 Download PDFInfo
- Publication number
- CN103970679A CN103970679A CN201410168269.0A CN201410168269A CN103970679A CN 103970679 A CN103970679 A CN 103970679A CN 201410168269 A CN201410168269 A CN 201410168269A CN 103970679 A CN103970679 A CN 103970679A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- buffer memory
- color
- pollution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000002265 prevention Effects 0.000 title claims abstract description 21
- 230000015654 memory Effects 0.000 claims abstract description 234
- 238000012544 monitoring process Methods 0.000 claims abstract description 51
- 238000005070 sampling Methods 0.000 claims abstract description 42
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 230000007246 mechanism Effects 0.000 claims abstract description 13
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 29
- 230000003139 buffering effect Effects 0.000 claims description 18
- 230000008034 disappearance Effects 0.000 claims description 13
- 239000003086 colorant Substances 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 8
- 238000007405 data analysis Methods 0.000 claims description 3
- 230000006399 behavior Effects 0.000 abstract description 3
- 238000005457 optimization Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009415 formwork Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种动态缓存污染防治系统及方法,属于计算机缓存性能优化技术领域。本发明的动态缓存污染防治系统包括内存监测模块、分析模块和决策分配模块。内存监测模块对为上层用户层程序动态分配的堆内存进行采样监测,并收集用户层程序的访存行为并提交给分析模块;分析模块对采样监测模块收集到的数据进行分析,判断程序前期的访存特性对缓存的污染情况;决策分配模块对原有的伙伴系统进行扩展,加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,再根据分析模块的分析结果控制系统逻辑页面到物理页框的映射方式,实现对缓存污染的有效限制。
Description
技术领域
本发明属于计算机缓存性能优化技术领域,更具体地,涉及一种动态缓存污染防治系统及方法。
背景技术
高速缓冲存储器(Cache)是存取速度比一般随机存取记忆体(RAM)更快的一种RAM,在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的,程序员感觉不到高速缓冲存储器的存在,因而其对程序员是透明的。
在计算机技术发展过程中,主存储器存取速度一直比中央处理器操作速度慢得多,使得中央处理器的高速处理能力不能充分发挥,影响了整个计算机系统的工作效率。目前有很多方法可用来缓和中央处理器与主存储器之间速度不匹配的矛盾,例如采用多个通用寄存器、多存储体交叉存取等,但在存储层次上采用高速缓冲存储器是最常用的方法。
高速缓冲存储器的容量一般只有主存储器的几百分之一,但其存取速度能与中央处理器相匹配。根据程序局部性原理,正在使用的主存储器某一单元其邻近的单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。
但是,当前处理器高速缓存大多采用最近最少使用(Least Recently Used,LRU)替换算法,该算法不能有效识别被访问数据的局部性特征并根据数据局部性的变化及时调节管理策略,导致高复用度的数据被低复用度的数据所替换,从而引发高速缓存的污染问题。另一方面,随着多核/众核系统的日益普及和发展,每个内核上的缓存污染都可能导致多核心之间共享缓存的污染,进一步加剧缓存的污染问题,对高性能计算的影响越来越大。
现有的一些缓存污染过滤策略虽然可在一定程序上缓解该问题,但存在缓存调整开销过大、对用户层不透明、离线分析无法实时动态调整或者需要特殊的硬件支持等问题,目前还缺乏一种通用计算机上的在线低开销的缓存污染监控机制。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种动态缓存污染防治系统及方法,旨在解决现有方法中存在的开销过大、不透明及无法动态调整的技术问题。
为实现上述目的,按照本发明的一方面,提供一种动态缓存污染防治系统,包括内存监测模块、分析模块和决策分配模块,其特征在于:
所述内存监测模块对为上层用户层程序动态分配的堆内存进行采样监测并收集数据,并将所述数据发送至所述分析模块,其中,所述数据包括动态分配内存的大小、所述用户层程序运行时函数调用栈的内容及深度、所述被采样监测页面相邻两次猝发访问的时间间隔ΔT和所述时间间隔ΔT内各级缓存访问缺失次数ΔCi,i=1、2、3;
所述分析模块对所述采样监测模块收集到的所述数据进行分析,判断所述用户层程序的所述堆内存是否对缓存造成污染,确定对所述缓存的污染类型为Li级缓存污染,并将分析结果发送至所述决策分配模块;
所述决策分配模块对原有的伙伴系统加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,根据所述分析模块的所述分析结果控制系统逻辑页面到物理页框的映射方式,以实现对缓存污染的有效限制。
为实现上述目的,按照本发明的另一方面,提供一种动态缓存污染防治方法,包括以下步骤:
步骤1追踪用户层程序的内存分配和释放操作;
步骤2对动态分配的堆内存进行采样监测并收集数据,所述数据包括动态分配内存的大小、所述用户层程序运行时函数调用栈的内容及深度、被采样监测页面相邻两次猝发访问的时间间隔ΔT和所述时间间隔ΔT内各级缓存访问缺失次数ΔCi,i=1、2、3,并判断当前内存分配点是否为第一次分配内存,若是,则新建采样哈希表,并执行步骤1;否则更新所述采样哈希表,并执行步骤3;
步骤3根据所述步骤2所收集的所述数据,分析当前所述堆内存对缓存的污染情况,将所述各级缓存访问缺失次数ΔCi与所述各级缓存的容量大小进行对比,分析得出当前所述堆内存是否对缓存造成污染,并确定当前所述堆内存对所述缓存的污染类型为Li级缓存污染;
步骤4对原有的伙伴系统进行扩展,加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,并根据所述步骤3中得到的所述缓存污染类型控制逻辑页面到物理页框的映射和分配,以实现对缓存污染的防治,并更新所述采样哈希表,然后执行步骤1。
通过本发明所构思的以上技术方案,与现有技术相比,本发明的动态缓存污染防治方法具有以下的有益效果:
1、基于堆为单位进行监测,可以自由控制系统的采样和监测粒度,能大幅提缓存污染监测的效率;
2、通过哈希表管理内存数据集,能够高效地确定内存分配的上下文,大大降低监测缓存污染引入的开销,同时能够实时在线监测堆内存对缓存的污染情况,摒弃了现有方法中离线、静态分析的缺点;
3、将内存页面管理与页面映射分离,能够实时动态调整逻辑页面向物理页框的映射方式,有效降低现有方法中内存迁移的巨大开销,切实提高缓存污染过滤效果;
4、不涉及用户层程序的具体代码或额外操作,因此对上层用户层程序是完全透明的,具有很强的通用性和可移植性。
附图说明
图1为本发明动态缓存污染防治系统的结构框图;
图2为本发明动态缓存污染防治方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1所示为本发明动态缓存污染防治系统的结构框图。如图1所示,动态缓存污染防治系统包括内存监测模块、分析模块和决策分配模块。内存监测模块对为上层用户层程序动态分配的堆内存进行采样监测,并收集用户层程序的访存行为提交给分析模块。分析模块对采样监测模块收集到的数据进行分析,判断用户层程序前期的访存特性对缓存的污染情况,预测用户层程序后期对缓存的污染情况,并将分析结果发送至决策分配模块。决策分配模块对原有的伙伴系统进行扩展,加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,再根据分析模块的分析结果,决定采用何种页面映射方式控制系统逻辑页面到物理页框的映射,实现对缓存污染的有效限制。
内存监测模块对用户层程序运行时动态分配的堆内存进行采样监测,同时对各级高速缓存的数据排出量和用户层程序的函数调用栈进行监测统计。
内存监测模块监测的信息包括动态分配内存的大小、用户层程序运行时函数调用栈的内容及深度、被采样监测页面相邻两次猝发访问的时间间隔ΔT和该时间间隔ΔT内各级缓存访问缺失次数(后期可换算为数据排出量)。
内存监测模块监测功能的实现主要通过追踪截获系统中与内存相关的关键函数以及函数调用栈来实现,关键函数包括内存分配函数、内存释放函数及高速缓存缺失次数统计函数。
分析模块通过比较函数调用栈的内容及深度确定内存分配点,通过比较时间间隔ΔT内各级缓存的缺失次数ΔC与各级缓存的容量大小来判断程序对缓存的污染情况,并确定缓存污染类型。在本发明实施例中,有三种污染类型:L1缓存污染类型、L2缓存污染类型及L3缓存污染类型。L1缓存污染类型因为容量太小,所以不进行过滤。L2、L3缓存污染类型即指缓存的数据排出量超过了L2、L3的容量。读取同一采样页面时间间隔ΔT内的缓存缺失次数ΔCi(i=1、2、3),并分别与Li级缓存的行数Di进行对比,其中若满足条件D(i+1)>ΔT×ΔCi>Di,则确定为Li型缓存污染。
决策分配模块对原有的伙伴系统进行扩展,加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,将分析模块得到的缓存污染类型注入到内存操作相关函数中,再根据分析模块确定的缓存污染类型控制逻辑页面到物理页框的映射和分配。
在本发明实施例中,通过公式计算出页着色的颜色数:
其中i=2、3,得到L2、L3级缓存的颜色数。
若本次内存分配点为第一次分配,或者本次内存分配时根据上述条件判断本内存分配点在程序运行前期分配的内存未对缓存造成污染,则伙伴系统将内存页面均匀地映射到所有颜色的物理页框上。
若造成L2级缓存污染,则伙伴系统将内存页面均匀地映射到前种颜色的物理页框上;若当前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推。
若造成L3级缓存污染,则伙伴系统将内存页面均匀地映射到前种颜色(若则取前p2种颜色)的物理页框上;若前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推。
本发明提供的动态缓存污染防治系统,其有利之处在于:由于采用了内存监测模块和分析模块,通过哈希表管理内存数据集,能够高效地确定内存分配的上下文,大大降低监测缓存污染引入的开销,同时能够实时地、在线地监测堆内存对缓存的污染情况,摒弃了现有方法中离线、静态分析的缺点。由于采用了决策分配模块,将内存页面管理与页面映射分离,能够实时动态调整逻辑页面向物理页框的映射方式,有效降低现有方法中内存迁移的巨大开销,切实提高缓存污染过滤效果。且由于本发明在整个系统中以一种运行时库的形式工作,不涉及用户层程序的具体代码或额外操作,因此对用户层程序是完全透明的,不需要对用户层程序进行任何改动。
图2所示为本发明动态缓存污染防治方法的流程图,包括以下步骤:
步骤1追踪用户层程序的内存分配和释放操作。
步骤2对动态分配的堆内存进行采样监测并收集数据,该数据包括动态分配内存的大小、用户层程序运行时函数调用栈的内容及深度、被采样监测页面相邻两次猝发访问的时间间隔ΔT和该时间间隔ΔT内各级缓存访问缺失次数,并判断本次内存分配点是否为第一次分配内存,若是,则新建采样哈希表,并执行步骤1;否则更新采样哈希表,并执行步骤3。
步骤2具体包括以下子步骤:
(2-1)对已分配内存中的页面按比例随机均匀地抽取以进行采样监测(采样比例可根据监测粒度进行动态调整),并对被采样的页面设置1s时间的读写保护。此时程序开始访问分配的堆内存,当访问到被设置读写保护的采样页面时,系统陷入缺页中断状态,可获取当前进程的函数调用栈内容;
(2-2)根据当前进程的函数调用栈内容及深度,在采样哈希表中查找当前内存分配点,如果未查找到则确定当前分配点为第一次分配内存,记录下当前系统时间T1和缓存缺失次数C1,新建采样哈希表,并执行步骤1,否则执行步骤(2-3);
(2-3)系统监测到缺页中断,记录下当前系统时间T2和缓存缺失次数C2、当前的函数调用栈内容及深度,同时利用时钟触发机制解除被采样页面的读写保护1s时间,更新采样哈希表,并执行步骤3。
步骤3根据上述步骤2所收集的数据集,分析当前堆内存对缓存的污染情况。计算同一内存分配点相邻两次访问之间的时间间隔ΔT=T2-T1,以及该时间间隔ΔT内的缓存缺失次数ΔC=C2-C1,将该缺失次数ΔC与各级缓存的具体组数对比,分析得出当前堆内存是否对缓存造成污染,并确定当前堆内存对缓存的污染类型。
进程监测缓存缺失次数初始化时,在性能监测单元(PerformanceMonitor Unit,以下简称PMU,即处理器上的一个特殊硬件)上利用perf设置缓存缺失中断事件,记录Li(i=1,2,3)级缓存当前缓存缺失计数C1i(或者置0也可以),同时设置缺页中断触发事件(即产生缺页中断时,触发PMU读取缓存缺失次数)。当系统发生缓存缺失时PMU会产生中断,累计缓存缺失次数;当系统发生缺页中断时,PMU产生中断,此时读取Li级存缓缺失计数C2i,与初始值相减即可得到两次缺页中断间的缓存缺失次数ΔCi=C2i-C1i。
步骤3具体包括以下子步骤:
(3-1)读取同一采样页面时间间隔ΔT=T2-T1内的缓存缺失次数ΔCi,并分别与Li级缓存的数组Di(i=1,2,3)进行对比,其中
(3-2)判断是否满足条件D(i+1)>ΔT×ΔCi>Di,若不满足则记录下当前系统时间T1和缓存缺失次数C1,新建采样哈希表,并执行步骤1;若满足则执行步骤(3-3);
(3-3)根据上述判断结果确定Li型缓存污染,即表示该采样页面所在的堆内存会对缓存造成的缓存污染类型。
步骤4根据步骤3确定的缓存污染类型,对原有的伙伴系统进行扩展,加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,并根据步骤3中得到的缓存污染类型控制逻辑页面到物理页框的映射和分配,实现对缓存污染的防治,并更新采样哈希表,然后执行步骤1。
步骤4具体包括以下子步骤:
(4-1)通过公式计算出页着色的颜色数:
其中i=2、3,得到L2、L3级缓存的颜色数;
(4-2)若本次内存分配点为第一次分配,或者本次内存分配时根据步骤3判断本内存分配点在程序运行前期分配的内存未对缓存造成污染,则伙伴系统将内存页面均匀地映射到所有颜色的物理页框上,更新采样哈希表,然后执行步骤1;
(4-3)若本次内存分配时,根据步骤3判断本内存分配点在程序运行前期分配的内存对缓存造成Li型缓存污染,则进行再着色(recolor)操作,具体包括下述子步骤:
(4-3-1)若造成L2级缓存污染,则伙伴系统将内存页面均匀地映射到前种颜色的物理页框上;若当前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推;
(4-3-2)若造成L3级缓存污染,则伙伴系统将内存页面均匀地映射到前种颜色(若则取前p2种颜色)的物理页框上;若前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推;
(4-3-3)更新采样哈希表,然后执行步骤1。
本发明提供的一种动态缓存污染防治方法,其有利之处在于:由于采用了子步骤(2-1),在运行时以堆为单位进行监测,可以自由控制系统的采样和监测粒度,能大幅提高缓存污染监测的效率,且只有在对堆内存中被采样监测的页面进行读写操作时才会触发监测机制介入,因此系统开销很小。由于采用了子步骤(2-2),通过哈希表管理内存数据集,能够高效地确定内存分配的上下文,大大降低了监测缓存污染引入的开销。由于采用了子步骤(2-3),利用时钟触发机制解除被采样监测页面的读写保护,在程序正常访存期间,不会再次触发缺页中断,不会造成额外的开销,因此系统开销很小。由于采用了步骤4,本发明能够实时动态调整逻辑页面向物理页框的映射方式,有效降低现有方法中内存迁移的巨大开销,切实提高缓存污染过滤效果。且本发明工作时不需要对用户层程序进行代码级的分析或更改,整个工作过程对上层完全透明,具有很强的通用性和可移植性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种动态缓存污染防治系统,包括内存监测模块、分析模块和决策分配模块,其特征在于:
所述内存监测模块对为上层用户层程序动态分配的堆内存进行采样监测并收集数据,并将所述数据发送至所述分析模块,其中,所述数据包括动态分配内存的大小、所述用户层程序运行时函数调用栈的内容及深度、所述被采样监测页面相邻两次猝发访问的时间间隔ΔT和所述时间间隔ΔT内各级缓存访问缺失次数ΔCi,i=1、2、3;
所述分析模块对所述采样监测模块收集到的所述数据进行分析,判断所述用户层程序的所述堆内存是否对缓存造成污染,确定对所述缓存的污染类型为Li级缓存污染,并将分析结果发送至所述决策分配模块;
所述决策分配模块对原有的伙伴系统加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,根据所述分析模块的所述分析结果控制系统逻辑页面到物理页框的映射方式,以实现对缓存污染的有效限制。
2.如权利要求1所述的动态缓存污染防治系统,其特征在于,所述内存监测模块追踪截获与内存相关的关键函数以及所述函数调用栈,其中所述关键函数包括内存分配函数、内存释放函数和高速缓存缺失次数统计函数。
3.如权利要求1所述的动态缓存污染防治系统,其特征在于,所述分析模块通过比较所述函数调用栈的内容及深度确定内存分配点,通过比较所述时间间隔ΔT内各级缓存的所述缓存缺失次数ΔCi与所述各级缓存的容量大小来判断所述用户层程序对所述缓存的污染情况,若满足条件D(i+1)>ΔT×ΔCi>Di,则确定为Li型缓存污染,其中
4.如权利要求1所述的动态缓存污染防治系统,其特征在于,所述决策分配模块通过公式计算出页着色的颜色数:
其中i=2、3,得到L2、L3级缓存的颜色数;
若内存分配点为第一次分配,或者所述内存分配点在所述用户层程序运行前期分配的内存未对所述缓存造成污染,则所述决策分配模块控制所述伙伴系统将所述内存页面均匀地映射到所有颜色的物理页框上;
若为L2级缓存污染,则所述决策分配模块控制所述伙伴系统将所述内存页面均匀地映射到前种颜色的物理页框上,若当前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推;
若为L3级缓存污染,则所述决策分配模块控制所述伙伴系统将所述内存页面均匀地映射到前种颜色的物理页框上,其中若则取前p2种颜色,若前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推。
5.一种动态缓存污染防治方法,包括:
步骤1追踪用户层程序的内存分配和释放操作;
步骤2对动态分配的堆内存进行采样监测并收集数据,所述数据包括动态分配内存的大小、所述用户层程序运行时函数调用栈的内容及深度、被采样监测页面相邻两次猝发访问的时间间隔ΔT和所述时间间隔ΔT内各级缓存访问缺失次数ΔCi,i=1、2、3,并判断当前内存分配点是否为第一次分配内存,若是,则新建采样哈希表,并执行步骤1;否则更新所述采样哈希表,并执行步骤3;
步骤3根据所述步骤2所收集的所述数据,分析当前所述堆内存对缓存的污染情况,将所述各级缓存访问缺失次数ΔCi与所述各级缓存的容量大小进行对比,分析得出当前所述堆内存是否对缓存造成污染,并确定当前所述堆内存对所述缓存的污染类型为Li级缓存污染;
步骤4对原有的伙伴系统进行扩展,加入以page-color为基础的页面管理机制,将内存页面管理与页面映射分离,并根据所述步骤3中得到的所述缓存污染类型控制逻辑页面到物理页框的映射和分配,以实现对缓存污染的防治,并更新所述采样哈希表,然后执行步骤1。
6.如权利要求5所述的方法,其特征在于,所述步骤2包括以下子步骤:
(2-1)对已分配内存中的页面按比例随机均匀地抽取以进行采样监测,并对被采样页面设置1s时间的读写保护,当访问到被设置读写保护的所述被采样页面时,系统陷入缺页中断状态,可获取当前进程的所述函数调用栈内容;
(2-2)根据当前进程的所述函数调用栈内容及深度,在所述采样哈希表中查找当前所述内存分配点,如果未查找到则确定当前所述内存分配点为所述第一次分配内存,记录下当前系统时间T1和缓存缺失次数C1,新建所述采样哈希表,并执行步骤1,否则执行步骤(2-3);
(2-3)当监测到所述缺页中断时,记录下当前系统时间T2和缓存缺失次数C2、当前的所述函数调用栈内容及深度,同时利用时钟触发机制解除所述被采样页面的读写保护1s时间,更新所述采样哈希表,并执行步骤3。
7.如权利要求5所述的方法,其特征在于,所述步骤3包括以下子步骤:
(3-1)读取同一采样页面所述时间间隔ΔT内的所述各级缓存访问缺失次数ΔCi,并分别与Li级缓存的数组Di(i=1,2,3)进行对比,其中
(3-2)判断是否满足条件D(i+1)>ΔT×ΔCi>Di,若不满足则记录下当前系统时间T1和缓存缺失次数C1,新建所述采样哈希表,并执行步骤1;若满足则执行步骤(3-3);
(3-3)根据所述步骤(3-2)的判断结果确定Li型缓存污染,即表示所述被采样页面所在的所述堆内存对所述缓存造成的所述缓存污染类型。
8.如权利要求5所述的方法,其特征在于,所述步骤4包括以下子步骤:
(4-1)通过公式计算出页着色的颜色数:
其中i=2、3,得到L2、L3级缓存的颜色数;
(4-2)若本次所述内存分配点为所述第一次分配内存,或在所述用户层程序运行前期分配的内存未对所述缓存造成污染,则所述伙伴系统将所述内存页面均匀地映射到所有颜色的物理页框上,更新所述采样哈希表,然后执行步骤1;
(4-3)若本次内存分配时,根据所述步骤3判断所述内存分配点在所述用户层程序运行前期分配的内存对所述缓存造成所述Li型缓存污染,则进行再着色(recolor)操作,具体包括下述子步骤:
(4-3-1)若造成L2级缓存污染,则所述伙伴系统将所述内存页面均匀地映射到前种颜色的物理页框上,若当前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推;
(4-3-2)若造成L3级缓存污染,则所述伙伴系统将所述内存页面均匀地映射到前种颜色的物理页框上,其中若则取前p2种颜色,若前种颜色的物理页框已被全部分配,则映射到前种颜色上,以此类推;
(4-3-3)更新所述采样哈希表,然后执行步骤1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410168269.0A CN103970679B (zh) | 2014-04-24 | 2014-04-24 | 一种动态缓存污染防治系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410168269.0A CN103970679B (zh) | 2014-04-24 | 2014-04-24 | 一种动态缓存污染防治系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103970679A true CN103970679A (zh) | 2014-08-06 |
CN103970679B CN103970679B (zh) | 2017-02-01 |
Family
ID=51240205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410168269.0A Expired - Fee Related CN103970679B (zh) | 2014-04-24 | 2014-04-24 | 一种动态缓存污染防治系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103970679B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021126A (zh) * | 2016-05-31 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 缓存数据处理方法及服务器、配置设备 |
CN109144844A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 追踪方法、装置、设备和机器可读介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663115B (zh) * | 2012-04-16 | 2015-01-14 | 中国人民大学 | 基于页面染色技术的内存数据库访问优化方法 |
CN103077128B (zh) * | 2012-12-29 | 2015-09-23 | 华中科技大学 | 一种多核环境下的共享缓存动态划分方法 |
-
2014
- 2014-04-24 CN CN201410168269.0A patent/CN103970679B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021126A (zh) * | 2016-05-31 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 缓存数据处理方法及服务器、配置设备 |
CN109144844A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 追踪方法、装置、设备和机器可读介质 |
CN109144844B (zh) * | 2017-06-27 | 2023-01-31 | 阿里巴巴集团控股有限公司 | 追踪方法、装置、设备和机器可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103970679B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lu et al. | Virtual Machine Memory Access Tracing with Hypervisor Exclusive Cache. | |
US8850122B2 (en) | Cache optimization via predictive cache size modification | |
US20190004916A1 (en) | Profiling asynchronous events resulting from the execution of software at code region granularity | |
US9189410B2 (en) | Hypervisor-based flash cache space management in a multi-VM environment | |
KR101761301B1 (ko) | 메모리 자원 최적화 방법 및 장치 | |
US11507516B2 (en) | Adaptive cache partitioning | |
Saemundsson et al. | Dynamic performance profiling of cloud caches | |
Loh | Extending the effectiveness of 3D-stacked DRAM caches with an adaptive multi-queue policy | |
Yadgar et al. | Management of multilevel, multiclient cache hierarchies with application hints | |
CN107533511A (zh) | 使用假想高速缓存的实时高速缓存行为预报 | |
CN104572501A (zh) | 一种基于访存踪迹局部性分析的多核环境下共享缓存优化方法 | |
Yu et al. | Hpe: Hierarchical page eviction policy for unified memory in gpus | |
Liu et al. | MLCache: A space-efficient cache scheme based on reuse distance and machine learning for NVMe SSDs | |
Zhang et al. | “Anti-Caching”-based elastic memory management for Big Data | |
CN103970679A (zh) | 一种动态缓存污染防治系统及方法 | |
CN106775684A (zh) | 一种基于新型非易失性存储器的磁盘缓存掉电恢复方法 | |
CN110865869B (zh) | 一种申威架构上的虚拟机访存特征提取方法及系统 | |
Swain et al. | Analysis and predictability of page replacement techniques towards optimized performance | |
CN102521153B (zh) | 一种多核处理器共享缓存分配方法 | |
On et al. | FD-Buffer: A cost-based adaptive buffer replacement algorithm for flashmemory devices | |
Lee et al. | Characterization of Memory Access in Deep Learning and Its Implications in Memory Management. | |
Zhu et al. | MCS: memory constraint strategy for unified memory manager in spark | |
CN105824737A (zh) | 用于大数据处理系统的内存数据集置换系统与置换方法 | |
Menon et al. | Logstore: A workload-aware, adaptable key-value store on hybrid storage systems | |
CN109710563B (zh) | 一种可重构系统的缓存分区划分方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170201 |