本发明涉及服务器性能技术领域,具体提供一种linux下通过改善网卡亲和性提升性能的方法及系统。
背景技术:
计算机具有存储信息量大,使用者获取信息方便快捷等优点,受到广泛的应用。随着网络技术的飞速发展,伴随ssd高性能存储的应用,存储方面的瓶颈渐渐被消除,通用的10g网络宽带已经不能满足需求,所以高带宽网卡(如25g、40g、100g)也应运而生,但高带宽的网卡对cpu的压榨也是越来越强烈,导致linux系统下自身的调节功能已经无法满足高带宽网卡的需求。
技术实现要素:
本发明的技术任务是针对上述存在的问题,提供一种能够实现cpu利用率最优化,并实现网卡性能最优化的linux下通过改善网卡亲和性提升性能的方法。
本发明进一步的技术任务是提供一种linux下通过改善网卡亲和性提升性能的系统。
为实现上述目的,本发明提供了如下技术方案:
一种linux下通过改善网卡亲和性提升性能的方法,所述方法需要关闭linux系统下的自动调节功能,根据高带宽网卡的应用需求变更网卡队列数,确认网卡连接的cpu及网卡使用的中断号,并将网卡亲和到相应的cpu和中断号上。
通常网卡的队列数有一个默认值为4-8个,在目前使用的10g网卡上,所述的队列数基本可以满足需求(按照一个队列使用一个cpu核心来讲,网卡使用4-8个cpu核心来达到10g的需求,对cpu的压力不算大),但是对于100g这种高宽带网卡来讲,4-8个队列数也就意味着使用cpu4-8个核心来实现100g的传输速率,压力非常之大。因此需要首先调整网卡的队列数,根据应用需求来加大网卡的队列数,通常可以将对列数调整为32-64个,根据cpu核心进行调整,保证尽可能多的cpu核心能参与到数据的处理中,降低单个cpu核心的使用率,确保cpu核心不会因为过高的占用率,影响数据传输的效率,导致网络性能的降低。调整网卡的队列数后,需要确认网卡连接的cpu及网卡使用的中断号,并将网卡亲和到相应的cpu和中断号上。
作为优选,该方法具体包括以下步骤
s1:准备阶段
1)在bios中开启numa;
2)安装linux系统;
3)安装网卡驱动;
s2:在linux系统下关闭自动调节功能;
s3:根据高带宽网卡的应用需求变更网卡队列数;
s4:确认网卡连接的cpu及网卡使用的中断号;
s5:将网卡亲和到相应的cpu和中断号上;
s6:两台服务器进行相互测试。
bios(basicinputoutputsystem)即基本输入输出系统。
numa(nonuniformmemoryaccessarchitecture)即非统一内存访问。
步骤s1中,在bios中确认numa功能是否开启,需要设定为enable开启状态。
步骤s3中,根据应用需求确认需要的网卡队列数,通过指令变更网卡的队列数,匹配应用的需求。
步骤s5中,通过以下脚本实现将网卡亲和到相应的cpu和中断号上:
./set_irq_affinity–xlocalenp**。
作为优选,所述网卡连接的cpu为网卡物理上直连的cpu,若使用远端cpu会造成数据包延时增大,严重时会造成丢包等问题,影响效率。
作为优选,将网卡亲和到直连的cpu上,具体亲和到多核cpu的哪个核心上,可以根据应用需求进行亲和。
一种linux下通过改善网卡亲和性提升性能的系统,包括安装模块:用于安装linux系统和网卡驱动;
功能关闭模块:用于在linux系统下关闭自动调节功能;
变更模块:用于根据应用需求变更网卡队列数;
确认模块:用于确认网卡连接的cpu及网卡使用的中断号;
连接模块:用于将网卡亲和到相应的cpu和中断号上。
作为优选,所述确认模块确认网卡连接的cpu为网卡物理上直连的cpu。
作为优选,所述连接模块将网卡亲和到直连的cpu上。
与现有技术相比,本发明的linux下通过改善网卡亲和性提升性能的方法具有以下突出的有益效果:所述linux下通过改善网卡亲和性提升性能的方法通过对linux系统下的配置,改变linux下自动调节后带来的系统资源分布不均,导致网络性能不达标的问题,通过对网卡亲和性的调整,网卡性能可以达到线速要求,且cpu占用率被平均分配,在兼顾网卡性能的同时,不影响其他应用对cpu的应用需求,具有良好的推广应用价值。
附图说明
图1是本发明所述linux下通过改善网卡亲和性提升性能的方法的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的linux下通过改善网卡亲和性提升性能的方法及系统作进一步详细说明。
实施例1
本发明的linux下通过改善网卡亲和性提升性能的方法,该方法需要关闭linux系统下的自动调节功能,根据应用需求变更网卡队列数,确认网卡连接的cpu及网卡使用的中断号,并将网卡亲和到相应的cpu和中断号上。
如图1所示,该linux下通过改善网卡亲和性提升性能的方法具体包括以下步骤:
s1:准备阶段
1)在bios中开启numa。
在bios中确认numa功能是否开启,需要设定为enable开启状态。
2)安装linux系统。
3)安装网卡驱动。
s2:在linux系统下关闭自动调节功能。
s3:根据应用需求变更网卡队列数,通过指令变更网卡的队列数,匹配应用的需求。
s4:确认网卡连接的cpu及网卡使用的中断号,网卡连接的cpu为网卡物理上直连的cpu。
s5:将网卡亲和到相应的cpu和中断号上,通过脚本./set_irq_affinity–xlocalenp**实现。
s6:两台服务器进行相互测试。
实施例2
本发明的linux下通过改善网卡亲和性提升性能的系统,包括:
安装模块:用于安装linux系统和网卡驱动。
功能关闭模块:用于在linux系统下关闭的自动调节功能。
变更模块:用于根据应用需求变更网卡队列数。
确认模块:用于确认网卡连接的cpu及网卡使用的中断号,确认模块确认网卡连接的cpu为网卡物理上直连的cpu。
连接模块:用于将网卡亲和到相应的cpu和中断号上,连接模块将网卡亲和到直连的cpu上。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。