【技术实现步骤摘要】
一种IO请求处理方法及系统
[0001]本申请涉及计算机
,特别涉及一种IO请求处理方法,还涉及一种IO请求处理系统。
技术介绍
[0002]Virtio是一种I/O(Input/Output,输入/输出)虚拟化框架,符合该框架的设备则称为Virtio设备。通常,在Virtio设备驱动的实现过程中,IO请求流程为:Block层(块层)
→
Virtio驱动
→
后端;应答流程为:后端
→
Virtio驱动
→
Block层。其中,在应答流程中,后端通过注入软中断的方式通知内核态Virtio设备进行下一步处理,然而,在系统负载很高时,处理软中断要消耗大量CPU资源,并且,还会降低CPU缓存命中率,导致业务线程性能下降。
[0003]为解决上述问题,可以先由后端合并多个IO完成通知,再在IO数量或时延达到一定阈值后,注入一个软中断通知内核态Virtio设备,从原理上看,该方法能够将软中断数量降低到原来的1/N(N即为合并的IO数量),但是,这是以牺牲时 ...
【技术保护点】
【技术特征摘要】
1.一种IO请求处理方法,其特征在于,包括:Virtio设备将Block层下发的IO请求存储至发送队列;控制端从所述发送队列获取所述IO请求,对所述IO请求进行处理获得IO处理结果,并将所述IO处理结果存储至完成队列;所述Virtio设备从所述完成队列获取所述IO处理结果,并将所述IO处理结果反馈至所述Block层。2.根据权利要求1所述的IO请求处理方法,其特征在于,所述Virtio设备从所述完成队列获取所述IO处理结果,包括:利用轮询线程对所述完成队列进行轮询,获得所述IO处理结果。3.根据权利要求2所述的IO请求处理方法,其特征在于,所述将所述IO处理结果反馈至所述Block层之前,还包括:根据所述IO处理结果计算所述轮询线程的当前负载;若所述当前负载达到预设负载上限,则开启新的轮询线程;若所述当前负载未达到所述预设负载上限,则执行所述将所述IO处理结果反馈至所述Block层的步骤。4.根据权利要求3所述的IO请求处理方法,其特征在于,所述开启新的轮询线程之前,还包括:统计所述轮询线程的启动数量;判断所述启动数量是否达到预设数量上限,若否,则执行所述开启新的轮询线程的步骤。5.根据权利要求4所述的IO请求处理方法,其特征在于,还包括:若所述启动数量达到所述预设数量上限,则发出告警提示。6.根据权利要求3所述的IO请求处理方法,其特征在于,若所述当前负载未达到所述预设负载上限,则所述执行所述将所述IO处理结果反馈至所述Block层的步骤之前,还包括:判断所述当前负载是否低于预设负载下限;若所述当前负...
【专利技术属性】
技术研发人员:李养兆,仇锋利,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。