1.一种基于virtio_blk的虚拟化IO性能优化方法,其特征在于,包括:
接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;
若存在,则将相邻请求封装为virtblk_requet,并执行kick操作;若不存在,则将每个bio请求封装为对应的virtblk_request,并执行kick操作。
2.根据权利要求1所述的虚拟化IO性能优化方法,其特征在于,检测到所述目标队列保存的bio请求存在相邻请求之后,还包括:
按照预定规则,将相邻请求动态移动到所述目标队列的前端。
3.根据权利要求2所述的虚拟化IO性能优化方法,其特征在于,所述按照预定规则,将相邻请求动态移动到所述目标队列的前端,包括:
根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
4.根据权利要求1所述的虚拟化IO性能优化方法,其特征在于,检测到所述目标队列保存的bio请求不存在相邻请求之后,还包括:
设置与每个bio请求对应的计时器;
若检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
5.根据权利要求1-4中任意一项所述的虚拟化IO性能优化方法,其特征在于,检测所述目标队列保存的bio请求是否存在相邻请求,包括:
检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;
若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。
6.一种基于virtio_blk的虚拟化IO性能优化系统,其特征在于,包括:
Bio请求存入模块,用于接收到bio请求时,通过BASE_BIO模块将bio请求存入目标队列;
相邻请求检测模块,用于当所述目标队列保存的bio请求数目大于预定阈值时,检测所述目标队列保存的bio请求是否存在相邻请求;若存在,则触发第一封装模块;若不存在,则触发第二封装模块;
所述第一封装模块,用于将相邻请求封装为virtblk_requet;
所述第二封装模块,用于将每个bio请求封装为对应的virtblk_request;
执行模块,用于对封装后的virtblk_requet执行kick操作。
7.根据权利要求6所述的虚拟化IO性能优化系统,其特征在于,还包括:
动态调整模块,用于按照预定规则,将相邻请求动态移动到所述目标队列的前端。
8.根据权利要求7所述的虚拟化IO性能优化系统,其特征在于,
所述动态调整模块根据检测到的每个相邻请求的请求数目,设定每个相邻请求的优先级,并根据每个相邻请求的优先级,动态调整每个相邻请求在所述目标队列的保存位置。
9.根据权利要求6所述的虚拟化IO性能优化系统,其特征在于,还包括:
计时器设置模块,用于设置与每个bio请求对应的计时器;
处理优先级调整模块,用于检测到计时器超时,则将与超时的计数器对应的bio请求的处理优先级设置为最高。
10.根据权利要求6-9中任意一项所述的虚拟化IO性能优化系统,其特征在于,
所述相邻请求检测模块通过检测所述目标队列保存的bio请求是否存在位于同一扇区、同一磁道、同一柱面或者同一磁盘中的一者的bio请求;若存在,则将位于同一扇区、同一磁道、同一柱面或者同一磁盘中的bio请求作为一组相邻请求。