CN110569201B - 一种固态硬盘GC下降低写latency的方法及装置 - Google Patents
一种固态硬盘GC下降低写latency的方法及装置 Download PDFInfo
- Publication number
- CN110569201B CN110569201B CN201910782772.8A CN201910782772A CN110569201B CN 110569201 B CN110569201 B CN 110569201B CN 201910782772 A CN201910782772 A CN 201910782772A CN 110569201 B CN110569201 B CN 110569201B
- Authority
- CN
- China
- Prior art keywords
- data blocks
- lkm
- value
- write
- arbitration
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 239000007787 solid Substances 0.000 title claims abstract description 16
- 238000013468 resource allocation Methods 0.000 claims description 9
- 230000008447 perception Effects 0.000 claims 2
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000004817 gas chromatography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
Abstract
本发明实施例公开了一种固态硬盘GC下降低写latency的方法及装置,方法包括分别统计不同数据块的数量,所述不同数据块包括GC源block、GC目的block和给LKM提供的空闲block;根据不同数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;将仲裁值发送给LKM,LKM根据仲裁值为GC写分配data frame资源。本发明感知HOST写压力,衡量写压力和GC效率,以此为根据为GC分配合适的data frame资源,提高资源利用率,降低了写latency,提升产品性能。
Description
技术领域
本发明涉及硬盘垃圾回收技术领域,具体地说是一种固态硬盘GC(GarbageCollection,垃圾回收)下降低写latency的方法及装置。
背景技术
SSD(Solid State Drives,固态硬盘)的垃圾回收其实就相当于固态硬盘的碎片整理,它是固态硬盘自身主控芯片的自动处理机制,不依赖于操作系统。由于SSD固态硬盘擦除是以数据块(block)为单位,所以垃圾回收也是以数据块为单位进行回收的,即将数据块中的所有有效page合并到一个新的数据块中,并将旧的数据块进行擦除。垃圾回收既要保证提供充足空闲数据块块给主机写,又要尽可能小的减小对SSD主控资源的占用进而减小对SSD性能的影响。
现有方案在任何情形下,LKM(Lookup Manager,查询管理器)都会为WLM(Wearleveling Manager,损耗均衡管理器)的GC写分配出一定数量的data frame资源,这样在没有GC写或者有GC写并且host写的压力很小的情况下,造成主控data frame资源的浪费,影响了随机写的性能和latency。
发明内容
本发明实施例中提供了一种固态硬盘GC下降低写latency的方法及装置,以解决现有技术中主控data frame资源浪费的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
本发明第一方面提供了一种固态硬盘GC下降低写latency的方法,包括以下步骤:
分别统计不同数据块的数量,所述不同数据块包括GC源数据块、GC目的数据块和给LKM提供的空闲数据块;
根据所述不同数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;
将所述仲裁值发送给LKM,LKM根据所述仲裁值为GC写分配data frame资源。
进一步地,所述感知HOST的写压力具体为:
根据设定时间内给LKM提供的空闲数据块的数量判断HOST写压力,所述给LKM提供的空闲数据块的数量越大,则HOST写压力越大。
进一步地,所述GC效率具体为:
在同一时间段内,回收的GC源数据块数量与消耗的GC目的数据块数量的差值。
进一步地,所述仲裁值的计算具体为:
在同一时间段内,利用所述GC效率与给LKM提供的空闲数据块数量的差值,作为所述仲裁值。
进一步地,所述仲裁值与为GC写分配的data frame(数据帧,为数据链路层的协议数据单元)的个数n为线性关系,具体为:
n=kw+b,
式中,k为线性倍数,w为仲裁值,b=1。
进一步地,所述方法还包括:
获取active_gc_count的值,在active_gc_count的值为0时,LKM为GC写分配dataframe个数为1。
本发明第二方面提供了一种固态硬盘GC下降低写latency的装置,包括LKM模块和WLM模块,所述WLM模块包括数量统计单元和计算单元,所述LKM模块包括资源分配单元;
数量统计单元,用于分别统计GC源数据块、GC目的数据块和给LKM提供的空闲数据块的数量;
第一计算单元,根据各数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;
资源分配单元,根据所述仲裁值为GC写分配data frame资源。
进一步地,所述WLM模块还包括信息获取单元,所述信息获取单元用于获取active_gc_count的值,在active_gc_count的值为0时,资源分配单元为GC写分配dataframe的个数为1。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、根据不同数据块的数量,判断HOST的写压力和GC效率,进而计算仲裁值,在保证充足空闲数据块的前提下,根据仲裁值调整LKM分配给GC写的data frame数量,减少主控data frame资源的浪费,提高了HOST写性能和资源利用率,降低了写latency。
2、实时获取active_gc_count的值,在active_gc_count的值为0时,直接为GC写分配最小data frame资源,节省操作步骤,快速进行资源分配。提升产品性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法实施例的流程示意图;
图2是本发明所述装置实施例的流程示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明固态硬盘GC下降低写latency的方法包括:
S1,分别统计不同数据块的数量,所述不同数据块包括GC源数据块、GC目的数据块和给LKM提供的空闲数据块;
S2,根据不同数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;
S3,将仲裁值发送给LKM,LKM根据仲裁值为GC写分配data frame资源。
步骤S1中,将回收的GC源数据块个数计为数据块_count0,GC目的数据块消耗的个数计为数据块_count1,提供给LKM的空闲数据块个数计为g。
步骤S2中,根据设定时间段内给LKM提供的空闲数据块的数量判断HOST写压力,在设定时间段内,给LKM提供的空闲数据块的数量越大,则HOST写压力越大。
GC效率r为:在同一时间内,回收的GC源数据块数量数据块_count0与消耗的GC目的数据块数量数据块_count1的差值。
仲裁值为:在同一时间段内,利用GC效率r与给LKM提供的空闲数据块数量g的差值。
在保证能提供充足的空闲数据块块的前提下,WLM通过IPC(Inter-ProcessCommunication,进程间通信)消息向LKM模块发送此仲裁值。
步骤S3中,LKM模块根据步骤S2中得到的仲裁值为GC写分配相应的data frame资源,仲裁值w与分配的GC data frame的个数n为线性关系n=kw+b,式中b=1,k为线性倍数,k值根据硬盘性能曲线确定,取硬盘性能曲线的斜率值。
本发明的方法还包括步骤:
实时获取active_gc_count(活跃GC数量或工作GC数量)的值,在active_gc_count的值为0,即无GC时,LKM为GC写分配data frame的个数为1。本步骤与上述步骤S1-S3同时进行,在active_gc_count的值为0时,能够快速完成data frame资源的分配,提高效率。步骤S3中得到的线性关系中b的值取1,为兼顾无GC的情况。在无GC时,仲裁值w为0,即使不通过本步骤,按照步骤S1-S3的步骤运行,也能得到相同的结果,即LKM为GC写分配的data frame个数为1。
如图2所示,本发明固态硬盘GC下降低写latency的装置包括LKM模块2和WLM模块1。WLM模块1包括数量统计单元11、计算单元12和信息获取单元13,LKM模块1包括资源分配单元21。
数量统计单元11用于分别统计GC源数据块、GC目的数据块和给LKM提供的空闲数据块的数量;计算单元12根据各数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;资源分配单元13根据所述仲裁值为GC写分配data frame资源。
信息获取单元21用于获取active_gc_count的值,在active_gc_count的值为0时,资源分配单元为GC写分配的data frame的个数为1。信息获取单元21与数量统计单元11和计算单元12同步工作,且在在active_gc_count的值为0时,直接调用资源分配单元为GC写分配data frame为1的最小资源。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (4)
1.一种固态硬盘GC下降低写latency的方法,其特征是,包括以下步骤:
分别统计不同数据块的数量,所述不同数据块包括GC源数据块、GC目的数据块和给查询管理器LKM提供的空闲数据块;
根据所述不同数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;
将所述仲裁值发送给查询管理器LKM,LKM根据所述仲裁值为GC写分配data frame资源;
所述感知HOST的写压力具体为:
根据设定时间内给LKM提供的空闲数据块的数量判断HOST写压力,所述给LKM提供的空闲数据块的数量越大,则HOST写压力越大;
所述GC效率具体为:
在同一时间段内,回收的GC源数据块数量与消耗的GC目的数据块数量的差值;
所述仲裁值的计算具体为:
在同一时间段内,利用所述GC效率与给LKM提供的空闲数据块数量的差值,作为所述仲裁值;
所述仲裁值与为GC写分配的data frame的个数n为线性关系,具体为:
n=kw+b,
式中,k为线性倍数,w为仲裁值,b=1。
2.根据权利要求1所述的固态硬盘GC下降低写latency的方法,其特征是,所述方法还包括:
获取活跃GC数量active_gc_count的值,在active_gc_count的值为0时,LKM为GC写分配data frame的个数为1。
3.一种固态硬盘GC下降低写latency的装置,包括LKM模块和WLM模块,所述LKM模块为查询管理器,所述WLM模块为损耗均衡管理器,其特征是,所述WLM模块包括数量统计单元和计算单元,所述LKM模块包括资源分配单元;
数量统计单元,用于分别统计GC源数据块、GC目的数据块和给LKM提供的空闲数据块的数量;
计算单元,根据各数据块的数量,感知HOST的写压力和GC效率,并计算仲裁值;
资源分配单元,根据所述仲裁值为GC写分配data frame资源;
所述感知HOST的写压力具体为:
根据设定时间内给LKM提供的空闲数据块的数量判断HOST写压力,所述给LKM提供的空闲数据块的数量越大,则HOST写压力越大;
所述GC效率具体为:
在同一时间段内,回收的GC源数据块数量与消耗的GC目的数据块数量的差值;
所述仲裁值的计算具体为:
在同一时间段内,利用所述GC效率与给LKM提供的空闲数据块数量的差值,作为所述仲裁值;
所述仲裁值与为GC写分配的data frame的个数n为线性关系,具体为:
n=kw+b,
式中,k为线性倍数,w为仲裁值,b=1。
4.根据权利要求3所述的固态硬盘GC下降低写latency的装置,其特征是,所述WLM模块还包括信息获取单元,所述信息获取单元用于获取活跃GC数量active_gc_count的值,在active_gc_count的值为0时,资源分配单元为GC写分配data frame的个数为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782772.8A CN110569201B (zh) | 2019-08-23 | 2019-08-23 | 一种固态硬盘GC下降低写latency的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782772.8A CN110569201B (zh) | 2019-08-23 | 2019-08-23 | 一种固态硬盘GC下降低写latency的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110569201A CN110569201A (zh) | 2019-12-13 |
CN110569201B true CN110569201B (zh) | 2021-09-10 |
Family
ID=68775839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910782772.8A Active CN110569201B (zh) | 2019-08-23 | 2019-08-23 | 一种固态硬盘GC下降低写latency的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569201B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708491B (zh) * | 2020-05-29 | 2022-11-04 | 苏州浪潮智能科技有限公司 | 一种随机写方法和装置 |
CN114153381A (zh) * | 2021-11-03 | 2022-03-08 | 尧云科技(西安)有限公司 | 一种降低固态硬盘写入性能波动的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336744A (zh) * | 2013-06-20 | 2013-10-02 | 华中科技大学 | 一种固态存储设备的垃圾回收方法及其系统 |
CN103902474A (zh) * | 2014-04-11 | 2014-07-02 | 华中科技大学 | 一种支持固态盘缓存动态分配的混合存储系统和方法 |
CN104050251A (zh) * | 2014-06-11 | 2014-09-17 | 深圳市茁壮网络股份有限公司 | 一种文件管理方法及管理系统 |
US9547448B2 (en) * | 2014-02-24 | 2017-01-17 | Netapp, Inc. | System and method for transposed storage in raid arrays |
CN108491159A (zh) * | 2018-03-07 | 2018-09-04 | 北京航空航天大学 | 一种基于随机延迟缓解i/o瓶颈的大规模并行系统检查点数据写入方法 |
CN109154908A (zh) * | 2016-05-13 | 2019-01-04 | 微软技术许可有限责任公司 | 具有精确垃圾收集报告的动态大小的局部 |
CN110018799A (zh) * | 2019-04-12 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 一种存储池pg主确定方法、装置、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635316B2 (en) * | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
-
2019
- 2019-08-23 CN CN201910782772.8A patent/CN110569201B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336744A (zh) * | 2013-06-20 | 2013-10-02 | 华中科技大学 | 一种固态存储设备的垃圾回收方法及其系统 |
US9547448B2 (en) * | 2014-02-24 | 2017-01-17 | Netapp, Inc. | System and method for transposed storage in raid arrays |
CN103902474A (zh) * | 2014-04-11 | 2014-07-02 | 华中科技大学 | 一种支持固态盘缓存动态分配的混合存储系统和方法 |
CN104050251A (zh) * | 2014-06-11 | 2014-09-17 | 深圳市茁壮网络股份有限公司 | 一种文件管理方法及管理系统 |
CN109154908A (zh) * | 2016-05-13 | 2019-01-04 | 微软技术许可有限责任公司 | 具有精确垃圾收集报告的动态大小的局部 |
CN108491159A (zh) * | 2018-03-07 | 2018-09-04 | 北京航空航天大学 | 一种基于随机延迟缓解i/o瓶颈的大规模并行系统检查点数据写入方法 |
CN110018799A (zh) * | 2019-04-12 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 一种存储池pg主确定方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
一种固态硬盘GC下降低写latency的方法及装置;蔡涛等;《计算机研究与发展》;20150731(第7期);第1558-1566页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110569201A (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7258849B2 (ja) | 低レイテンシ動作をサポートするssdアーキテクチャ | |
CN110569201B (zh) | 一种固态硬盘GC下降低写latency的方法及装置 | |
US20150106578A1 (en) | Systems, methods and devices for implementing data management in a distributed data storage system | |
US11265262B1 (en) | Information processing system and bursting control method | |
US20170286149A1 (en) | Method for Managing Memory of Virtual Machine, Physical Host, PCIE Device and Configuration Method Thereof, and Migration Management Device | |
WO2021004310A1 (zh) | 提升固态硬盘服务质量的方法及固态硬盘 | |
US11734183B2 (en) | Method and apparatus for controlling data flow in storage device, storage device, and storage medium | |
CA2832571A1 (en) | Allocation aware heap fragmentation metrics | |
US11243877B2 (en) | Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program | |
CN115357540B (zh) | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 | |
JP2018010615A (ja) | ホストへの動的帯域幅報告のための装置および方法 | |
US20070011214A1 (en) | Oject level adaptive allocation technique | |
CN115421651A (zh) | 固态硬盘的数据处理方法、固态硬盘、电子设备及介质 | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
JP2023508676A (ja) | ウェアレベリングを考慮したメモリ操作 | |
US20070033372A1 (en) | Windowing external block translations | |
CN110209354B (zh) | 用于处理数据的方法、装置、设备和介质 | |
WO2023284173A1 (zh) | 固态硬盘的任务分配方法、系统、电子设备及存储介质 | |
CN114442910A (zh) | 管理存储系统的方法、电子设备和计算机程序产品 | |
WO2018023966A1 (zh) | 一种缓存策略的确定方法及装置 | |
CN116401043A (zh) | 一种计算任务的执行方法和相关设备 | |
US20230037870A1 (en) | In-line data flow for computational storage | |
CN110865768B (zh) | 写缓存资源分配方法、装置、设备以及存储介质 | |
CN108920254B (zh) | 一种基于细粒度的内存分配方法 | |
CN111902804B (zh) | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
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 |