System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及计算机,特别是涉及一种数据处理方法、装置、系统和存储介质。
技术介绍
1、 基于virtio(virtual input&output,虚拟化输入输出)的网络架构中,在存在i/o请求操作时,前端驱动器将请求数据写入虚拟队列中,触发vm exit( vm-exit controlfields,网络虚拟机退出机制)通知到后端设备,后端设备读取虚拟队列中的请求数据后,会向虚拟机注入中断通知,使得虚拟机内的vcpu(virtual central processing unit,虚拟中央处理器)触发中断处理程序清理虚拟队列的缓存数据。
2、然而,在较多i/o请求操作时,客户机侧的前端驱动器会频繁触发虚拟机退出以通知到后端设备读取请求数据,同时宿主机侧也会频繁发起中断通知注入,相应地,客户机侧的vcpu则需要频繁响应中断进行处理,客户机侧和宿主机侧频繁中断增加了系统开销,使得网络性能不佳。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种提高virtio架构网络性能的数据处理方法、装置、系统和存储介质。
2、在第一方面,本公开的实施例提供了一种数据处理方法,应用于virtio网络架构中的前端驱动器,该方法包括:接收来自通用块设备层的待传数据的下发请求,将待传数据写入虚拟队列;
3、更新存储的待传位图信息,待传位图信息用于表示虚拟队列的数据写入状态,待传位图信息的位图数与虚拟队列的队列数相对应,一个位图数表示一个队列的数据写入状态
4、 在一些实施例中,数据处理方法还可以包括步骤:在满足预设的通知发出条件时,将更新后的待传位图信息写入pci寄存器(pci capability寄存器,pci/pcie规范中约定的一组标准寄存器)的第一区域,第一区域用于使后端设备获取更新后的待传位图信息。
5、在一些实施例中,数据处理方法还可以包括步骤:响应于客户机启动或设备热添加,将第一区域映射到virtio网络架构的客户机预设的地址空间中,得到用于执行第一区域输入输出读写操作的文件描述符;在客户机内存中创建用于存储待传位图信息的待传位图区域。
6、在一些实施例中,virtio网络架构中包括有第一计时计数器,数据处理方法还可以包括以下步骤:在全空的虚拟队列中写入首个待传数据时,启动第一计时计数器;
7、获取第一计时计数器的记录结果;根据记录结果确定是否满足通知发出条件。
8、在一些实施例中,数量阈值小于等于队列深度;数据处理方法还可以包括以下步骤:根据时间阈值内接收的待传数据总量和操作系统的内存页单页大小值确定数量阈值;其中,时间阈值为预设的引起业务延迟感知或影响用户使用体验的最大时间。
9、在一些实施例中,虚拟队列中包括设置有时钟乘数寄存器的流控缓冲区,时钟乘数寄存器用于记录表示数据传输的单位时间数量的数据;数据处理方法还可以包括以下步骤:根据数据传输的单位时间间隔和时钟乘数寄存器数值的乘积确定时间阈值;其中,时钟乘数寄存器数值与virtio网络架构中的宿主机的数据处理速度成正比,后端设备用于确定预设的评估周期内宿主机的数据处理速度,在当前评估周期内的当前数据处理速度大于上一评估周期内的原数据处理速度时,增大时钟乘数寄存器数值;在当前评估周期内的当前数据处理速度小于上一评估周期内的原数据处理速度时,减小时钟乘数寄存器数值。
10、在一些实施例中,将待传数据写入虚拟队列,包括:根据虚拟队列中的多个队列的队列编号信息从小到大顺序,将多个待传数据写入虚拟队列,待传位图信息的低位至高位的位图数逐个与队列编号信息从小到大的虚拟队列相对应。
11、在一些实施例中,数据处理方法还可以包括以下步骤:接收来自后端设备注入的中断通知;根据中断通知,确定已完成数据读取的虚拟队列;清理已读取的虚拟队列缓存数据,并更新待传位图信息。
12、在一些实施例中,根据中断通知清理虚拟队列的缓存数据,包括:根据中断通知,确定已完成数据读取的虚拟队列,清理已读取的虚拟队列缓存数据。
13、在第二方面,本公开的实施例提供了一种数据处理方法,应用于virtio网络架构中的后端设备,数据处理方法包括:接收virtio网络架构中的前端驱动器发出数据接收通知;前端驱动器用于根据接收的通用块设备层的待传数据的下发请求,将待传数据写入虚拟队列,更新存储的待传位图信息,待传位图信息用于表示虚拟队列的数据写入状态,待传位图信息的位图数与虚拟队列的队列数相对应,一个位图数表示一个队列的数据写入状态,在满足预设的通知发出条件时,发出数据接收通知;获取更新后的待传位图信息;根据更新后的待传位图信息从对应的虚拟队列中读取待传数据。
14、其中,通知发出条件包括虚拟队列中累积的待传数据数量达到数量阈值n,或,虚拟队列接收待传数据的时间间隔达到时间阈值t,n为大于1的整数,t大于0。
15、在一些实施例中,待传位图信息的低位至高位的位图数逐个与队列编号信息从小到大的虚拟队列相对应;根据更新后的待传位图信息从对应的虚拟队列中读取待传数据,包括:根据更新后的待传位图信息,从低位至高位逐位确认虚拟队列的数据写入状态,确定写入待传数据的队列编号信息;从队列编号信息对应的虚拟队列中读取待传数据。
16、在一些实施例中,数据处理方法还包括步骤:将读取的待传数据写入virtio网络架构中的宿主机的存储设备。
17、在一些实施例中,数据处理方法还包括以下步骤:在将读取的待传数据写入宿主机的存储设备之后,更新存储的已读位图信息,其中,已读位图信息用于表示虚拟队列的数据读取状态;在数据接收通知对应的待传数据均写入存储设备之后,将更新的已读位图信息写入pci寄存器的第二区域,并注入中断通知至前端驱动器;前端驱动器用于根据中断通知获取第二区域中的已读位图信息,清理已读位图信息对应的虚拟队列的缓存数据。
18、在一些实施例中,已读位图信息的位数与虚拟队列的队列数相对应,已读位图信息中的一个位图数与虚拟队列的一个队列的数据读取状态相对应。
19、在一些实施例中,数据处理方法还包括以下步骤:确定预设的评估周期内virtio网络架构中的宿主机的数据处理速度;根据数据处理速度确定时钟乘数寄存器数值,时钟乘数寄存器数值用于使前端驱动器确定通知发出条件相对应的时间阈值。
20、在一些实施例中,virtio网络架构中包括有第二计时计数器,用于记录宿主机的数据处理量和处理时间,确定预设的评估周期内宿主机的数据处理速度,包括:
21、根据第二计时计数器在评估周期内本文档来自技高网...
【技术保护点】
1.一种数据处理方法,应用于VirtIO网络架构中的前端驱动器,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述VirtIO网络架构中包括有第一计时计数器;所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述数量阈值小于等于队列深度;所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述虚拟队列中包括设置有时钟乘数寄存器的流控缓冲区,所述时钟乘数寄存器用于记录表示数据传输的单位时间数量的数据;所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述将所述待传数据写入虚拟队列,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种数据处理方法,应用于VirtIO网络架构中的后端设备,其特征在于,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述待传位图信息的低位至高位
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:将读取的待传数据写入所述VirtIO网络架构中的宿主机的存储设备。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:在将读取的待传数据写入所述宿主机的存储设备之后,更新存储的已读位图信息,其中,所述已读位图信息用于表示虚拟队列的数据读取状态;
13.根据权利要求12所述的方法,其特征在于,所述已读位图信息的位数与所述虚拟队列的队列数相对应,所述已读位图信息中的一个位图数与所述虚拟队列的一个队列的数据读取状态相对应。
14.根据权利要求9所述的方法,其特征在于,所述方法还包括:
15.根据权利要求14所述的方法,其特征在于,所述VirtIO网络架构中包括有第二计时计数器,用于记录所述宿主机的数据处理量和处理时间,所述确定预设的评估周期内宿主机的数据处理速度,包括:
16.根据权利要求15所述的方法,其特征在于,所述根据所述数据处理速度确定时钟乘数寄存器数值,包括:
17.根据权利要求16所述的方法,其特征在于,
18.一种数据处理装置,应用于VirtIO网络架构中的前端驱动器,其特征在于,所述装置包括:
19.一种数据处理装置,应用于VirtIO网络架构中的后端设备,其特征在于,所述装置包括:
20.一种数据处理系统,应用于VirtIO网络架构,其特征在于,所述系统包括客户机、宿主机和虚拟队列;
21.一种VirtIO网络架构的前端驱动器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
22.一种VirtIO网络架构的后端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求9至17中任一项所述方法的步骤。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至17中任一项所述方法的步骤。
...【技术特征摘要】
1.一种数据处理方法,应用于virtio网络架构中的前端驱动器,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述virtio网络架构中包括有第一计时计数器;所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述数量阈值小于等于队列深度;所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述虚拟队列中包括设置有时钟乘数寄存器的流控缓冲区,所述时钟乘数寄存器用于记录表示数据传输的单位时间数量的数据;所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述将所述待传数据写入虚拟队列,包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种数据处理方法,应用于virtio网络架构中的后端设备,其特征在于,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述待传位图信息的低位至高位的位图数逐个与队列编号信息从小到大的虚拟队列相对应;
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:将读取的待传数据写入所述virtio网络架构中的宿主机的存储设备。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:在将读取的待传数据写入所述宿主机的存储设备之后,更新存储的已读位图信息,其中,所述已读位图信息用于表示虚拟队列的数据读取状态;
13.根据权利要求12所述的方法,其特征在于,所述已读位图...
【专利技术属性】
技术研发人员:郭敬宇,徐源浩,苏广峰,亓开元,
申请(专利权)人:济南浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。