CN111930517B - 一种高性能自适应垃圾收集方法和计算机系统 - Google Patents

一种高性能自适应垃圾收集方法和计算机系统 Download PDF

Info

Publication number
CN111930517B
CN111930517B CN202010984456.1A CN202010984456A CN111930517B CN 111930517 B CN111930517 B CN 111930517B CN 202010984456 A CN202010984456 A CN 202010984456A CN 111930517 B CN111930517 B CN 111930517B
Authority
CN
China
Prior art keywords
instruction
storage medium
garbage collection
index
system application
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.)
Active
Application number
CN202010984456.1A
Other languages
English (en)
Other versions
CN111930517A (zh
Inventor
张伟
安鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongkelivei Technology Co ltd
Original Assignee
Beijing Zhongkelivei Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zhongkelivei Technology Co ltd filed Critical Beijing Zhongkelivei Technology Co ltd
Priority to CN202010984456.1A priority Critical patent/CN111930517B/zh
Publication of CN111930517A publication Critical patent/CN111930517A/zh
Application granted granted Critical
Publication of CN111930517B publication Critical patent/CN111930517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种高性能自适应垃圾收集方法,属于内存分配和管理领域,解决现有存储介质内缓存数据释放效率过低的技术问题。该方法包括:将系统应用发送的指令缓存至指令索引;实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;实时监测系统应用向存储介质发送指令时底层参数的数值变化;当上层参数和/或底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作。本发明通过上层和底层双重监测机制,根据上层参数和底层参数的变化自动触发对指令索引进行的垃圾收集操作,提高了垃圾收集操作的处理效率,促进了主机系统的高效运行。

Description

一种高性能自适应垃圾收集方法和计算机系统
技术领域
本发明涉及内存分配和管理技术领域,具体涉及一种高性能自适应垃圾收集方法和计算机系统。
背景技术
在计算机系统中指令的记录通常都比指令的执行快很多,因此要求内存系统能够及时将大量指令写入索引缓存。计算机系统借由指令索引通过临时存储一系列指令来管理存储在闪存设备(Flash),固态存储(SSD),非易失性内存设备(NVM)等存储介质中的数据。其中,指令索引发挥缓存的作用,记录从多个系统应用接受来的指令,比如读取、写入、删除、重写的指令。而为了避免缓存被占满而变得不可用,因此对索引进行的垃圾收集操作就必须保证稳定且持续地运行,而现有技术中的垃圾处理机制处理效率较低,也由此带来了对垃圾收集机制的重视和挑战,也期待能有更优化的机制出现。
发明内容
鉴于上述问题,本发明实施例一种高性能自适应垃圾收集方法,解决现有存储介质内缓存数据释放效率过低的技术问题。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种高性能自适应垃圾收集方法,其特征在于,所述方法包括:
将系统应用发送的指令缓存至指令索引;
实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;
实时监测系统应用向存储介质发送指令时底层参数的数值变化;
当上层参数和/或底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作。
一实施例中,所述将系统应用发送的指令缓存至指令索引包括:
将指令索引建立在存储介质上,所述指令索引为环形缓冲器;
每个系统应用占用一部分环形缓冲器形成一个系统应用对应的独立指令缓冲区;
每个独立指令缓冲区对应存储介质的容量和垃圾收集线程;
通过指针将数据占用内存的容量和存储介质的位置进行关联,通过指令索引管理缓存在存储介质中的数据,通过垃圾收集线程为系统应用分配专属的CPU资源和存储介质IO带宽。
一实施例中,当所述指令索引管理的数据超过无效数据的阈值和/或数据所占容量超过存储介质容量的阈值时,垃圾收集线程可以超过分配的CPU资源和存储介质IO带宽。
一实施例中,所述实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化包括:
通过上层监测器实时接收向主机指令接口传送的上层参数;
所述上层参数包括:更新率、删除率和无效数据百分比。
一实施例中,所述实时监测系统应用向存储介质发送指令时底层参数的数值变化包括:
通过底层监测器实时接收向主机指令接口传送的底层参数;
所述底层参数包括:IOPS速率、TRIM指令删除速率和指令索引容量。
一实施例中,所述当上层参数和/或底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作包括:
对垃圾处理器进行初始化,通过垃圾收集器为每个系统应用动态分配CPU资源、存储介质IO带宽和指令索引;
当上层参数和/或底层参数的数值超过预定的阈值时,垃圾收集器执行垃圾收集操作;
垃圾收集器在执行垃圾收集操作时,针对指令索引建立资源收集过程,在资源收集过程中释放指令索引空间和存储介质空间。
一实施例中,所述资源收集过程包括:
采用最大IO块尺寸对存储介质执行批量读取和批量写入操作;
对指令索引管理的数据执行批量读取操作;
对指令索引引用的数据执行TRIM指令;
执行TRIM指令后批量写入有效数据。
第二方面,本发明提供一种装置,该装置包括:
内存管理单元:用于将系统应用发送的指令缓存至指令索引;
上层监测单元:用于实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;
底层监测单元:用于实时监测系统应用向存储介质发送指令时底层参数的数值变化;
垃圾收集处理单元:用于当上层参数和/或底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作。
第三方面,本发明提供一种垃圾收集计算机系统,其特征在于,包括:
网络NET、主机系统、用户接口、一级存储介质和二级存储介质;
所述一级存储介质与主机系统直接耦合;
所述二级存储介质通过网络NET与主机系统间接耦合;
所述用户接口通过主机系统对一级存储介质和二级存储介质内的数据进行访问;
针对一级存储介质和二级存储介质配置第一方面提供的任一项所述的高性能自适应垃圾收集方法。
从上述描述可知,本发明实施例提供一种高性能自适应垃圾收集方法,通过上层和底层双重监测机制,根据上层参数和底层参数的变化自动触发对指令索引进行的垃圾收集操作,提高了垃圾收集操作的处理效率,促进了主机系统的高效运行。
附图说明
图1所示为本发明一实施例提供的一种高性能自适应垃圾收集方法流程示意图;
图2所示为本发明一实施例提供的一种高性能自适应垃圾收集方法中指令索引的节构框图;
图3所示为本发明一实施例提供的一种高性能自适应垃圾收集方法中执行垃圾收集操作的流程示意图;
图4所示为本发明一实施例提供的一种高性能自适应垃圾收集方法的整体架构图;
图5所示为本发明一实施例提供的一种高性能自适应垃圾收集装置的结构示意图;
图6所示为本发明一实施例提供的一种垃圾收集计算机系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明白,以下结合附图及具体实施方式对本发明作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于现有技术的缺点,本发明实施例提供了一种高性能自适应垃圾收集方法的具体实施方式,如图1所示,该方法具体包括:
S101:将系统应用发送的指令缓存至指令索引;
具体地,主机系统从系统应用接收来的指令数据量大,而且在主机系统记录指令的速度比指令的执行速度要快,因此造成大量指令的堆积,并占用CPU大量的资源,加大主机系统运行的负担,因此需要指令索引来缓存指令,指令索引发挥缓存的作用,并记录来自多个系统应用的指令,这些指令可以是读取、写入、删除、重写或者复杂的数据库查询等。
S102实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;
S103实时监测系统应用向存储介质发送指令时底层参数的数值变化;
具体地,系统应用向主机系统或存储介质发送的指令可以是读取、写入、查询等指令。主机指令接口为主机系统与系统应用进行交互或信息交换的媒介。主机系统通过使用上层监测和底层监测双重机制,对主机系统中产生的关于内存系统的参数进行实时监测,上层监测用于监测系统应用相关的上层参数(上层参数即系统应用向主机指令接口发送指令时主机系统的运行参数),底层监测用于监测存储介质相关的底层参数(底层参数即系统应用向存储介质发送指令时主机系统的运行参数)。上层参数和底层参数的集合能整体反应主机系统运行的效率,各个参数的变化影响着主机系统的运行效率。
S104当上层参数和/或底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作。
具体地,垃圾收集操作响应于上层参数或者底层参数是否超过预定的阈值。超过预定的阈值可以理解为,当上层参数或者底层参数中的某一个参数超过一定的数值后,或者超过一定的限度后就可能导致主机系统运行缓慢,将这一引发主机系统运行缓慢的参数的临界值定义为预定的阈值。只有当上层参数或者底层参数的数值超过预定的阈值时,才对指令索引进行垃圾收集操作,通过垃圾收集操作释放指令索引所占空间、CPU资源以及存储介质IO带宽。为后续有效数据或者指令的写入提供有效的空间、CPU资源和存储介质IO带宽。
在本实施例中,将主机系统接收的系统应用发送的操作指令统一写入指令索引,对操作指令集中收集统一管理,通过上层监测和底层监测全方位对系统应用和存储介质运行过程中对应产生的参数进行实时监控,当上层监测和底层监测的参数的数值超过预定的阈值后,自动触发对指令索引执行的垃圾收集操作,释放指令索引中缓存的无效数据,使得垃圾收集操作更加及时,同时使得主机系统即将出现运行缓慢时,提前对指令索引进行垃圾收集操作,提升系统运行性能,而不是利用主机系统运行变慢时形成的空闲时段进行垃圾处理操作,保持主机系统一直处于高效运行状态。
基于上述实施例,作为优选的实施例,步骤S101具体包括以下步骤:
将指令索引建立在存储介质上,指令索引为环形缓冲器;每个系统应用占用一部分环形缓冲器形成一个系统应用对应的独立指令缓冲区;
每个独立指令缓冲区有对应的存储介质容量和垃圾收集线程;
通过指针将数据占用内存的容量和存储介质的位置进行关联,通过指令索引管理缓存在存储介质中的数据,通过垃圾收集线程为系统应用分配专属的CPU资源和存储介质IO带宽。
具体地,参见图2,指令索引建立是在存储介质上的,指令索引实质为一个环形缓冲器,主机系统接收系统应用发送的指令全部缓存至环形缓冲器中。指令索引是通过指针将数据在内存和存储介质的位置关联起来,并用来管理存储介质中的一部分数据,被管理的这部分数据大小不一,可以是10MB、100B、1GB;或者是占存储介质容量的5%、10%、50%甚至全部。在为系统应用分配时,根据系统应用的数量将指令索引划分为对应数量的独立指令缓冲区,每个独立指令缓冲区对应着相应的系统应用,因此每个系统应用都对应着自身的缓存空间,垃圾收集线程对每个系统应用配置相对应的CPU资源和存储介质IO带宽,而对索引指令执行垃圾收集操作,即撤销或者释放指令索引中未使用的指针。
在本实施例中,在执行垃圾收集操作时可以使用垃圾收集线程来服务主机系统的所对应系统应用,对系统应用进行点对点的合理分配。进而调整垃圾收集线程的速度,来平衡全局CPU资源和全局存储介质IO带宽,减少主机系统的开销,提升垃圾处理操作的速率,进而促进主机系统高效运行。
基于上述实施例,作为优选的实施例,在步骤S101中,当指令索引管理的数据超过无效数据的阈值和/或数据所占容量超过存储介质容量的阈值时,垃圾收集线程可以超过分配的CPU资源和存储介质IO带宽。
具体地,每个垃圾收集线程都是单独管理的,垃圾收集操作为每个系统应用提供一个分配好的CPU资源和存储介质IO带宽。系统应用保持在分配好的CPU资源及存储介质IO带宽下运行,这样在垃圾收集操作执行过程中就可以将垃圾收集线程预设到最优的状态,同时方便垃圾收集线程动态分配CPU的资源和存储介质的IO带宽。在特殊情况下(即指令索引管理的数据超过无效数据的阈值和/或数据所占容量超过存储介质容量的阈值时)让垃圾收集线程可以超过分配的CPU资源和存储介质IO带宽。
在本实施例中,在分配好的垃圾收集线程不足以完成垃圾收集任务时,对垃圾收集线程进行扩展,加大垃圾收集操作的效率,节约了时间,同时避免了缓存数据的外溢。
基于上述实施例,作为优选的实施例,步骤S102具体包括:
通过上层监测器实时接收向主机指令接口传送的上层参数;
具体地,上层监测器用于追踪系统应用的上层参数,其还用于接收向主机指令接口实时传送的上层参数,实时反馈在系统应用与主机指令接口交互过程中主机系统的运行状态参数。
上层参数包括:更新率、删除率和无效数据百分比;
更新率为:更新指令或写入指令与读取指令的比率;
具体地,若一个系统应用有30:70的更新率,则意味着30%的更新指令和70%的读取指令,可以用MIPS做单位。
删除率为:数据从存储介质被删除的速率;
具体地,删除率可以用每秒从该存储介质被删除的对象的数量,或者每秒从该存储介质被删除的MB量表示。
无效数据百分比为:命令索引管理的内存容量中无效数据所占整体容量的百分比;
具体地,一个管理500MB数据的指令索引中有300MB的无用数据,则无效数据百分比就是60%,无效数据百分比随着系统应用传送重写指令或者删除指令而改变。
在本实施例中,定义了上层参数的具体内容,上层参数阈值的设定可以根据其具体变化,针对不同的运行环境进行针对性的修改,通过不断调试和优化,使得垃圾收集操作更加合理稳定。
基于上述实施例,作为优选的实施例,步骤S103具体包括:
通过底层监测器实时接收向主机指令接口传送的底层参数;
具体地,底层监测器用于追踪存储介质的底层参数,其还用于接收向主机指令接口实时传送的底层参数,实时反馈系统应用与存储介质交互过程中主机系统的运行状态参数。
底层参数包括:IOPS速率、TRIM指令删除速率和指令索引容量;
IOPS速率为:存储介质每秒执行输入/输出的速率;
具体地,IOPS速率是由每秒执行输入/输出量的表示。若一系统应用以每秒600MB速度在系统应用和存储介质之间发送写入/写出数据,则其IOPS可用600MB/S表示。
TRIM指令删除速率为:TRIM指令每秒从存储介质删除数据的速率;
具体地,TRIM指令是主机指令接口收到的永久删除一段数据块的指令。TRIM指令删除速率可以用每秒从存储介质被删除的对象数量,也可用每秒从存储介质被删除的MB量来表示。
指令索引容量为:指令索引能管理的存储介质的最大容量。
具体地,指令索引容量是指令索引能管理的存储介质的最大容量,通常用字节数或占用百分比来表示。
在本实施例中,定义了底层参数的具体内容,底层参数阈值的设定可以根据其具体变化,针对不同的运行环境进行针对性的修改,通过不断调试优化,使得垃圾收集操作更加合理稳定。
需要说明的是,上层监测器和底层监测器要周期性地追踪与之对应的上层参数和底层参数,而且要对上层参数和底层参数实时更新。在监测上层参数和底层参数时,垃圾收集系统也可生成混合型参数,例如对象无效率和指令索引容量倒计数。对象无效率为对象更新(或重写)的速度,换句话说,也就是存储介质中由指令索引管理的可用空间的减少速度。垃圾收集系统使用IOPS速率和更新率可以实时动态的计算出对象无效率。指令索引容量倒计数为指令索引所管理的存储空间将被填满所需时间。垃圾收集系统可使用指令索引容量和对象无效率可以实时动态的计算指令索引容量倒计。
通过针对对象无效率和指令索引容量倒计数设定合理的阈值也可以实现垃圾收集操作的触发,通过监测混合型参数的变化触发垃圾收集操作,使得垃圾收集操作机制更加完善,更加全面。
基于上述实施例,作为优选的实施例,如图3并结合4所示,步骤S104具体包括以下步骤:
对垃圾处理器进行初始化,通过垃圾收集器为每个系统应用动态分配CPU资源、存储介质IO带宽和独立指令缓冲区;
具体地,参见图4,存储介质ST3包括主存储和指令索引CI。由于从主机系统接收指令会比执行指令要快得多,因此需要一个环形缓冲器来存储指令。将指令索引CI等分为三个独立指令缓冲区CIP1、CIP2和CIP3;其中CIP1分配给系统应用APP1,CIP2分配给系统应用APP2,CIP3分配给系统应用APP3。为方便说明,图4中指令索引CI被等分为三份,而实际上,分配时大小可不相等。最为优选方案,通过保留一定量CPU资源、存储介质IO带宽和独立指令缓冲区,保证垃圾收集器GC在增加新的系统应用时,对垃圾收集器GC进行的初始化过程延迟可控。
系统应用可以预先提供一组数值,也可以当每个应用与主机指令接口HCI连接或断开连接时,让垃圾收集器GC动态分配CPU资源、存储介质IO带宽和独立指令缓冲区。例如当垃圾收集器GC从应用APP1、APP2和APP3中接收到初始化指令时,垃圾收集器GC可将1/3的指令平均执行速度、输入输出带宽和独立指令缓冲区分配给每个系统应用。当垃圾收集器GC从一个新的应用(图中未显示)接到又一条初始化指令时,垃圾收集器GC将1/4的指令平均执行速度、输入输出带宽和独立指令缓冲区重新分配给每个系统应用,保证系统运行的平稳,均衡每个系统应用运行速度。
当上层参数和/或底层参数的数值超过预定的阈值时,垃圾收集器执行垃圾收集操作;
具体地,参见图3,只有达到预设的阈值时垃圾收集器GC才执行垃收集操作。作为示例性的:例如垃圾收集器GC可以监测无效数据百分比(即上层参数中的一个参数)和指令索引容量(即底层参数中的一个参数),可以设置为无效数据百分比超过70%时或指令索引超过指令索引总容量的50%时执行垃圾收集任务,当两个参数都等于或低于预设阈值时关闭垃圾收集器GC。可以理解的是其他参数同样也可以最为垃圾收集操作触发的条件,其实设置方式如上所述,再此不在赘述。
垃圾收集器在执行垃圾收集操作时,针对指令索引建立资源收集过程,在资源收集过程中释放指令索引空间和存储介质空间。
具体地,垃圾收集器GC会被合理配置来确保垃圾收集系统尽可能协调已分配的CPU资源、存储介质IO带宽。当系统应用的CPU资源、存储介质IO带宽低于阈值时,垃圾收集器GC作相应调整。垃圾收集器GC可以一直处于工作状态,根据系统应用的无效率响应调整每秒垃圾收集指令的数量,当然垃圾收集指令体现在指令索引中。
在本实施例中,每当系统应用增加或者减少时,指令索引都会重新为每个系统应用分配相应的CPU资源、存储介质IO带宽,使得主机系统整体CPU资源和存储介质IO带宽分配更加合理,运行更加优化,系统应用运行更加平稳均衡,垃圾收集操作更快,效率更高。
基于上述实施例,作为优选的实施例,在步骤S104中的资源收集过程具体包括:采用最大IO块尺寸对存储介质执行批量读取和批量写入操作;
对指令索引管理的数据执行批量读取操作。
具体地,在进行垃圾收集操作时,垃圾收集器GC应优化垃圾收集批量读取和批量写入。例如对于批量写入,垃圾收集器GC应采用主机系统和存储驱动所允许最大IO输入输出块尺寸。批量读取时,垃圾收集器GC应采用可被分配给垃圾收集器GC的易失性内存读取的最大IO输入输出块尺寸。垃圾收集系统应计算出最有效的批量读取和写入任务的CPU资源、存储介质IO带宽需求,以估算每个调度的垃圾收集任务需要多少资源,并确保可预测的应用程序延迟并落入分配的CPU资源范围内和分配、存储介质IO带宽范围内。
对指令索引引用的数据执行TRIM指令;
执行TRIM指令后批量写入有效数据。
具体地,对指令索引引用的数据即为指令索引管理的内存,垃圾收集器GC可以混合使用批量读取、批量序列写入和TRIM指令来执行垃圾收集操作,比单独使用删除指令更快。首先对由指令索引管理的部分数据执行批量读取,然后对被指令索引引用的数据执行TRIM,最后再批量序列写入任何未使用的有效数据。
在本实施例中,通过批量读取、批量序列写入和TRIM指令来执行垃圾收集操作,垃圾收集器GC能快速收集被指令索引管理的大部分数据,并降低数据的资源需求,使主机系统运行更加高效。
基于同一发明构思,本申请实施例还提供了一种高性能自适应垃圾收集装置,可以用于实现上述实施例所描述的一种高性能自适应垃圾收集方法,如下面的实施例所述。由于一种高性能自适应垃圾收集装置解决问题的原理与一种高性能自适应垃圾收集方法相似,因此一种高性能自适应垃圾收集装置的实施可以参见一种高性能自适应垃圾收集方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明提供了一种高性能自适应垃圾收集装置,如图5所示。在图5中该装置包括:
内存管理单元201:用于将系统应用发送的指令缓存至指令索引;
上层监测单元202:用于实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;
底层监测单元203:用于实时监测系统应用与存储介质交互时底层参数的数值变化;
垃圾收集处理单元204:用于当上层参数和/或底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作。
基于上述实施例,作为优选的实施例中的内存管理单元201具体用于:
将指令索引建立在存储介质上,指令索引为环形缓冲器;
每个系统应用占用一部分环形缓冲器形成一个系统应用对应的独立指令缓冲区;
每个独立指令缓冲区对应存储介质的容量和垃圾收集线程;
通过指针将数据占用内存的容量和存储介质的位置进行关联,通过指令索引管理缓存在存储介质中的数据,通过垃圾收集线程为系统应用分配专属的CPU资源和存储介质IO带宽。
基于上述实施例,作为优选的实施例中的内存管理单元201还用于当指令索引管理的数据超过无效数据的阈值和/或数据所占容量超过存储介质容量的阈值时,垃圾收集线程可以超过分配的CPU资源和存储介质IO带宽。
基于上述实施例,作为优选的实施例中的上层监测单元202具体用于:
通过上层监测器实时向主机指令接口传送上层参数;
上层参数包括:更新率、删除率和无效数据百分比;
更新率为:更新指令或写入指令与读取指令的比率;
删除率为:数据从存储介质被删除的速率;
无效数据百分比为:命令索引管理的内存容量中无效数据所占整体容量的百分比。
基于上述实施例,作为优选的实施例中的底层监测单元203具体用于:
通过底层监测器实时向主机指令接口传送上层参数;
底层参数包括:IOPS速率、TRIM指令删除速率和指令索引容量;
IOPS速率为:存储介质每秒执行输入/输出的速率;
TRIM指令删除速率为:TRIM指令每秒从存储介质删除数据的速率;
指令索引容量为:指令索引能管理的存储介质的最大容量。
基于上述实施例,作为优选的实施例中的垃圾收集处理单元204具体用于:
对垃圾处理器进行初始化,通过垃圾收集器为每个系统应用动态分配CPU资源、存储介质IO带宽和指令索引;
当上层参数和/或底层参数的数值超过预定的阈值时,垃圾收集器执行垃圾收集操作;
垃圾收集器在执行垃圾收集操作时,针对指令索引建立资源收集过程,在资源收集过程中释放指令索引空间和存储介质空间。
基于上述实施例,作为优选的实施例中垃圾收集处理单元204中的资源收集过程包括:
采用最大IO块尺寸对存储介质执行批量读取和批量写入操作;
对指令索引管理的数据执行批量读取操作;
对指令索引引用的数据执行TRIM指令;
执行TRIM指令后批量写入有效数据。
上述一种高性能自适应垃圾收集装置,通过上层和底层双重监测机制,根据上层参数和底层参数的变化自动触发对指令索引进行的垃圾收集操作,提高了垃圾收集操作的处理效率,促进了主机系统的高效运行。
本发明还提供了一种垃圾收集计算机系统,其结构如图6所示。
参见图6,该垃圾收集计算计系统可以包括:
网络NET、主机系统、用户接口、一级存储介质和二级存储介质;其中,一级存储介质与主机系统直接耦合;
二级存储介质通过网络NET与主机系统间接耦合;
用户接口通过主机系统对一级存储介质和二级存储介质内的数据进行访问;
具体地,网络Net可以是用于主机系统之间数据传送的任何集线器(hub),例如分组交换网络,Internet,局域网(LAN),广域网(WAN),VPN或其它数据集线器(hub)。
用户接口UI访问主机系统(主机系统CS已经和一级存储介质ST1在功能上直接耦合,主机系统CS和二级存储介质ST2功能上间接耦合)。用户接口UI向主机系统CS发送指令,来访问一级存储介质ST1或二级存储介质ST2,例如写入,读取,删除,重写,查询等。
主机系统CS可以是能接入存储介质的任何一台主机系统,比如文件系统、操作系统或数据库。可以使用任何数据库,比如能用来存储对象的键值存储(从1KB到1GB等)。
一级存储介质ST1和二级存储介质ST2可以是任何持久性数据存储设备,例如NVM(ATI驱动盘),SSD或Flash内存。一级存储介质ST1为非瞬态计算机可读介质,与主机系统CS直接耦合。二级存储介质ST2为非瞬态计算机可读介质,通过网络Net与主机系统CS间接耦合。一级存储介质ST1和二级存储介质ST2可以是由主机系统CS管理的任何的持久性存储介质,并可以和主机系统CS直接或者间接耦合,且一般情况主机系统CS只管理和其直接耦合的存储。
垃圾收集计算计系统S,可以是一个分布式系统,含有用户接口,存储媒介,一台或多台计算机系统;也可以是一套计算机系统,更可以是一个云系统。
针对一级存储介质ST1和二级存储介质ST2配置上述的高性能自适应垃圾收集方法。
一级存储介质ST1中存储的数据可以通过网络NET同步至二级存储介质ST2,这样一级存储介质ST1与二级存储介质ST2中存储的数据是相同的,起到备份的作用;当然一级存储介质ST1和二级存储介质ST1也可以用来分别存储不同的数据(即采用分布式结构将整体数据分块存储至一级存储介质ST1和二级存储介质ST1中,在这种情况下一级存储介质ST1和二级存储介质ST1内存储的数据之和即为全部数据)。
本实施例,将本发明一种高性能自适应垃圾收集方法应用于硬件,垃圾收集方法相对于垃圾收集计算机系统是透明的,垃圾垃圾收集方法的存在使得垃圾收集计算及系统运行更加高效。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (7)

1.一种高性能自适应垃圾收集方法,其特征在于,所述方法包括:将系统应用发送的指令缓存至指令索引;
实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;
实时监测系统应用向存储介质发送指令时底层参数的数值变化;
当上层参数和底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作;
所述将系统应用发送的指令缓存至指令索引包括:
将指令索引建立在存储介质上,所述指令索引为环形缓冲器;
每个系统应用占用一部分环形缓冲器形成一个系统应用对应的独立指令缓冲区;
每个独立指令缓冲区对应存储介质的容量和垃圾收集线程;
通过指针将数据占用内存的容量和存储介质的位置进行关联,通过指令
索引管理缓存在存储介质中的数据,通过垃圾收集线程为系统应用分配专属的 CPU资源和存储介质 IO带宽;
所述当上层参数和底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作包括:
对垃圾处理器进行初始化,通过垃圾收集器为每个系统应用动态分配 CPU资源、存储介质 IO带宽和独立指令缓冲区;
当上层参数和底层参数的数值超过预定的阈值时,垃圾收集器执行垃圾收集操作;
垃圾收集器在执行垃圾收集操作时,针对指令索引建立资源收集过程,在资源收集过程中释放指令索引空间和存储介质空间;
所述上层参数包括:更新率、删除率和无效数据百分比;
所述底层参数包括:IOPS速率、TRIM指令删除速率和指令索引容量。
2.根据权利要求 1 所述的高性能自适应垃圾收集方法,其特征在于,当所述指令索引管理的数据超过无效数据的阈值和/或数据所占容量超过存储介质容量的阈值时,垃圾收集线程可以超过分配的 CPU资源和存储介质 IO带宽。
3.根据权利要求 1 所述的高性能自适应垃圾收集方法,其特征在于,所述实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化包括:
通过上层监测器实时接收向主机指令接口传送的上层参数。
4. 根据权利要求 1 所述的高性能自适应垃圾收集方法,其特征在于,
所述实时监测系统应用向存储介质发送指令时底层参数的数值变化包括:通过底层监测器实时接收向主机指令接口传送的底层参数。
5.根据权利要求 1 所述的高性能自适应垃圾收集方法,其特征在于,所述资源收集过程包括:
采用最大 IO块尺寸对存储介质执行批量读取和批量写入操作;
对指令索引管理的数据执行批量读取操作;
对指令索引引用的数据执行 TRIM指令;
执行 TRIM指令后批量写入有效数据。
6.一种高性能自适应垃圾收集装置,其特征在于,所述装置包括:
内存管理单元:用于将系统应用发送的指令缓存至指令索引;所述将系统应用发送的指令缓存至指令索引包括:
将指令索引建立在存储介质上,所述指令索引为环形缓冲器;
每个系统应用占用一部分环形缓冲器形成一个系统应用对应的独立指令缓冲区;
每个独立指令缓冲区对应存储介质的容量和垃圾收集线程;
通过指针将数据占用内存的容量和存储介质的位置进行关联,通过指令
索引管理缓存在存储介质中的数据,通过垃圾收集线程为系统应用分配专属的 CPU资源和存储介质 IO带宽;
上层监测单元:用于实时监测系统应用向主机系统的主机指令接口发送指令时上层参数的数值变化;
底层监测单元:用于实时监测系统应用与存储介质交互时底层参数的数值变化;
垃圾收集处理单元:用于当上层参数和底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作;
所述当上层参数和底层参数的数值超过预定的阈值时对指令索引执行垃圾收集操作包括:
对垃圾处理器进行初始化,通过垃圾收集器为每个系统应用动态分配CPU资源、存储介质 IO带宽和独立指令缓冲区;
当上层参数和底层参数的数值超过预定的阈值时,垃圾收集器执行垃圾收集操作;
垃圾收集器在执行垃圾收集操作时,针对指令索引建立资源收集过程,在资源收集过程中释放指令索引空间和存储介质空间;
所述上层参数包括: 更新率、删除率和无效数据百分比;
所述底层参数包括:IOPS速率、TRIM指令删除速率和指令索引容量。
7.一种垃圾收集计算机系统,其特征在于,包括:
网络 NET、主机系统、用户接口、一级存储介质和二级存储介质; 所述一级存储介质与主机系统直接耦合;
所述二级存储介质通过网络 NET与主机系统间接耦合;
所述用户接口通过主机系统对一级存储介质和二级存储介质内的数据进行访问;
针对一级存储介质和二级存储介质配置权利要求 1 至 5 任一项所述的高性能自适应垃圾收集方法。
CN202010984456.1A 2020-09-18 2020-09-18 一种高性能自适应垃圾收集方法和计算机系统 Active CN111930517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010984456.1A CN111930517B (zh) 2020-09-18 2020-09-18 一种高性能自适应垃圾收集方法和计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010984456.1A CN111930517B (zh) 2020-09-18 2020-09-18 一种高性能自适应垃圾收集方法和计算机系统

Publications (2)

Publication Number Publication Date
CN111930517A CN111930517A (zh) 2020-11-13
CN111930517B true CN111930517B (zh) 2023-07-14

Family

ID=73333926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010984456.1A Active CN111930517B (zh) 2020-09-18 2020-09-18 一种高性能自适应垃圾收集方法和计算机系统

Country Status (1)

Country Link
CN (1) CN111930517B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392089B (zh) * 2021-06-25 2023-02-24 瀚高基础软件股份有限公司 一种数据库索引优化方法及可读存储介质
CN113859801B (zh) * 2021-08-24 2023-03-31 青岛海尔科技有限公司 家庭垃圾的处理方法和装置、存储介质及电子装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049058A (zh) * 2006-12-06 2013-04-17 弗森-艾奥公司 使用空数据令牌指令管理存储设备中的数据的装置、系统和方法
CN106886475A (zh) * 2017-01-23 2017-06-23 北京思特奇信息技术股份有限公司 一种监控服务器及基于命令行的主机监控方法
CN108038026A (zh) * 2017-11-17 2018-05-15 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN109086001A (zh) * 2018-06-26 2018-12-25 郑州云海信息技术有限公司 一种NAND Flash垃圾回收方法及系统
CN109344039A (zh) * 2018-09-13 2019-02-15 郑州云海信息技术有限公司 一种主机智能监控方法及装置
CN109358804A (zh) * 2015-09-29 2019-02-19 华为技术有限公司 一种数据处理方法、装置及闪存设备
CN109496300A (zh) * 2018-03-23 2019-03-19 华为技术有限公司 一种存储介质垃圾回收方法、存储介质和程序产品
CN109558244A (zh) * 2018-12-03 2019-04-02 郑州云海信息技术有限公司 垃圾信息回收方法、装置、设备及计算机可读存储介质
CN110018966A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 一种存储器、存储系统、主机及数据操作、垃圾回收方法
CN110134328A (zh) * 2018-02-02 2019-08-16 富士通株式会社 存储控制装置、存储控制方法和计算机可读记录介质
CN210402325U (zh) * 2019-11-21 2020-04-24 南开大学 一种基于块序列表的nand 闪存垃圾回收电路
CN111290975A (zh) * 2018-12-07 2020-06-16 北京忆恒创源科技有限公司 使用统一缓存处理读命令与预读命令的方法及其存储设备
US10713162B1 (en) * 2018-04-26 2020-07-14 Lightbits Labs Ltd. System and method for computer data garbage collection acceleration using peer to peer data transfers
CN111563052A (zh) * 2020-04-30 2020-08-21 深圳忆联信息系统有限公司 降低读延时的缓存方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503590B2 (en) * 2017-09-21 2019-12-10 International Business Machines Corporation Storage array comprising a host-offloaded storage function

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049058A (zh) * 2006-12-06 2013-04-17 弗森-艾奥公司 使用空数据令牌指令管理存储设备中的数据的装置、系统和方法
CN109358804A (zh) * 2015-09-29 2019-02-19 华为技术有限公司 一种数据处理方法、装置及闪存设备
CN106886475A (zh) * 2017-01-23 2017-06-23 北京思特奇信息技术股份有限公司 一种监控服务器及基于命令行的主机监控方法
CN108038026A (zh) * 2017-11-17 2018-05-15 中国科学院信息工程研究所 一种基于闪存的数据快速恢复方法与系统
CN110018966A (zh) * 2018-01-09 2019-07-16 阿里巴巴集团控股有限公司 一种存储器、存储系统、主机及数据操作、垃圾回收方法
CN110134328A (zh) * 2018-02-02 2019-08-16 富士通株式会社 存储控制装置、存储控制方法和计算机可读记录介质
CN109496300A (zh) * 2018-03-23 2019-03-19 华为技术有限公司 一种存储介质垃圾回收方法、存储介质和程序产品
US10713162B1 (en) * 2018-04-26 2020-07-14 Lightbits Labs Ltd. System and method for computer data garbage collection acceleration using peer to peer data transfers
CN109086001A (zh) * 2018-06-26 2018-12-25 郑州云海信息技术有限公司 一种NAND Flash垃圾回收方法及系统
CN109344039A (zh) * 2018-09-13 2019-02-15 郑州云海信息技术有限公司 一种主机智能监控方法及装置
CN109558244A (zh) * 2018-12-03 2019-04-02 郑州云海信息技术有限公司 垃圾信息回收方法、装置、设备及计算机可读存储介质
CN111290975A (zh) * 2018-12-07 2020-06-16 北京忆恒创源科技有限公司 使用统一缓存处理读命令与预读命令的方法及其存储设备
CN210402325U (zh) * 2019-11-21 2020-04-24 南开大学 一种基于块序列表的nand 闪存垃圾回收电路
CN111563052A (zh) * 2020-04-30 2020-08-21 深圳忆联信息系统有限公司 降低读延时的缓存方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ARM嵌入式μClinux下Nand-Flash的应用设计;何剑锋;李大晖;李祥;;自动化与仪表(03);全文 *

Also Published As

Publication number Publication date
CN111930517A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US10210082B2 (en) Rate matching technique for balancing segment cleaning and I/O workload
US10387202B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
US8478731B1 (en) Managing compression in data storage systems
US9600337B2 (en) Congestion avoidance in network storage device using dynamic weights
CN101393536B (zh) 存储系统
DE112013004250B4 (de) Vorrichtung, Verfahren und Computerprogrammprodukt für adaptive Persistenz
US6047356A (en) Method of dynamically allocating network node memory's partitions for caching distributed files
US9858197B2 (en) Cache management apparatus of hybrid cache-based memory system and the hybrid cache-based memory system
US10170151B2 (en) Method and system for handling random access write requests for a shingled magnetic recording hard disk drive
US9323655B1 (en) Location of data among storage tiers
US8762995B2 (en) Computing system, method of controlling the same, and system management unit which plan a data migration according to a computation job execution schedule
US9323463B2 (en) Storage system and cache control method
US9354989B1 (en) Region based admission/eviction control in hybrid aggregates
CN111930517B (zh) 一种高性能自适应垃圾收集方法和计算机系统
JP2008522281A (ja) 記憶システムにおけるサービス品質を管理するためのシステム及び方法
EP3353627B1 (en) Adaptive storage reclamation
WO2016056104A1 (ja) ストレージ装置、及び、記憶制御方法
US9104317B2 (en) Computer system and method of controlling I/O with respect to storage apparatus
CN112631520A (zh) 分布式块存储系统、方法、装置、设备和介质
US20190012083A1 (en) System and method for managing a non-volatile storage resource as a shared resource in a distributed system
US11307797B2 (en) Storage device and information processing system
CN111459402A (zh) 磁盘可控缓冲写方法、控制器、混合io调度方法及调度器
US20120124269A1 (en) Organizing Memory for Effective Memory Power Management
CN115268763A (zh) 一种缓存管理方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant