一种SSD缓存的输入输出流量控制方法,其特征在于,包括如下步骤:步骤S100,截获磁盘读写进程或者线程的磁盘数据,将磁盘数据缓存到SSD缓存装置空间中作为缓存数据;步骤S200,检测SSD缓存装置中是否通过缓存清空线程将缓存数据清空到外部目的磁盘;如果是,则进入步骤S500;否则进入步骤S300;步骤S300,统计作为缓存使用的固态硬盘的已使用空间,得到SSD缓存使用率,并在SSD缓存使用率超过第一预设比率时,进入步骤S400;步骤S400,启动缓存清空线程,通过缓存清空线程,按预先设定的基准参考因子对应的缓存数据清空速度,将SSD缓存装置中的缓存数据清空到目的磁盘;步骤S500,计算生成比例因子,并根据比例因子对SSD缓存装置进行缓存数据清空速度进行调整,对SSD缓存流量控制,直至SSD缓存装置的缓存使用率低于预先设定的第二预设比率。
【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种SSD缓存的输入输出流量控制方法及装置,该方法包括:截获磁盘读写进程或者线程的磁盘数据,将磁盘数据缓存到SSD缓存装置空间中作为缓存数据;检测是否通过缓存清空线程将缓存数据清空到外部目的磁盘;并判断进行缓存清空处理;计算生成比例因子,并根据比例因子对SSD缓存装置进行缓存数据清空速度进行调整,对SSD缓存流量控制,直至SSD缓存装置的缓存使用率低于预先设定的第二预设比率。其根据外部磁盘的IO流量,动态控制进入SSD缓存的IO流量,最大化的利用SSD空间和性能来满足用户需求。【专利说明】SSD缓存的输入输出流量控制方法及装置
本专利技术涉及计算机存储控制
,特别是涉及一种以SSD (固态硬盘)作为缓存的SSD缓存的输入输出(IO)流量控制方法及SSD缓存装置。
技术介绍
目前传统存储器(如磁盘)的IO(Input/Output,输入输出)速度明显成为存储性能瓶颈,而以SSD (Solid State Disk,固态硬盘)作为存储器,使存储器的IO速度有了明显提升,但是由于SSD的价格相对较高,无法在整个存储器中全部安装使用,因此现有技术中将其作为缓存(Cache)使用,也就是SSD作为内存(memory)和硬盘(外部存储器)之间的一层缓存(Cache)来缓冲数据,以提高IO带宽和响应速度,称为SSD缓存(SSD Cache)。在现有技术中实现的SSD缓存方法中,需要解决一个问题,即在大压力IO的情况下,SSD缓存的空间将很快被消耗,这时必须启动flush机制(清空缓存机制),将缓存的数据写回到目的磁盘,由于磁盘IO速度明显慢于SSD的IO速度,相对于缓存(Cache)来讲,流入的IO速度远大于流出的IO速度,会导致缓存(Cache)空间被耗尽,最终出现拒绝服务等恶劣情况。因此,如何控制SSD缓存流量成为了迫切需要解决的问题。
技术实现思路
为了解决现有技术中存在的问题,本专利技术提供一种SSD缓存的输入输出(IO)流量控制方法及装置,其根据外部磁盘的IO流量,动态控制进入SSD缓存的IO流量,最大化的利用SSD空间和性能来满足用户需求。为实现本专利技术目的而提供的一种SSD缓存的输入输出流量控制方法,包括如下步骤:步骤S100,截获磁盘读写进程或者线程的磁盘数据,将磁盘数据缓存到SSD缓存装置空间中作为缓存数据;步骤S200,检测SSD缓存装置中是否通过缓存清空线程将缓存数据清空到外部目的磁盘;如果是,则进入步骤S500 ;否则进入步骤S300 ;步骤S300,统计作为缓存使用的固态硬盘的已使用空间,得到SSD缓存使用率,并在SSD缓存使用率超过第一预设比率时,进入步骤S400 ;步骤S400,启动缓存清空线程,通过缓存清空线程,按预先设定的基准参考因子对应的缓存数据清空速度,将SSD缓存装置中的缓存数据清空到目的磁盘;步骤S500,计算生成比例因子,并根据比例因子对SSD缓存装置进行缓存数据清空速度进行调整,对SSD缓存流量控制,直至SSD缓存装置的缓存使用率低于预先设定的第二预设比率。较优地,作为一实施例,所述步骤S200包括如下步骤:步骤S210,判断是否正在将SSD缓存装置中的缓存数据通过缓存清空线程清空到外部目的磁盘;步骤S220,如果判断没有正在将SSD缓存装置中的缓存数据通过缓存清空线程清空到外部目的磁盘,则进入步骤S300,监控其是否达到缓存清空线程启动条件而通知启动缓存清空线程;否则跳转到步骤S500,监控缓存清空速度。较优地,作为一实施例,所述步骤S500包括如下步骤:步骤S510,在将缓存数据写入到目的磁盘的过程中,累计统计写入SSD缓存装置的写IO的缓存数据的字节长度,即SSD缓存装置的IO流入速度,以及累计写出SSD缓存统计flush字节长度,即SSD缓存磁盘中的缓存数据清空速度,计算生成SSD缓存装置中的比例因子;步骤S520,比较比例因子和基准参考因子,根据比较结果调整缓存清空速度,以新的缓存清空速度,将SSD缓存装置中的缓存数据清空到目的磁盘;步骤530,将SSD缓存中的数据写回到目的磁盘后,继续记录统计SSD缓存装置的每个写入写出的字节长度,并释放相应的SSD缓存装置空间,统计得到SSD缓存装置的缓存使用率;步骤S540,判断SSD缓存装置的缓存使用率是否低于第二预设比率;如果是,则结束缓存清空线程并返回;否则,返回步骤S510,循环进行流量控制。较优地,作为一实施例,所述步骤S520中,根据比较结果调整缓存清空速度,包括如下步骤: 步骤S521,若比例因子ratio大于等于基准参考因子RefRatio,则表明流入速度大于等于flush速度,根据比例因子ratio的值调整flush速度,使流入速度小于等于flush 速度,即 vi ^ vf ;步骤S522,若比例因子ratio小于基准参考因子RefRatio,则表明流入速度小于flush速度,则flush速度vf不变。较优地,作为一实施例,所述预先设定的第一预设比率为70%~90% ;所述预先设定的第二预设比率为20%~30%。较优地,作为一实施例,其中,所述步骤S510中,所述根据累计统计的写10的字节长度和flush字节长度,计算得到比例因子ratio为:设流入速度为vi,flush速度为vf,基准参考因子RefRatio,则:Ratio=(vi/vf) ^RefRatio ;其中,所述步骤S521中,若比例因子ratio大于基准参考因子RefRatio JlJflush速度 vf = vi* (rat io/Ref Ratio);其中,所述步骤S522中,若比例因子ratio小于基准参考因子RefRatio,则flush速度vf保持不变。为实现本专利技术目的还提供一种SSD缓存装置,包括作为连接在外部磁盘上作为缓存的固态硬盘SSD,还包括缓存控制装置;所述缓存控制装置,包括截获模块,检测模块,统计模块,清空处理模块,计算调整控制模块;其中:所述截获模块,用于截获磁盘读写进程或者线程的磁盘数据,将磁盘数据缓存到固态硬盘SSD中作为缓存数据;所述检测模块,用于检测是否通过缓存清空线程将缓存数据清空到外部目的磁盘;如果是,则转到计算调整控制模块进行处理;否则转到统计模块进行处理;所述统计模块,用于统计固态硬盘的已使用空间,得到SSD缓存使用率,并在SSD缓存使用率超过第一预设比率时,进入清空处理模块;所述清空处理模块,用于启动缓存清空线程,通过缓存清空线程,按预先设定的基准参考因子对应的缓存数据清空速度,将SSD缓存装置中的缓存数据清空到目的磁盘;所述计算调整控制模块,用于计算生成比例因子,并根据比例因子对SSD缓存装置进行缓存数据清空速度进行调整,对SSD缓存流量控制,直至SSD缓存装置的缓存使用率低于预先设定的第二预设比率。较优地,作为一实施例,所述检测模块包括判断子模块,判断处理子模块,其中:所述判断子模块,用于判断是否正在将SSD缓存装置中的缓存数据通过缓存清空线程清空到外部目的磁盘;所述判断处理子模块,用于如果判断没有正在将固态硬盘中的缓存数据通过缓存清空线程清空到外部目的磁盘,则转到统计模块,监控其是否达到缓存清空线程启动条件而通知启动缓存清空线程;否则跳转到计本文档来自技高网...
【技术保护点】
一种SSD缓存的输入输出流量控制方法,其特征在于,包括如下步骤:步骤S100,截获磁盘读写进程或者线程的磁盘数据,将磁盘数据缓存到SSD缓存装置空间中作为缓存数据;步骤S200,检测SSD缓存装置中是否通过缓存清空线程将缓存数据清空到外部目的磁盘;如果是,则进入步骤S500;否则进入步骤S300;步骤S300,统计作为缓存使用的固态硬盘的已使用空间,得到SSD缓存使用率,并在SSD缓存使用率超过第一预设比率时,进入步骤S400;步骤S400,启动缓存清空线程,通过缓存清空线程,按预先设定的基准参考因子对应的缓存数据清空速度,将SSD缓存装置中的缓存数据清空到目的磁盘;步骤S500,计算生成比例因子,并根据比例因子对SSD缓存装置进行缓存数据清空速度进行调整,对SSD缓存流量控制,直至SSD缓存装置的缓存使用率低于预先设定的第二预设比率。
【技术特征摘要】
【专利技术属性】
技术研发人员:裴金干,刘虹越,王术,王旭光,
申请(专利权)人:苏州捷泰科信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。