一种SmartRack‑ARM服务器系统性能优化的方法与流程

文档序号:11406763阅读:235来源:国知局

本发明涉及arm服务器领域,具体地说是一种smartrack-arm服务器系统性能优化的方法。



背景技术:

从arm与x86发展的历史来看,arm一直更接近用户端,被普遍用作个人数据处理、瘦客户机终端,以及个人级别的nas服务器处理器核心。arm服务器的应用需求就是冷数据处理,如果性能要求不高,那么一切功能就都由arm处理,如果性能要求非常高,那么arm就只负责控制界面的人机交互,而数据的处理则交给更职业化的asic专用芯片来进行。

在数据中心领域,因为arm的低功耗设计,使得arm带来了一个超大规模计算的时代,可以在一个服务器机架部署数千个微小计算节点。arm处理器可能没有x86处理器的处理速度,但是它们能够通过微小的能耗实现大部分的性能,这意味着在更小的空间可以部署更多的处理器。很多工作负载并不需要最快的处理器性能,取而代之的是可以将工作负载分布到更多处理器上。例如,云计算和web应用程序在分布式服务器上运行会比在性能出色的较少服务器上更加出色。

arm等non-x86架构服务器芯片的逐步崛起,正在成为non-x86服务器芯片市场的两股重要推动力,使non-x86服务器芯片迎来新的发展机遇。其中,与x86服务器芯片相比,arm服务器芯片更具成本低、能耗低、结构灵活等优势,受到百度、阿里巴巴等互联网企业青睐。此外,随着绿色数据中心概念的全面推广,在数据中心的能源效率、环境影响等方面都提出了更高的要求,这也在一定程度上开阔了arm等低能耗服务器芯片的市场空间

自主可控技术对国家信息安全的重要性不言而喻,集成电路作为电子信息产业的基础及核心,是影响国家信息安全的重要因素之一。特别是受到棱镜门事件和美国禁止intel向中国出售高端服务器芯片的影响,我国开始大力推行服务器芯片的自主化进程,希望能够借助arm服务器的发展实现ic产品的自主可控,大大提升大数据时代国家信息安全。



技术实现要素:

本发明的技术任务是提供一种smartrack-arm服务器系统性能优化的方法。

本发明的技术任务是按以下方式实现的,该优化方法步骤如下:

首先,将内核部分优化,包括网络数据缓存,超级快数目,进程消息长度,消息队列标识与缓存大小,内核共享缓存及最大进程数参数的优化;

其次,浮点操作的优化,采用软浮点工具链,在编译时由编译器将浮点运算由浮点库代替,浮点库采用正常指令;

最后,gcc编译优化,包括精简操作指令,满足cpu的流水操作,通过对程序行为地预测调整代码的执行顺序,充分使用寄存器加速指令的流水操作。

所述的内核部分优化具体如下:

网络数据缓存优化:tcp窗口大小设置为256960,禁止tcp的时间戳,支持更大的tcp窗口和tcp有选择的应答;

超级块数目优化:设定超级块处理程序的最大数目;

进程消息长度优化:设定一个进程发送到另一个进程的消息的最大长度;

消息队列标识:设定在一个消息队列中最大的字节数,设定文件消息队列标识的最大数目;

系统共享内存优化:增加共享内存的总量;

设定内核所允许的最大共享内存段的大小;

设定用于整个系统共享内存段的最大数目;

设定内核所能使用的线程的最大数目。

所述的gcc编译优化五种优化级别:

o0等级,该等级不进行任何优化,debug会产出和程序预期的结果;

01等级,编译器减小生成代码的尺寸,缩短执行时间,对代码的分支、常量以及表达式进行优化;

02等级,编译器不进行循环打开以及函数内联;

o3等级,使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化;

0s等级,主要是对程序的尺寸进行优化。

本发明的一种smartrack-arm服务器系统性能优化的方法和现有技术相比,通过对arm服务器系统性能进行优化,可以明显加快服务器在流水时的响应,更好应用在云计算和web等分布式应用领域。

具体实施方式

实施例1:

该smartrack-arm服务器系统性能优化的方法步骤如下:

首先,将内核部分优化,包括网络数据缓存,超级快数目,进程消息长度,消息队列标识与缓存大小,内核共享缓存及最大进程数参数的优化;

网络数据缓存优化:tcp窗口大小设置为256960,禁止tcp的时间戳,支持更大的tcp窗口和tcp有选择的应答;

echo256960>/proc/sys/net/core/rmem_default

echo256960>/proc/sys/net/core/rmem_max

echo256960>/proc/sys/net/core/wmem_default

echo256960>/proc/sys/net/core/wmem_max

echo0>/proc/sys/net/ipv4/tcp_timestamps

echo1>/proc/sys/net/ipv4/tcp_sack

echo1>/proc/sys/net/ipv4/tcp_window_scaling

超级块数目优化:设定超级块处理程序的最大数目;挂装的任何文件系统需要使用超级块,所以如果挂装了大量文件系统,则可能会用尽超级块处理程序。

/proc/sys/fs/super-max

进程消息长度优化:设定一个进程发送到另一个进程的消息的最大长度;进程间的消息传递是在内核的内存中进行,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。

/proc/sys/kernel/msgmax

消息队列标识:设定在一个消息队列中最大的字节数,设定文件消息队列标识的最大数目;

/proc/sys/kernel/msgmnb

/proc/sys/kernel/msgmni

系统共享内存优化:增加共享内存的总量;

/proc/sys/kernel/shmall

设定内核所允许的最大共享内存段的大小;

/proc/sys/kernel/shmax

设定用于整个系统共享内存段的最大数目;

/proc/sys/kernel/shmmni

设定内核所能使用的线程的最大数目。

/proc/sys/kernel/threads-max

其次,浮点操作的优化,采用软浮点工具链,在编译时由编译器将浮点运算由浮点库代替,浮点库采用正常指令;

atleastonemathemulationmustbeselectednwfpemathemulationsupportextendedprecisionfastfpemathemulation(experimental)nwfpe模拟浮点是利用了undefinedinstrctionhandler即每次浮点指令操作,用软件的方法仿真一个浮点指令。

最后,gcc编译优化,包括精简操作指令,满足cpu的流水操作,通过对程序行为地预测调整代码的执行顺序,充分使用寄存器加速指令的流水操作。

所述的gcc编译优化五种优化级别:

o0等级,该等级不进行任何优化,debug会产出和程序预期的结果;

01等级,编译器减小生成代码的尺寸,缩短执行时间,对代码的分支、常量以及表达式进行优化;

02等级,编译器不进行循环打开以及函数内联;

o3等级,使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化,通过充分利用指令缓存代码提高性能;

0s等级,主要是对程序的尺寸进行优化。打开了大部分o2优化中不会增加程序大小的优化选项,并对程序代码的大小做更深层的优化。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1