The invention discloses a IO scheduling method based on Linux system, including the received read and write commands, in accordance with the selection process of a IO N as a IO process from the Linux system default default rules; among them, each IO process has a separate pre allocated memory blocks; not less than 2 N; IO process to obtain a plurality of processing threads from the default thread pool; a plurality of processing threads respectively according to independent memory block IO process corresponding to the corresponding read and write operations. The invention can avoid the blocking situation between different IO processes due to the need to obtain resources in the same cache page simultaneously, and improve the speed of reading and writing operation and high efficiency.
【技术实现步骤摘要】
本专利技术涉及软件存储
,特别是涉及一种基于linux的IO调度方法。
技术介绍
IO调度是一种常见的数据应用操作,IO调度的流程由CPU来实现。在linux操作系统下,IO调度的流程为:用户层提供文件读写的接口,在经由虚拟文件系统接口调用、实际文件系统接口调用、缓存页映射操作、通用块层创建bio、io调度层进行排序等操作后,由存储设备的驱动侧来把数据写入存储设备或将存储设备内的数据进行读取。目前的IO调度中可能存在有多个IO进程,这些IO进程排成队列由同一个CPU核进行处理,该CPU核为这些IO进程分配了一块内存进行IO操作,当需要获取内存时,正常情况下内存会先分配若干个页给进程。但是由于这块内存是整体的,该内存设置有锁机制来避免不同进程对内存的同时访问,故会导致同一时间只能有一个IO进程使用该缓存页,而其他IO进程处于等待状态,效率低。因此,如何提供一种能够提高IO处理的效率的基于linux的IO调度方法是本领域技术人员目前需要解决的问题。
技术实现思路
本专利技术的目的是提供一种基于linux系统的IO调度方法,能够避免不同IO进程之间由于需要同时获取同一缓存页内的资源而发生的阻塞情况,提高读写操作的速度且效率高。为解决上述技术问题,本专利技术提供了一种基于linux系统的IO调度方法,包括:接收到读写命令后,按照预设规则从所述linux系统预设的N个相同的IO进程中选择一个IO进程;其中,每个所述IO进程预先分配有一块独立内存块;N不小于2;所述IO进程从预设的线程池中获取多个处理线程;多个所述处理线程分别依据所述IO进程对应的所述独立内存块进 ...
【技术保护点】
一种基于linux系统的IO调度方法,其特征在于,包括:接收到读写命令后,按照预设规则从所述linux系统预设的N个相同的IO进程中选择一个IO进程;其中,每个所述IO进程预先分配有一块独立内存块;N不小于2;所述IO进程从预设的线程池中获取多个处理线程;多个所述处理线程分别依据所述IO进程对应的所述独立内存块进行相应的读写操作。
【技术特征摘要】
1.一种基于linux系统的IO调度方法,其特征在于,包括:接收到读写命令后,按照预设规则从所述linux系统预设的N个相同的IO进程中选择一个IO进程;其中,每个所述IO进程预先分配有一块独立内存块;N不小于2;所述IO进程从预设的线程池中获取多个处理线程;多个所述处理线程分别依据所述IO进程对应的所述独立内存块进行相应的读写操作。2.根据权利要求1所述的方法,其特征在于,每个所述IO进程预先与一个CPU核绑定,所述IO进程由与其绑定的所述CPU核执行。3.根据权利要求2所述的方法,其特征在于,多个所述处理线程分别依据所述IO进程对应的所述独立内存块进行相应的读写操作的过程具体为:调用虚拟文件系统读写接口或实际文件系统读写接口;从调用的读写接口中获取读写操作参数;根据所述读写操作参数确定需要读取或写入的数据情况,并进行缓存页映射操作;在通用块层依据映射后写入或读取得到的数据创建blockio;在io调度层对所述blockio...
【专利技术属性】
技术研发人员:牛佳宁,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。