CN109240866A - 一种基于服务器性能测试的性能调优方法 - Google Patents

一种基于服务器性能测试的性能调优方法 Download PDF

Info

Publication number
CN109240866A
CN109240866A CN201811049837.XA CN201811049837A CN109240866A CN 109240866 A CN109240866 A CN 109240866A CN 201811049837 A CN201811049837 A CN 201811049837A CN 109240866 A CN109240866 A CN 109240866A
Authority
CN
China
Prior art keywords
kernel
utilization rate
test
tuning method
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811049837.XA
Other languages
English (en)
Inventor
王守强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201811049837.XA priority Critical patent/CN109240866A/zh
Publication of CN109240866A publication Critical patent/CN109240866A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出了一种基于服务器性能测试的性能调优方法,通过周期性采集内核利用率,将测试进程自动绑定在利用率最低的内核上并用于测试。本发明通过执行脚本,实现自动化的调优方式,将测试进程绑定利用率最低的内核,提高测试性能。同时,在测试时使用能够直观的反映出CPU对测试结果的影响。有效的提高了测试效率。

Description

一种基于服务器性能测试的性能调优方法
技术领域
本发明涉及服务器性能测试技术领域,更具体的说是涉及一种基于服务器性能测试的性能调优方法。
背景技术
随着云计算、大数据等新型技术的发展,对服务器的处理器、内存、数据存储的带宽和容量等性能要求越来越高,如何高效地评估服务器各项基本性能对服务器厂商、服务器用户有十分重大的意义。传统服务器性能测试通过自动运行测试进程来实现,因测试效率较高,被测试人员普通采用。
但是,在对硬盘的读写能力测试过程中,常常出现性能不达标的情况,可以通过绑定内核的方法调优。可以通过将一个进程绑定到一个内核上的方法,直到测试完成。但这种方法的问题是不够机动,如果绑定的内核利用率过高,测试的结果也会出现不达标的情况。
发明内容
针对以上问题,本发明的目的在于提供一种基于服务器性能测试的性能调优方法,通过周期性采集内核利用率,将测试进程自动绑定在利用率最低的内核上并用于测试。
本发明为实现上述目的,通过以下技术方案实现:一种基于服务器性能测试的性能调优方法,包括如下步骤:
步骤1:获取内核数量和测试程序的进程号;
步骤2:实时获取CPU进程的状态;
步骤3:将每个CPU内核的使用状态分别记录;
步骤4:分别累加每个CPU内核的使用率;
步骤5:将CPU内核使用率最低的内核找出来;
步骤6:将测试进程重新绑定到利用率最低的内核上。
进一步,步骤2包括:采用实时系统监控工具mpstat每2秒抓取一次CPU的使用状态信息。
进一步,所述步骤2还包括:将CPU的使用状态信息中保护CPU各内核利用率的部分写入buffer文档中。
进一步,所述步骤3包括:循环筛选buffer文档中的信息,并按照内核名字将每个内核的使用率进行保存。
进一步,所述步骤3还包括:定义循环次数j,如果在循环过程中j大于CPU内核数,则跳出循环。
进一步,所述步骤4包括:循环抓取每个内核的利用率,将每个内核的实时内核利用率$k与内核使用率累加值"$k"_1相加,并重新放入"$k"_1中。
进一步,所述步骤4还包括:定义循环次数k,如果在循环过程中k大于CPU内核数,则跳出循环。
进一步,所述步骤4还包括:如果内核的使用率累加值"$k"_1不存在,则将"$k"_1的值初始化为0。
进一步,所述步骤5具体包括:定义内核使用率最小值,并设定初始值;循环遍历每个内核使用率的累加值"$k"_1,如果"$k"_1小于当前的内核使用率最小值,则将当前内核使用率的累加值"$k"_1设为内核使用率最小值,并将当前内核的序号写入关键字key中。
进一步,所述步骤6具体为:将测试进程重新绑定到序号为key的内核上。
对比现有技术,本发明有益效果在于:
1.通过重新绑定内核,来实现性能调优的目的。
2.通过动态重新绑定内核的方式,避免过度依赖单一内核。
3.通过抓取实时的内核利用率,并将各个内核的利用率累加,避免突发事件造成某个内核利用率飙升造成的偏差。
4.重新绑定内核的时间可控,避免频繁重新绑定和内核切换的时候命令延迟。
5.使用冒泡比较法,能够快速准确的找出利用率最小的内核。
本发明可以用在服务器性能测试中,通过自动化的调优方式,将测试进程绑定利用率最低的内核,提高测试性能。同时,在测试时使用本发明也直观的反映出CPU对测试结果的影响。有效的提高了测试效率。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
附图1是本发明实施例一的方法流程图。
附图2是本发明实施例二的方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做出说明。
实施例一:
如图1所示的一种基于服务器性能测试的性能调优方法,包括如下步骤:
步骤1:获取内核数量和测试程序的进程号。
步骤2:实时获取CPU进程的状态。
步骤3:将每个CPU内核的使用状态分别记录。
步骤4:分别累加每个CPU内核的使用率。
步骤5:将CPU内核使用率最低的内核找出来。
步骤6:将测试进程重新绑定到利用率最低的内核上。
本实施例提出的一种基于服务器性能测试的性能调优方法,通过执行脚本,实现自动化的调优方式,将测试进程绑定利用率最低的内核,提高测试性能。同时,在测试时使用能够直观的反映出CPU对测试结果的影响。有效的提高了测试效率。
实施例二:
如图2所示的一种基于服务器性能测试的性能调优方法,包括如下步骤:
步骤1:获取内核数量和测试程序的进程号。
步骤2:采用实时系统监控工具mpstat每2秒抓取一次CPU的使用状态信息。将CPU的使用状态信息中保护CPU各内核利用率的部分写入buffer文档中。
步骤3:循环筛选buffer文档中的信息,并按照内核名字将每个内核的使用率进行保存。定义循环次数j,如果在循环过程中j大于CPU内核数,则跳出循环。
步骤4:循环抓取每个内核的利用率,将每个内核的实时内核利用率$k与内核使用率累加值"$k"_1相加,并重新放入"$k"_1中。定义循环次数k,如果在循环过程中k大于CPU内核数,则跳出循环。如果内核的使用率累加值"$k"_1不存在,则将"$k"_1的值初始化为0。
步骤5:定义内核使用率最小值,并设定初始值;循环遍历每个内核使用率的累加值"$k"_1,如果"$k"_1小于当前的内核使用率最小值,则将当前内核使用率的累加值"$k"_1设为内核使用率最小值,并将当前内核的序号写入关键字key中。
步骤6:将测试进程重新绑定到序号为key的内核上。
在上述基础上,具体的脚本内容如下:
1.获取内核数量和测试程序的进程号
CPUs=$(grep-c processor/proc/cpuinfo)
PIDs=$(ps aux|grep"测试进程"|awk'{print$2}')--测试进程的名字,通常是FIO
2.实时获取CPU进程的状态
Mpstat–A-2>1.txt&--这条命令在主程序中运行,每2s抓一次CPU使用状态
j=$(($CPUs+5))
sed-n"5,"$j"p"1.txt>buffer_sum.txt--mpstat中包含信息较多,这里将包含CPU各内核利用率的部分剪出来放入buffer文档中
3.将每个CPU内核的使用状态分别记录
forj in{1..100}
do
if(($j>$CPUs))--自定义的循环数,一般的CPU内核数小于100,如果循环超过内核数,则跳出循环
thenbreak
fi
sed-n""$j"p"buffer_sum.txt|awk'{print$4}'>$j--把buffer文档中的信息进一步筛选,并按照内核名字来命名,分别保存起来,为了找出最小值。
done
4.分时累加CPU内核使用率
for k in{1..100}
do
if(($k>$CPUs))--自定义的循环数,一般的CPU内核数小于100,如果循环超过内核数,则跳出循环
thenbreak
fi
iftest–s"$k"_1--定义"$k"_1是每个内核的累加,如果文件"$k"_1已经存在,则可以往下进行
then
l=`cat"$k"_1`
m=`cat$k`
t=`echo$m+$l|bc`
echo$t>""$k"_1"--将当前实时的内核利用率$k,过去个时间点采集的内核利用率累加和$k"_1相加,并重新放入$k"_1
echo$t
else
echo 0>"$k"_1--如果$k"_1不存在,则生成$k"_1并写入0来初始化
fi
done
5.将CPU内核使用率最低的内核找出来
min=100--定义一个初始值
for fin{1..100}
do
if(($f>=$CPUs))--循环数大于内核数时跳出循环
thenbreak
fi
a=`cat""$f"_1"`
c=`echo"$a<$min"|bc`--累加值遍历,如果当前的累加值小于当前的最小值,则将当前累加值设为最小值
if(($c==1))
then
echo$f>key
min=$a--累加值遍历,如果当前的累加值小于当前的最小值,则将当前累加值设为最小值,并将那个核的数写入关键字key中
echo$min
fi
done
6.重新绑定内核
taskset-c`cat key`-p$PIDs--将测试进程重新绑定到利用率最低的内核上
本实施例提出的一种基于服务器性能测试的性能调优方法,通过执行脚本重新绑定内核,来实现性能调优的目的。动态重新绑定内核的方式,避免过度依赖单一内核。通过抓取实时的内核利用率,并将各个内核的利用率累加,避免突发事件造成某个内核利用率飙升造成的偏差。重新绑定内核的时间可控,避免频繁重新绑定和内核切换的时候命令延迟。使用了冒泡比较法,能够快速准确的找出利用率最小的内核。
结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所限定的范围。

Claims (10)

1.一种基于服务器性能测试的性能调优方法,其特征在于,包括如下步骤:
步骤1:获取内核数量和测试程序的进程号;
步骤2:实时获取CPU进程的状态;
步骤3:将每个CPU内核的使用状态分别记录;
步骤4:分别累加每个CPU内核的使用率;
步骤5:将CPU内核使用率最低的内核找出来;
步骤6:将测试进程重新绑定到利用率最低的内核上。
2.根据权利要求1所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤2包括:采用实时系统监控工具mpstat每2秒抓取一次CPU的使用状态信息。
3.根据权利要求2所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤2还包括:将CPU的使用状态信息中保护CPU各内核利用率的部分写入buffer文档中。
4.根据权利要求1所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤3包括:循环筛选buffer文档中的信息,并按照内核名字将每个内核的使用率进行保存。
5.根据权利要求4所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤3还包括:定义循环次数j,如果在循环过程中j大于CPU内核数,则跳出循环。
6.根据权利要求1所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤4包括:循环抓取每个内核的利用率,将每个内核的实时内核利用率$k与内核使用率累加值"$k"_1相加,并重新放入"$k"_1中。
7.根据权利要求6所述的基于服务器性能测试的性能调优方法,其特征在于:所述步骤4还包括:定义循环次数k,如果在循环过程中k大于CPU内核数,则跳出循环。
8.根据权利要求6所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤4还包括:如果内核的使用率累加值"$k"_1不存在,则将"$k"_1的值初始化为0。
9.根据权利要求6所述的基于服务器性能测试的性能调优方法,其特征在于,
所述步骤5具体包括:定义内核使用率最小值,并设定初始值;循环遍历每个内核使用率的累加值"$k"_1,如果"$k"_1小于当前的内核使用率最小值,则将当前内核使用率的累加值"$k"_1设为内核使用率最小值,并将当前内核的序号写入关键字key中。
10.根据权利要求9所述的基于服务器性能测试的性能调优方法,其特征在于,所述步骤6具体为:将测试进程重新绑定到序号为key的内核上。
CN201811049837.XA 2018-09-10 2018-09-10 一种基于服务器性能测试的性能调优方法 Pending CN109240866A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811049837.XA CN109240866A (zh) 2018-09-10 2018-09-10 一种基于服务器性能测试的性能调优方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811049837.XA CN109240866A (zh) 2018-09-10 2018-09-10 一种基于服务器性能测试的性能调优方法

Publications (1)

Publication Number Publication Date
CN109240866A true CN109240866A (zh) 2019-01-18

Family

ID=65067211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811049837.XA Pending CN109240866A (zh) 2018-09-10 2018-09-10 一种基于服务器性能测试的性能调优方法

Country Status (1)

Country Link
CN (1) CN109240866A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307419A1 (en) * 2007-06-06 2008-12-11 Microsoft Corporation Lazy kernel thread binding
CN103279391A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法
CN103870331A (zh) * 2012-12-10 2014-06-18 联想(北京)有限公司 一种动态分配处理器内核的方法及电子设备
CN105468522A (zh) * 2015-11-20 2016-04-06 浪潮电子信息产业股份有限公司 一种基于Linux系统CPU负载控制下的软件压力测试方法
CN106407088A (zh) * 2016-09-08 2017-02-15 努比亚技术有限公司 一种对多核cpu进行检测的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307419A1 (en) * 2007-06-06 2008-12-11 Microsoft Corporation Lazy kernel thread binding
CN103870331A (zh) * 2012-12-10 2014-06-18 联想(北京)有限公司 一种动态分配处理器内核的方法及电子设备
CN103279391A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种基于cpu与mic架构处理器协同计算的负载均衡优化方法
CN105468522A (zh) * 2015-11-20 2016-04-06 浪潮电子信息产业股份有限公司 一种基于Linux系统CPU负载控制下的软件压力测试方法
CN106407088A (zh) * 2016-09-08 2017-02-15 努比亚技术有限公司 一种对多核cpu进行检测的方法和装置

Similar Documents

Publication Publication Date Title
CN112286644B (zh) Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质
CN109034993A (zh) 对账方法、设备、系统及计算机可读存储介质
CN109862396A (zh) 一种视频码流的分析方法、电子设备及可读存储介质
CN109871326A (zh) 一种脚本录制的方法和装置
CN105095207B (zh) 检索、获取应用软件内容的方法和装置
CN109710185A (zh) 数据处理方法及装置
CN108153587A (zh) 一种针对大数据平台的慢任务原因检测方法
CN105718028B (zh) 一种基于识别耗电应用的省电方法及装置
CN102222034A (zh) 基于程序轮廓分析的虚拟化平台性能评测方法
US20150006451A1 (en) Document classification system with user-defined rules
CN106354647A (zh) 一种应用检测方法及服务器
CN107491372A (zh) 一种针对Linux系统RPM包统计CPU占用率的方法及系统
CN107688533A (zh) 应用程序测试方法、装置、计算机设备和存储介质
CN106649342A (zh) 数据采集平台中数据处理的方法及装置
CN109934956A (zh) 一种飞参数据判读方法、系统、设备及介质
CN116016628A (zh) 一种api网关埋点分析方法及装置
CN103248511B (zh) 一种单点业务性能的分析方法、装置和系统
CN116708070A (zh) 基于域控制器的can报文存储方法、装置、设备及存储介质
CN107241650A (zh) 一种快速定位播放卡顿现象原因的方法
CN109240866A (zh) 一种基于服务器性能测试的性能调优方法
CN109614380A (zh) 日志处理方法、系统、计算机设备及可读介质
JP2007249949A (ja) フォーマットする試験結果の文脈を提供する変数値を格納する装置
CN110232026A (zh) AssetBundle资源检测方法及系统
CN109815118A (zh) 数据库管理方法及装置、电子设备和计算机可读存储介质
CN107943632A (zh) 一种实现多nvme盘配置服务器中各盘性能均衡的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190118

RJ01 Rejection of invention patent application after publication