本发明涉及计算机io调度领域,具体的涉及一种基于numa的四路机架式服务器及io调度方法。
背景技术:
1、numa(non uniform memory access)即非统一内存访问技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的cpu或是smp系统。numa模式采用了分布式存储器模式,所有节点中的处理器都可以访问系统的全部物理存储器。每个处理器访问本地存储器和访问远程节点存储器所需的时间是不一致的,因此称为非一致访问分布共享存储技术。numa同时具备了mpp良好的扩展性以及smp编程模式简洁、易于管理的特点。
2、现有技术cn103135943b提供一种多控存储系统自适应io调度方法,多控制器体系架构,各控制器间可实现负载均衡,避免单控制器故障带来的风险和性能的瓶颈,支持丰富的主机连接接口,支持iscsi、fc、infiniband及万兆网络连接,同时可以为用户提供高带宽的ib及万兆网络连接,满足客户对高带宽及高性能的差异化需求。本发明涉及多控存储系统的io调度,提出多个控制器间的io调度方法,当多控存储系统接受来自应用层的io请求时,能够将io请求调度给多个控制器同时并发执行,该方法不仅给低载的控制器分配了未分配的io请求,还能从过载的控制器上重新调度io请求到负载较轻的控制器上,从而改善了系统中各个控制器的负载状态,完成了多控节点上的io负载调度和均衡,充分调度了设备的潜力,提升了系统性能。但请求信号进行io调度分配时无法长时间保持负载的均衡。
技术实现思路
1、本发明的目的在于提供一种基于numa的四路机架式服务器及io调度方法,以解决上述背景技术中提出的请求信号进行io调度分配时无法长时间保持负载的均衡问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于numa的四路机架式服务器,所述四路机架式服务器包括:4个cpu、至少一个fcfs模块、分类器、调度器、io管理模块,所述4个cpu之间通过ht总线互连,所述每个cpu均设置有ht0-l、ht0-h、ht1-l、ht1-h四个总线连接端口,所述每个cpu均外接两个扩展内存,所述分类器与至少一个fcfs模块电性相连,所述至少一个fcfs模块与调度器电性相连,所述调度器与4个cpu电性连接,所述每个cpu均电性连接io管理模块。
3、优选的,所述io调度方法如下:分类器接收动态请求调度信号,将同类信号分配至同一fcfs模块,调度器接收至少一个fcfs模块传输的信号后,将同一类动态请求信号分配至同一cpu,cpu将信号进行处理后传输至io管理模块,完成整个动态请求的处理过程后,最终io管理模块生成响应,返回用户端。
4、优选的,所述fcfs模块基于fcfs算法,对动态请求经过分类器到达fcfs模块的先后顺序依次轮流处理,对同一动态请求形成同一动态请求队列。
5、优选的,所述动态请求调度信号在传输过程中产生负载,对动态请求调度信号进行权值分析,根据权值周期性的调整动态请求的io调度。
6、优选的,所述负载由动态请求调度信号服务时间ti和动态请求调度信号到达io管理模块的数目决定。
7、优选的,所述动态请求调度信号服务时间为处理该动态请求所花费的时间,同类动态请求所指向的动态内容相同,因此同类动态请求的服务时间相同,该时间可由动态请求的平均服务时间ti表示,计算过程如下:至少一个同类动态请求在空载的服务器上执行,每个动态请求的服务时间记录在日志文件中,对至少一个同类动态请求的服务时间求取平均值,该平均值即为平均服务时间ti。
8、优选的,所述动态请求调度信号到达io管理模块的数目是一个动态值,因此采用指数平滑算法对其进行预测,令ci(i-1)为时间间隔i-1内动态请求调度信号到达io管理模块的实际数目,为时间间隔i-1内动态请求调度信号到达io管理模块的预测数目,可得出时间间隔i-1内动态请求调度信号到达io管理模块实际到达数目与预测数目之间的差值ei(i-1)为:
9、
10、可迭代定义i-1内动态请求调度信号实际到达数目与预测数目的平滑误差ei(i-1)为:
11、ei(i-1)=β·ei(i-1)+(1-β)·ei(i-2) (2)
12、式中:β为平滑误差,取值为0.1~0.3;i-1时刻的平滑误差基于i-2时刻的平滑误差;
13、令|ei(i-1)|为i-1内动态请求调度信号实际到达数目与预测数目的绝对误差,则可迭代定义绝对平滑误差mi(i-1)为:
14、mi(i-1)=β·|ei(i-1)|+(1-β)·mi(i-2) (3)
15、根据公式(2)和(3)可得:
16、
17、式中:αi(t-1)为平滑指数,其取值范围为0<αi(t-1)≤1;
18、则有上述公式(1)~(4)可得,时间间隔t内动态请求调度信号到达io管理模块的预测值为:
19、
20、式中:αi(t-1)为平滑指数;ci(i-1)为时间间隔i-1内动态请求调度信号到达io管理模块的实际数目;为时间间隔i-1内动态请求调度信号到达io管理模块的预测数目。
21、优选的,为确保时间间隔t内m类动态请求调度信号的权值均匀分配给4个cpu,采用如下算法:
22、将m类动态请求调度信号分为n个不相交区间,即:
23、{[s0=0,s1),[s1,s2),…,[sn-1,sn=∞)}
24、其中sn表示不相交区间的边界值,其中n∈[1,n]
25、计算m类动态请求调度信号在时间间隔t内的总权值sum(t):
26、
27、计算n-1个不相交区间的边界值sj(t):
28、
29、式中:j=1,2,…n-1;
30、当sum(t)>sj(t)时,此时间间隔t对应的m类动态请求调度信号落在[sj,sj+1)区间内。
31、优选的,所述n个不相交区间{[s0=0,s1),[s1,s2),…,[sn-1,sn=∞)}对应四路四路机架式服务器的4个cpu,即n=4。
32、与现有技术相比,本发明的有益效果是:
33、1.本发明采用基于numa架构的飞腾平台四路机架式服务器,依赖于系统层的优化,为了充分提升性能,需要充分利用快速的本地访问以及分散负载到不同节点来降低对资源的竞争,同时针对不同类型的负载采用合理的资源分配策略,根据各节点的资源状态灵活对负载进行调度分配处理,提升整体的处理能力。
34、2.本发明引入动态请求调度算法,确保io调度在动态范围内负载趋于均衡。
1.一种基于numa的四路机架式服务器,其特征在于,所述四路机架式服务器包括:4个cpu、至少一个fcfs模块、分类器、调度器、io管理模块,所述4个cpu之间通过ht总线互连,所述每个cpu均设置有ht0-l、ht0-h、ht1-l、ht1-h四个总线连接端口,所述每个cpu均外接两个扩展内存,所述分类器与至少一个fcfs模块电性相连,所述至少一个fcfs模块与调度器电性相连,所述调度器与4个cpu电性连接,所述每个cpu均电性连接io管理模块。
2.一种基于numa的四路机架式服务器io调度方法,其特征在于,所述io调度方法如下:
3.根据权利要求2所述的一种基于numa的四路机架式服务器io调度方法,其特征在于,所述fcfs模块对到达的动态请求进行先后顺序排位,对同一动态请求形成同一动态请求队列。
4.根据权利要求2所述的一种基于numa的四路机架式服务器io调度方法,其特征在于,所述动态请求调度信号在传输过程中产生负载,对动态请求调度信号进行权值分析,根据权值周期性的调整动态请求的io调度。
5.根据权利要求4所述的一种基于numa的四路机架式服务器多核io调度方法,其特征在于,所述负载由动态请求调度信号服务时间ti和动态请求调度信号到达io管理模块的数目决定。
6.根据权利要求5所述的一种基于numa的四路机架式服务器多核io调度方法,其特征在于,所述动态请求调度信号服务时间为处理该动态请求所花费的时间,同类动态请求所指向的动态内容相同,因此同类动态请求的服务时间相同,该时间可由动态请求的平均服务时间ti表示,计算过程如下:至少一个同类动态请求在空载的服务器上执行,每个动态请求的服务时间记录在日志文件中,对至少一个同类动态请求的服务时间求取平均值,该平均值即为平均服务时间ti。
7.根据权利要求5所述的一种基于numa的四路机架式服务器多核io调度方法,其特征在于,所述动态请求调度信号到达io管理模块的数目是一个动态值,因此采用指数平滑算法对其进行预测,令ci(i-1)为时间间隔i-1内动态请求调度信号到达io管理模块的实际数目,为时间间隔i-1内动态请求调度信号到达io管理模块的预测数目,可得出时间间隔i-1内动态请求调度信号到达io管理模块实际到达数目与预测数目之间的差值ei(i-1)为:
8.根据权利要求7所述的一种基于numa的四路机架式服务器多核io调度方法,其特征在于,动态请求调度信号在时间间隔t内的权值wi(t)为:
9.根据权利要求7所述的一种基于numa的四路机架式服务器多核io调度方法,其特征在于,为确保时间间隔t内m类动态请求调度信号的权值均匀分配给4个cpu,采用如下算法:
10.根据权利要求9所述的一种基于numa的四路机架式服务器多核io调度方法,其特征在于,所述n个不相交区间{[s0=0,s1),[s1,s2),…,[sn-1,sn=∞)}对应四路机架式服务器的4个cpu,即n=4。