CN109240866A - 一种基于服务器性能测试的性能调优方法 - Google Patents
一种基于服务器性能测试的性能调优方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test 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的内核上。
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)
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进行检测的方法和装置 |
-
2018
- 2018-09-10 CN CN201811049837.XA patent/CN109240866A/zh active Pending
Patent Citations (5)
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 |