一种减少无效I/O的操作系统内存换页机制

未命名 09-29 阅读:72 评论:0
一种减少无效i/o的操作系统内存换页机制
技术领域
::1.本发明涉及到一种面向操作系统(os)的内存换页机制
技术领域
:,尤其涉及到一种可以减少内存到硬盘的无效i/o并显著提升系统整体性能表现的操作系统内存换页机制。
背景技术
::2.随着计算机技术的飞速发展,现在大规模使用的计算机系统通常具有大容量内存(dynamicrandomaccessmemory,简称dram)和高性能存储设备(例如ssd和nvme)。通过这些硬件配置,人们可以享受不断增长的计算和存储能力。但是主存和存储设备间存在着巨大的性能差距,极大的限制了计算机系统性能的发挥。为了弥合主存和存储设备之间的性能差距,采取高效的机制将数据保存在主存中进而最小化磁盘i/o是一种明智的做法。3.在现代计算机系统中,主存和存储设备之间存在频繁的交互。尽管现代计算机特别是云服务器中配置了容量较大的主存硬件,但主存的容量并不是无限的,当出现内存压力时,主存中的页面将会被交换到存储设备中;当换出的页面被再次使用时,系统将会把这些页面从存储设备交换到主存中。上述两个过程分别被称为换出和换入。4.对于换出,操作系统需要调用页面回收例程来释放页面,直到可用页面数量达到要求。例如,在linux中,kswapd扫描进程,并尝试在每个进程的地址空间中换出一些冷的(不活跃)的页面。然而,当被换出的内存页被再次访问时,操作系统不得不将它们从存储设备换入到主存中。很多情况下频繁的换入换出操作会导致性能损失。如果频繁使用的页面(例如,热点/活动页面)被错误的频繁交换,系统整体性能的下降会更加严重。5.我们观察到现代操作系统(例如linux,freebsd)中现有的内存交换机制经常会盲目地将热页/活动页(即经常使用的内存页)交换到硬盘,导致了大量不必要的交换在主存和存储设备之间频繁发生,进而影响了系统的整体性能。6.下面将首先介绍现有操作系统中使用的页面交换算法,之后通过实验观察分析现有页面交换算法存在的问题。7.现代操作系统通常使用基于lru的页面交换算法。以linux操作系统为例,内存管理模块使用两个基于lru算法的链表组织页面,这两个链表分别被称为活动列表和非活动列表,它们共同构成了linux内存管理模块中的热/冷页面分类机制。活动列表中包含所有进程的活动页(即热页),而非活动列表包含可能被回收和可以交换到存储设备中的非活动页(即冷页)。操作系统通过监控pte中的访问位(即access_bit)确定页面的冷热情况,并以此为依据进行页面的提升和降级操作。当pte中的访问位值为1时(1表示在采样周期内页面被访问过),操作系统认为当前页面是一个热页面,并将其保留在活动列表中,或者从非活动列表中提升页面。当pte中的访问位值为0时(0表示在采样周期内页面没有被访问过),操作系统认为当前页面是一个冷页面,并将其降级到非活动列表中,或者将其从非活动列表中换出。可以发现上述内核中的页面交换算法是一个典型的二次机会算法,可以从一定程度上识别页面属性(即页面冷热)。8.具体来说,当应用程序申请的内存大于系统剩余内存或内存压力到达操作系统预设的水位线时,页面交换机制将会被触发。首先内核将会计算根据参数nr计算需要扫描的页面数目,其中nr即由下面的公式确定:9.nr=len(list)>>p其中p代表列表的优先级,len()函数可以获取列表的长度;然后,内核将会扫描非活动列表,使用反向映射在页表中查找对应页面的页表项,当页表项的访问位为0时换出页面,当页表项的访问位为1时提升页面到活动列表中;之后,因为活动列表和非活动列表之间的比例是1.5,所以将会根据当前非活动列表的长度计算需要从活动列表中降级的页面数目m;最后,根据计算得到的值m扫描活动列表,同样使用反向映射在页表中查找对应页面的页表项,当页表项的访问位为0时降级页面,当页表项的访问位为1时保持页面在活动列表中。10.上述机制在某些情况下工作得很好,但两级lru这一策略没有考虑页面的重用模式,因此无法处理随机的内存行为或应用程序内存访问模式经常发生变化的情况。例如,只要在内核扫描时页面的访问位为1,不论页面在采样时间内被访问了1次还是被访问了1000次都被认为是活动页面,没有任何区别。因此,一些重用次数较多的页面可能会被放到活动列表的后半部分,然后被降级到非活动列表。从而导致这些页面成为了潜在的交换对象。另外值得注意的是,页面交换线程只扫描特定应用程序的部分地址空间,而不是全局地址空间。因此,现有的方法不可避免地增加了交换热页的可能性。11.在具有120gbddr4主存的云服务器上,使用ycsb运行测试如下的负载:redis(30gb)、memcached(30gb)和mysq((30gb),并使用vmstat在运行时监视换入/换出页面。以redis为例,实验发现redis在1500秒内的页面交换次数非常高,并且不仅包含了大量的换出操作,同时也包含了大量的换入操作,也就是说被换出的页面中包含了很多很快就会被再次访问的页面,所以操作系统不得不再次将它们移到主存中。显然,在这些情况下,现有操作系统的页面交换机制不再有效。mysql和memcached同样表现出类似的行为。12.通过以循环的方式监控页面对应的pte中的访问位,可以获得页面级逻辑重用模式。例如,在特定的采样周期内,访问位变化序列为11011的页面比访问位变化序列位10001的页面更加活跃(更热)。我们通过实验发现重用模式即使在非常短的时间内也有很大的变化。因此,现有操作系统中基于访问位的瞬时状态做出页面交换的决定是不合理的。13.通过上面的叙述,我们不难发现具有不同重用模式的并且即将被使用的热页很可能被视为冷页,并被换出内存。然而,这些页面很快就会被访问,导致了频繁的换入换出。此外,操作系统的非活动列表包含来自所有应用程序的内存页。因此,现有的交换机制会盲目地将属于不同应用程序的热页从主存中交换出来,导致所有共同运行的应用程序的整体性能损失。技术实现要素:14.针对上述方法所存在的问题,本发明提供一种面向linux系统的内存换页机制,用于减少内存到硬盘的无效i/o并显著提升系统整体性能表现。在运行期间,本方法使用页表项(pagetableentry,简称pte)中的当前位(即present_bit)监视标记要交换的候选页,然后本方法监视访问位捕获的逻辑页级重用距离,最后本方法使用基于回归学习的方法学习页面的重用模式并做出交换决定。与现有操作系统(如linux)中的两级lru机制相比,本方法对内存模式的变化更加敏感,能够准确地学习到内存页的重用模式,避免了无效的内存交换。15.具体来说,一种减少无效i/o的操作系统内存换页方法由三个组件构成,并以管道的方式进行工作。首先本方法设计了捕获页面交换信息的页面状态监视器(pagepresencemonitor,简称ppm);其次本方法设计了页面级逻辑重用模式采样组件(page-levellogicreusepatternsampling,简称phs),用于学习是否使用特定的页面;最后本方法设计了一个新的页面交换组件,它基于重用模式管理页面,在做出交换决策时考虑页级逻辑重用模式,以避免将热点和将被使用的页面交换出主存。16.各组件的工作过程如下:17.(一)页面状态监视器(pagepresencemonitor,简称ppm)18.1.页面状态监视器监视页面的存在性并定位发生交换的内存区域,页面状态监视器是操作系统内核中的一个在线内存页面状态监控模块;19.2.页面状态监视器监视pte中的当前位,当前位为1时表示该页在主存中,0表示该页不在主存中。当应用程序访问内存页面时,操作系统首先会在页表中查找页面对应的pte,然后检查pte中当前位的值,如果当前位为0(即不在主存中),将触发操作系统中的页面错误处理程序。页面状态监视器位于页面错误处理程序中,当页面错误处理程序被触发时页面状态监视器开始工作。页面错误处理程序调用do_swap_page()函数将页面移动到主内存中,如果当前页面的pte不存在则为这些页创建pte,同时将页面对应的pte的当前位设置为1。此时,页面状态监控器记录该页已被交换进/出,并将页面对应的pte中的保留位的值加1。通过上面的方法,页面状态监控器可以在运行期间准确的识别并标记发生过交换的页面,并且保留位的值记录了特定页面的交换次数。20.3.如前所述,实验结果表明,被换出页面中包含许多被错误换出的热页,甚至其中一些页面已经被换入/换出多次。使用页面状态监控器,操作系统可以定位应用程序地址空间中正在进行交换的内存区域。21.(二)页面级逻辑重用模式采样组件(page-levellogicreusepatternsampling,简称phs)22.1.页面状态监控器监控到频繁发生换入换出的页面后,本方法设计了页面级逻辑重用模式采样组件学习这些页面的重用模式。页面级逻辑重用模式采样组件同样在操作系统内核中实现,并与页面状态监控器协同工作。在获取页面状态监控器识别到的频繁发生换入换出的页面后,页面级逻辑重用模式采样组件监视pte中这些页面的访问位,并以循环方式计算页的重用模式。对于访问位,1表示页面在采样周期内被访问过,0表示页面在采样周期内未被访问过,页面级逻辑重用模式采样组件在一次扫描之后将会清除页面pte中的访问位(即,页面级逻辑重用模式采样组件调用pte_mkold()将访问位设置为0),然后不断扫描这些pte,从而得到页面在一段时间内的重用模式。23.2.通过循环扫描页面对应pte中的访问位,页面级逻辑重用模式采样组件可以拥有这些页面的逻辑重用模式。页面级逻辑重用模式采样组件将访问位的值作为页面逻辑重用模式,累加到页面对应pte中的保留位中。将逻辑重用模式累加到pte中的保留位不会带来任何空间开销,是一种空间开销友好的做法。具体来说,如果页面级逻辑重用模式采样组件在一定时间内循环采样200次,访问位的累计值为150的页面比访问位的累计值为15的页面具有更大的重用可能性。24.3.页面级逻辑重用模式采样组件使用循环的方式来检查访问位不可避免的可能带来一定的时间开销。为了达到更经济有效的效果,关键是找出循环采样的最佳次数。如果循环采样的值太小,那么页面级逻辑重用模式采样组件不能得到足够的信息,如果数目太大,过多的循环扫描会使得页表频繁加锁,引起不可忽略的时间开销。本方法首先以200作为循环次数的上限进行实验,并在不影响采样精度的前提下逐渐减小采样次数,降低采样开销。通过上面的方法,本方法发现当循环次数为16时,使用基于回归的学习方法,页面级逻辑重用模式采样组件可以获得与循环次数为200时相似的结果。所以,本方法将回归函数定义如下:[0025][0026]其中l为循环次数,r0为循环l次后得到的特定页面的重用次数。通过上面的公式当循环次数为任意值时都可以得到重用模式r。本方法将循环次数降低到16次后,采样的时间开销显著降低了79.6%。[0027](三)页面交换组件[0028]1.本方法引入了一个全新页面交换组件,用于替换操作系统中原有的页面交换组件。与原先操作系统中的页面交换组件类似的是,新的页面交换组件同样包含了页面活动列表和非活动列表。活动列表包含活动页面(即根据其重用模式可能很快就会接触到的页面),而非活动列表包含用于交换的候选页面。与之前方案不同的是,页面的组织、页面的提升、页面的淘汰、页面的换出都遵循,页面状态监控器和页面级逻辑重用模式采样组件学习到的页面重用模式。保留两个队列的原因是利用二次机会算法缓解本方法在初始化过程中可能出现的识别误差。[0029]2.与之前基于lru策略的交换机制相比,本方法根据重用模式重新组织内存页,并相应地找到可以进行交换的候选页面。根据重用模式,本方法可以更精准的选择将来不会被使用的页面,并将它们从内存中交换出去。值得注意的是,虽然页面被换出,但页面的pte并不会被销毁,所以本方法学习的页面重用模式仍然保存在pte中,之后页面被重新换入内存时可以在原先的基础上重新启动并进行进一步的学习,可以充分利用页面全部生命周期内的所有信息。[0030]3.活动列表和非活动列表根据重用模式重新组织。当程序试图访问不在主存中的页面时,页面故障处理程序将被触发,并将这些页面加载到内存或者冲存储设备中换入这些页面。此时,调用页面状态监控器定位发生交换的内存页面,并将信息交给页面级逻辑重用模式采样组件学习页面的重用模式。此时页面交换组件将页面放置在活动列表中,并根据逻辑重用模式组织页面。当应用程序申请的内存大于系统剩余内存或内存压力到达操作系统预设的水位线时,页面交换机制将会被触发。首先全新的页面交换将会计算根据参数nr计算需要扫描的页面数目,其中nr即由下面的公式确定:[0031]nr=len(list)>>p其中p代表列表的优先级,len()函数可以获取列表的长度;然后,全新的页面交换组件将会扫描非活动列表,并根据页面的逻辑重用模式选择一段区间内的页面换出页面,并根据页面的逻辑重用模式重新组织非活动列表,保证非活动列表有序;之后,因为活动列表和非活动列表之间的比例是1.5,所以将会根据当前非活动列表的长度计算活动列表的长度m,根据计算得到的值m扫描活动列表和非活动列表,根据页面重用模式对比两个列表中的页面,根据页面重用模式淘汰活动列表中重用模式值较小的页面,并提升非活动列表中重用模式值较大的页面。附图说明:[0032]图1为本发明提出的减少无效i/o的linux系统内存换页机制的流程图。[0033]图2为本发明检测到的linux现有两级lru机制存在大量页面交换的示意图。[0034]图3为本发明检测到的页面重用模式和页面换入换入不匹配问题示意图。[0035]图4为本发明检测到的页面重用模式在应用生命周期内的变化示意图。[0036]图5为本发明提出的减少无效i/o的linux系统内存换页机制的架构图。[0037]具体实施方法:[0038]结合附图以对本发明进行进一步的详细说明。[0039]如图本方法由三个组件构成,并以管道的方式进行工作。首先本方法设计了捕获页面交换信息的页面状态监视器(pagepresencemonitor,简称ppm);其次本方法设计了页面级逻辑重用模式采样(page-levellogicreusepatternsampling,简称phs)组件,用于学习是否使用特定的页面;最后本方法设计了一个新的页面交换组件,它基于重用模式管理页面,在做出交换决策时考虑页级逻辑重用模式,以避免将热点和将被使用的页面交换出主存。[0040]页面状态监视器监视pte中的当前位,当前位为1时表示该页在主存中,0表示该页不在主存中。当应用程序访问内存页面时,操作系统首先会在页表中查找页面对应的pte,然后检查pte中当前位的值,如果当前位为0(即不在主存中),将触发操作系统中的页面错误处理程序。页面状态监视器位于页面错误处理程序中,当页面错误处理程序被触发时页面状态监视器开始工作。页面错误处理程序调用do_swap_page()函数将页面移动到主内存中,如果当前页面的pte不存在则为这些页创建pte,同时将页面对应的pte的当前位设置为1。此时,页面状态监控器记录该页已被交换进/出,并将页面对应的pte中的保留位的值加1。通过上面的方法,页面状态监控器可以在运行期间准确的识别并标记发生过交换的页面,并且保留位的值记录了特定页面的交换次数。[0041]页面状态监控器监控到频繁发生换入换出的页面后,本方法设计了页面级逻辑重用模式采样组件学习这些页面的重用模式。页面级逻辑重用模式采样组件同样在操作系统内核中实现,并与页面状态监控器协同工作。在获取页面状态监控器识别到的频繁发生换入换出的页面后,页面级逻辑重用模式采样组件监视pte中这些页面的访问位,并以循环方式计算页的重用模式。对于访问位,1表示页面在采样周期内被访问过,0表示页面在采样周期内未被访问过,页面级逻辑重用模式采样组件在一次扫描之后将会清除页面pte中的访问位(即,页面级逻辑重用模式采样组件调用pte_mkold()将访问位设置为0),然后不断扫描这些pte,从而得到页面在一段时间内的重用模式。[0042]本方法中引入了全新的页面交换组件,在页面交换组件中有活动列表和非活动列表两个页面列表。活动列表和非活动列表根据重用模式重新组织。当程序试图访问不在主存中的页面时,页面故障处理程序将被触发来,并将这些页面加载到内存或者冲存储设备中换入这些页面。此时,调用页面状态监控器定位发生交换的内存页面,并将信息交给页面级逻辑重用模式采样组件学习页面的重用模式。此时页面交换组件将页面放置在活动列表中,并根据逻辑重用模式组织页面。当应用程序申请的内存大于系统剩余内存或内存压力到达操作系统预设的水位线时,页面交换机制将会被触发。首先全新的页面交换将会计算根据参数nr计算需要扫描的页面数目,其中nr即由下面的公式确定:[0043]nr=len(list)>>p[0044]其中p代表列表的优先级,len()函数可以获取列表的长度;然后,全新的页面交换组件将会扫描非活动列表,并根据页面的逻辑重用模式选择一段区间内的页面换出页面,并根据页面的逻辑重用模式重新组织非活动列表,保证非活动列表有序;之后,因为活动列表和非活动列表之间的比例是1.5,所以将会根据当前非活动列表的长度计算活动列表的长度m,根据计算得到的值m扫描活动列表和非活动列表,根据页面重用模式对比两个列表中的页面,根据页面重用模式淘汰活动列表中重用模式值较小的页面,并提升非活动列表中重用模式值较大的页面。[0045]在内核版本为5.10的ubuntulinux发行版中实现了上述方法。三个部分中,页面状态监控器位于内核函数do_swap_page(),通过添加do_add_swap()函数来修改pte中的保留位记录重用模式,页面状态监控器与页面级逻辑重用模式采样组件以流水线的形式运行。本方法实现了do_rl()函数进行回归预测,shrink_iswap_active_list()用来降级页面,shrink_iswap_inactive_list()用来提升页面。[0046]本发明公开了一种减少无效i/o的操作系统内存换页机制,包括以下步骤:一、构建内存页逻辑重用模式评估模型;二、通过页面状态监控器通过页错误处理程序定位频繁发生换入换出的页面;三、页面级逻辑重用模式采样组件通过周期性采样并结合回归学习的方法获得页面重用模式;四、通过页面重用模式,在两级队列中进行页面的换入换出和列表间的淘汰提升。本方法对频繁换入换出的页面进行监控,并学习页面的重用模式,可以准确预测页面未来的使用行为。并设计全新的页面换出机制,极大的减少了无效的页面交换i/o,从而可以实现对系统整体吞吐量和特定程序性能的提升。当前第1页12当前第1页12
技术特征:
1.一种减少无效i/o的操作系统内存换页机制,其特征在于,包括以下内容:具有三个组件,并以管道的方式进行工作,其中第一个组件是捕获页面交换信息的页面状态监视器page presence monitor,简称ppm,第二个组件是页面级逻辑重用模式采样组件page-level logic reuse pattern sampling,简称phs,用于学习是否使用特定的页面,第三个组件是一个新的页面交换组件,它基于重用模式管理页面,在做出交换决策时考虑页级逻辑重用模式,以避免将热点和将被使用的页面交换出主存。2.根据权利要求1所述的一种减少无效i/o的操作系统内存换页机制,其特征在于,页面状态监视器的具体设计和执行过程包括以下步骤:步骤1,页面状态监视器监视页面的存在性并定位发生交换的内存区域,页面状态监视器是操作系统内核中的一个在线内存页面状态监控模块;步骤2,页面状态监视器监视pte中的当前位,当前位为1时表示该页在主存中,0表示该页不在主存中,当应用程序访问内存页面时,操作系统首先会在页表中查找页面对应的pte,然后检查pte中当前位的值,如果当前位为0,即不在主存中,将触发操作系统中的页面错误处理程序。页面状态监视器位于页面错误处理程序中,当页面错误处理程序被触发时页面状态监视器开始工作。页面错误处理程序调用do_swap_page()函数将页面移动到主内存中,如果当前页面的pte不存在则为这些页创建pte,同时将页面对应的pte的当前位设置为1,此时,页面状态监控器记录该页已被交换进/出,并将页面对应的pte中的保留位的值加1,通过上面的方法,页面状态监控器可以在运行期间准确的识别并标记发生过交换的页面,并且保留位的值记录了特定页面的交换次数;步骤3,检验执行步骤1和步骤2后的实验结果,实验结果表明,被换出页面中包含许多被错误换出的热页,甚至其中一些页面已经被换入/换出多次,使用页面状态监控器,操作系统可以定位应用程序地址空间中正在进行交换的内存区域。3.根据权利要求1所述的一种减少无效i/o的操作系统内存换页机制,其特征在于,页面级逻辑重用模式采样组件的具体设计和执行过程包括以下内容:内容1,页面状态监控器监控到频繁发生换入换出的页面后,页面级逻辑重用模式采样组件学习这些页面的重用模式;页面级逻辑重用模式采样组件同样在操作系统内核中实现,并与页面状态监控器协同工作;在获取页面状态监控器识别到的频繁发生换入换出的页面后,页面级逻辑重用模式采样组件监视pte中这些页面的访问位,并以循环方式计算页的重用模式;对于访问位,1表示页面在采样周期内被访问过,0表示页面在采样周期内未被访问过,页面级逻辑重用模式采样组件在一次扫描之后将会清除页面pte中的访问位,即,页面级逻辑重用模式采样组件调用pte_mkold()将访问位设置为0,然后不断扫描这些pte,从而得到页面在一段时间内的重用模式;内容2,通过循环扫描页面对应pte中的访问位,页面级逻辑重用模式采样组件可以拥有这些页面的逻辑重用模式;页面级逻辑重用模式采样组件将访问位的值作为页面逻辑重用模式,累加到页面对应pte中的保留位中;将逻辑重用模式累加到pte中的保留位不会带来任何空间开销,是一种空间开销友好的做法;具体来说,如果页面级逻辑重用模式采样组件在一定时间内循环采样200次,访问位的累计值为150的页面比访问位的累计值为15的页面具有更大的重用可能性;内容3,页面级逻辑重用模式采样组件使用循环的方式来检查访问位不可避免的可能
带来一定的时间开销;为了达到更经济有效的效果,关键是找出循环采样的最佳次数;如果循环采样的值太小,那么页面级逻辑重用模式采样组件不能得到足够的信息,如果数目太大,过多的循环扫描会使得页表频繁加锁,引起不可忽略的时间开销;首先以200作为循环次数的上限进行实验,并在不影响采样精度的前提下逐渐减小采样次数,降低采样开销;通过上面的方法,发现当循环次数为16时,使用基于回归的学习方法,页面级逻辑重用模式采样组件可以获得与循环次数为200时相似的结果;所以,本方法将回归函数定义如下:其中l为循环次数,r0为循环l次后得到的特定页面的重用次数。通过上面的公式当循环次数为任意值时都可以得到重用模式r;本方法将循环次数降低到16次后,采样的时间开销显著降低了79.6%。4.根据权利要求1所述的一种减少无效i/o的操作系统内存换页机制,其特征在于,页面交换组件的具体设计和执行过程包括以下内容:内容1,本方法引入了一个全新页面交换组件,用于替换操作系统中原有的页面交换组件;与原先操作系统中的页面交换组件类似的是,新的页面交换组件同样包含了页面活动列表和非活动列表;活动列表包含活动页面(即根据其重用模式可能很快就会接触到的页面),而非活动列表包含用于交换的候选页面。与之前方案不同的是,页面的组织、页面的提升、页面的淘汰、页面的换出都遵循,页面状态监控器和页面级逻辑重用模式采样组件学习到的页面重用模式;保留两个队列的原因是利用二次机会算法缓解本方法在初始化过程中可能出现的识别误差;内容2,与之前基于lru策略的交换机制相比,本方法根据重用模式重新组织内存页,并相应地找到可以进行交换的候选页面;根据重用模式,本方法可以更精准的选择将来不会被使用的页面,并将它们从内存中交换出去;值得注意的是,虽然页面被换出,但页面的pte并不会被销毁,所以本方法学习的页面重用模式仍然保存在pte中,之后页面被重新换入内存时可以在原先的基础上重新启动并进行进一步的学习,可以充分利用页面全部生命周期内的所有信息;内容3,活动列表和非活动列表根据重用模式重新组织;当程序试图访问不在主存中的页面时,页面故障处理程序将被触发来,并将这些页面加载到内存或者冲存储设备中换入这些页面;此时,调用页面状态监控器定位发生交换的内存页面,并将信息交给页面级逻辑重用模式采样组件学习页面的重用模式;此时页面交换组件将页面放置在活动列表中,并根据逻辑重用模式组织页面;当应用程序申请的内存大于系统剩余内存或内存压力到达操作系统预设的水位线时,页面交换机制将会被触发;首先全新的页面交换将会计算根据参数nr计算需要扫描的页面数目,其中nr即由下面的公式确定:nr=len(list)>>p其中p代表列表的优先级,len()函数可以获取列表的长度;然后,全新的页面交换组件将会扫描非活动列表,并根据页面的逻辑重用模式选择一段区间内的页面换出页面,并根据页面的逻辑重用模式重新组织非活动列表,保证非活动列表有序;之后,因为活动列表和非活动列表之间的比例是1.5,所以将会根据当前非活动列表的长度计算活动列表的长度m,根据计算得到的值m扫描活动列表和非活动列表,根据页面重用模式对比两个列表中的
页面,根据页面重用模式淘汰活动列表中重用模式值较小的页面,并提升非活动列表中重用模式值较大的页面。

技术总结
本发明公开了一种减少无效I/O的操作系统内存换页机制,包括以下步骤:一、构建内存页逻辑重用模式评估模型;二、通过页面状态监控器通过页错误处理程序定位频繁发生换入换出的页面;三、页面级逻辑重用模式采样组件通过周期性采样并结合回归学习的方法获得页面重用模式;四、通过页面重用模式,在两级队列中进行页面的换入换出和列表间的淘汰提升。本方法对频繁换入换出的页面进行监控,并学习页面的重用模式,可以准确预测页面未来的使用行为。并设计全新的页面换出机制,极大的减少了无效的页面交换I/O,从而可以实现对系统整体吞吐量和特定程序性能的提升。和特定程序性能的提升。和特定程序性能的提升。


技术研发人员:刘磊 王锦权 肖利民
受保护的技术使用者:北京航空航天大学
技术研发日:2023.02.09
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐