一种linux系统性能调优的方法与流程

文档序号:24550998发布日期:2021-04-06 12:03阅读:147来源:国知局
一种linux系统性能调优的方法与流程

本申请涉及linux系统性能测试技术领域,尤其涉及一种linux系统性能调优的方法。



背景技术:

性能测试是软件研发过程中必不可少的重要环节,能够帮助软件厂商识别在软件研发过程中潜在的性能退化问题和产品可能存在的性能缺陷。linux操作系统作为一个庞大复杂的软件系统,不断对其进行性能测试是linux操作系统厂商在产品发布前必须进行的关键步骤。

随着linux系统的兴起,linux系统的发行版本也越来越多,如ubuntu14、16、18、20,centos6.x、7.x、8.x,debian9、10、11等,各版linux系统的性能也不相同,有些设备采购商希望在特定的应用场景选择性能更好的操作系统,这就需要对linux系统的性能进行测试和调优,以满足采购需求。每一个发行版的linux系统的软件包有两千~三千个,而每个软件包各有依赖性,如果要对所有的软件包依次进行性能测试和调优,则花费的时间和工作量是非常大的,因此,如何快速找到影响linux系统性能的软件包,提高linux系统性能测试和性能优化效率,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本申请提供了一种linux系统性能调优方法,用于解决现有技术不能快速找到影响linux系统性能的软件包,提高linux系统性能测试和性能优化效率的技术问题。

有鉴于此,本申请第一方面提供了一种linux系统性能调优方法,包括:

在同一服务器中安装待调优linux操作系统和参考调优linux操作系统;

在所述待调优linux操作系统和所述参考调优linux操作系统中安装相同的性能测试工具;

运行所述性能测试工具,分别对所述待调优linux操作系统和所述参考调优linux操作系统进行性能测试,保存所述性能测试的原始数据和测试结果;

对所述测试结果进行分析,筛选出所述待调优linux操作系统的测试得分低于所述参考调优linux操作系统测试得分的低分测试项;

分析所述低分测试项中是否存在无关项,若是,则将所述无关项排除,保留余下的所述低分测试项,所述无关项包括内核变化、编译器变化和glibc库变化;

根据所述低分测试项对应的原始数据查询所述低分测试项对应的源码,对所述源码进行优化。

可选地,所述根据所述低分测试项对应的原始数据查询对应的源码,对所述源码进行优化,包括:

根据所述低分测试项对应的原始数据查询所述低分测试项对应的源码;

对所述源码中的调用函数、执行文件和整体流程进行分析和优化,使用当前测试项的快速测试命令对优化后的源码进行优化测试。

可选地,所述性能测试工具包括unixbench测试工具、stream测试工具、iozone测试工具、lmbench测试工具、netperf测试工具和specjvm测试工具。

可选地,排除内核变化无关项的方法为:

在所述待调优linux操作系统中挂载所述参考调优linux操作系统盘到/mnt下,使用命令chroot/mnt进行测试,查看分数a1;

在所述参考调优linux操作系统中挂载所述待调优linux操作系统盘到/mnt下,使用命令chroot/mnt进行测试,查看分数a2;

将原始数据、a1和a2进行比对,判断内核是否为产生变化的原因,若否,则排除内核变化无关项。

可选地,排除编译器变化无关项的方法为:

把所述参考调优linux操作系统中的测试文件复制到所述待调优linux操作系统中进行测试,查看分时b1;

把所述待调优linux操作系统中的测试文件复制到所述参考调优linux操作系统中进行测试,查看分时b2;

将原始数据、b1和b2进行比对,判断编译器是否为产生变化的原因,若否,则排除编译器变化无关项。

可选地,排除glibc库变化无关项的方法为:

在所述待调优linux操作系统中挂载所述参考调优linux操作系统盘到/mnt下,使用所述参考调优linux操作系统的glibc库进行测试,查看分数c1;

在所述参考调优linux操作系统中挂载所述待调优linux操作系统盘到/mnt下,使用所述参考调优linux操作系统的glibc库进行测试,查看分数c2;

将原始数据、c1和c2进行比对,判断glibc库是否为产生变化的原因,若否,则排除编译器变化无关项。

可选地,所述根据所述低分测试项对应的原始数据查询对应的源码,对所述源码进行优化,还包括:

分析所述低分测试项的源码是否使用到外部命令,若是,则对比所述外部命令版本是否一致,并查看所述外部命令使用到的动态库数量是否一致。

可选地,所述根据所述低分测试项对应的原始数据查询对应的源码,对所述源码进行优化,还包括:

查看所述待调优linux操作系统和所述参考调优linux操作系统在执行命令时的前端性能热力图是否相同。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请中提供了一种linux系统性能调优方法,包括:在同一服务器中安装待调优linux操作系统和参考调优linux操作系统;在待调优linux操作系统和参考调优linux操作系统中安装相同的性能测试工具;运行性能测试工具,分别对待调优linux操作系统和参考调优linux操作系统进行性能测试,保存性能测试的原始数据和测试结果;对测试结果进行分析,筛选出待调优linux操作系统的测试得分低于参考调优linux操作系统测试得分的低分测试项;分析低分测试项中是否存在无关项,若是,则将无关项排除,保留余下的低分测试项,无关项包括内核变化、编译器变化和glibc库变化;根据低分测试项对应的原始数据查询低分测试项对应的源码,对源码进行优化。

本申请中提供的一种linux系统性能调优方法,选取与待调优linux操作系统做比对的参考调优linux操作系统,将两个系统安装到同一台服务器上,使用相同的性能测试工具对两个系统分别进行测试,筛选出待调优linux操作系统测试分数低于参考调优linux操作系统的测试项,再对低分测试项进行无关项排除,最后对排除无关项后余下的低分测试项进行优化,避免了对待调优linux操作系统的所有的软件包依次进行性能测试和调优,从而能够快速发现性能缺陷进行优化,解决了现有技术不能快速找到影响linux系统性能的软件包,提高linux系统性能测试和性能优化效率的技术问题。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例中提供的一种linux系统性能调优方法的一个流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例1

为了便于理解,请参阅图1,本申请提供了一种linux系统性能调优方法的实施例,包括:

步骤101、在同一服务器中安装待调优linux操作系统和参考调优linux操作系统。

需要说明的是,服务器可以选择x86服务器或arm服务器,待调优linux操作系统可以是centoos8.1系统,参考调优linux操作系统可以是ubuntu20.04系统,待调优linux操作系统和参考调优linux操作系统的选择可根据实际用户需求进行具体选择,在此可不做具体限定。

步骤102、在待调优linux操作系统和参考调优linux操作系统中安装相同的性能测试工具。

需要说明的是,在同一服务器安装好待调优linux操作系统和参考调优linux操作系统后,分别在待调优linux操作系统和参考调优linux操作系统中同时安装unixbench、stream、iozone、lmbench、netperf、specjvm等性能测试工具。

步骤103、运行性能测试工具,分别对待调优linux操作系统和参考调优linux操作系统进行性能测试,保存性能测试的原始数据和测试结果。

需要说明的是,分别在两个系统中运行性能测试工具,获取两个系统中的基础性能原始数据,通过unixbench、stream、iozone、lmbench、netperf、specjvm性能测试工具分别对centos8.1和ubuntu20.04两个系统进行测试,并保存测试产生的原始数据和最终测试结果。

步骤104、对测试结果进行分析,筛选出待调优linux操作系统的测试得分低于参考调优linux操作系统测试得分的低分测试项。

需要说明的是,对unixbench、stream、iozone、lmbench、netperf、specjvm性能测试工具产生的测试结果进行分析,找出每一个性能测试工具进行了哪些测试项,每一项测试项分别是多少分,若centos8.1系统,即待调优linux操作系统的成绩高于ubuntu20.04,即参考调优linux操作系统,则忽略测试项,只关注待调优linux操作系统的测试得分低于参考调优linux操作系统测试得分的低分测试项。

步骤105、分析低分测试项中是否存在无关项,若是,则将无关项排除,保留余下的低分测试项,无关项包括内核变化、编译器变化和glibc库变化。

需要说明的是,在筛选出低分测试项之后,对所有低分测试项进行无关项排除,保留相关低分测试项。

步骤106、根据低分测试项对应的原始数据查询低分测试项对应的源码,对源码进行优化。

需要说明的是,排除无关项之后,找到保留下来的低分测试项对应的源码,对其进行深入分析,包括调用哪些函数、执行哪些文件,整体流程是什么,着重关注while循环和for循环内的代码。另外需要找到当前测试项的快速测试命令,避免走全部测试项,浪费测试时间。

本申请实施例中提供的一种linux系统性能调优方法,选取与待调优linux操作系统做比对的参考调优linux操作系统,将两个系统安装到同一台服务器上,使用相同的性能测试工具对两个系统分别进行测试,筛选出待调优linux操作系统测试分数低于参考调优linux操作系统的测试项,再对低分测试项进行无关项排除,最后对排除无关项后余下的低分测试项进行优化,避免了对待调优linux操作系统的所有的软件包依次进行性能测试和调优,从而能够快速发现性能缺陷进行优化,解决了现有技术不能快速找到影响linux系统性能的软件包,提高linux系统性能测试和性能优化效率的技术问题。

实施例2

1、安装操作系统

在同一台服务器中安装期望使用的操作系统,即待调优linux操作系统,可以是centoos8.1系统,和性能比对操作系统,即参考调优linux操作系统,可以是ubuntu20.04系统。

2、安装性能测试工具

分别在centoos8.1操作系统和ubuntu20.04操作系统中同时安装unixbench、stream、iozone、lmbench、netperf、specjvm等性能测试工具;

3、性能测试

在两个系统中运行以上性能测试工具,获取基础性能测试原始数据,分别对两个系统进行性能测试,并保存测试产生的原始数据和最终测试结果。

4、测试结果分析

排除无关项:

排除内核变化原因:

在centos8.1系统中挂载ubuntu20.04系统盘到/mnt下,使用命令chroot/mnt(使用ubuntu20.04的rootfs系统),进行测试,查看分数a1。

在ubuntu20.04系统中挂载centos8.1系统盘到/mnt下,使用命令chroot/mnt(使用centos8.1的rootfs系统),进行测试,查看分数a2。

对比原始数据与a1和a2,来判断内核是否为产生变化的原因。若a1和a2分数几乎持平(波动范围在1以内),则可以排除内核的原因。

若是内核原因,则对比内核版本号和config文件是否有差异,可以尝试升级内核或merge内核社区补丁进行升级。

排除gcc或其他编译器变化原因:

把ubuntu20.04系统中的测试文件复制到centos8.1中,进行测试,查看分时b1。

把centos8.1系统中的测试文件复制到ubuntu20.04中,进行测试,查看分时b2。

对比原始数据与b1和b2,来判断编译器是否为产生变化的原因。当原始数据与b1和b2分数上下浮动小于10%,则可以说明不是编译器导致的性能差异,可以排除gcc或其他编译器的原因。

排除glibc库变化原因:

在centos8.1系统中挂载ubuntu20.04系统盘到/mnt下,使用-wl,--rpath=/xxx/libc-xxx.so-wl,--dynamic-linker=/xxx/ld-xxx.so-l/xxx/的编译参数再次编译测试程序,即使用ubuntu20.04的glibc库进行测试,查看分数c1。

在ubuntu20.04系统中挂载centos8.1系统盘到/mnt下,使用-wl,--rpath=/xxx/libc-xxx.so-wl,--dynamic-linker=/xxx/ld-xxx.so-l/xxx/的编译参数再次编译测试程序,即使用ubuntu20.04的glibc库进行测试,查看分数c2。

对比原始数据与c1和c2,来判断glibc库是否为产生变化的原因。如果c1和c2,分数浮动在10%以内,则可以排除glibc库对性能产生影响。

对余下低分测试项进行分析:

找到余下低分测试项对应的源码,对其进行深入分析,包括调用哪些函数、执行哪些文件,整体流程是什么,着重关注while循环和for循环内的代码。另外需要找到当前测试项的快速测试命令,避免走全部测试项,浪费测试时间。

对于部分使用到外部命令的测试项,对比这些外部命令版本是否一致,查看这些外部命令使用到的动态库数量是否一致。外部命令版本一致、动态库数量一致时,可以排除动态库数量影响性能的原因。当动态库不一致时,可以通过修改编译参数而使其保持一致。

查看两个系统在执行命令时的perf热力图(前端性能热力图)是否大致雷同。perf热力图能够直观有效的展现两个系统的各类大数据信息,若两个系统在执行命令时的perf热力图基本相同,则说明调优成功完成。

本申请实施例中使用unixbench、stream、iozone、lmbench、netperf、specjvm等性能测试工具对linux性能做全方位测评,通过逐一排除和替换内核、编译器、c库、动态库、热力图等方法,在对比的两个操作系统发行版中可以迅速从两千到三千个软件包中定位出影响测试项性能的软件包,快速发现性能缺陷点,使调优人员能够快速优化系统性能。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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