CN109062775B - 一种栈层优化判断的方法、系统及设备 - Google Patents
一种栈层优化判断的方法、系统及设备 Download PDFInfo
- Publication number
- CN109062775B CN109062775B CN201810745204.6A CN201810745204A CN109062775B CN 109062775 B CN109062775 B CN 109062775B CN 201810745204 A CN201810745204 A CN 201810745204A CN 109062775 B CN109062775 B CN 109062775B
- Authority
- CN
- China
- Prior art keywords
- calling
- layer
- tested
- stack layer
- performance data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000005457 optimization Methods 0.000 title claims abstract description 38
- 238000012360 testing method Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
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
本申请公开了一种栈层优化判断的方法,包括:接收输入的测试信息;根据该测试信息确定调用命令、待测栈层及调用层;在调用层内根据该调用命令虚拟生成第一调用结果,并根据第一调用结果得到第一性能数据;在待测栈层内根据该调用命令虚拟生成第二调用结果,并将第二调用结果返回至该调用层,然后根据第二调用结果得到第二性能数据;根据第一性能数据和第二性能数据确定待测栈层需要是否优化。本申请通过返回虚拟数据的方式对IO栈中各栈层进行IO测试,进而分析各个栈层对系统IO的影响,以便为系统的IO性能优化指明方向,缩小IO调优的范围。本申请同时还提供了一种栈层优化判断的系统、设备及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及IO性能领域,特别涉及一种栈层优化判断的方法、系统、设备及计算机可读存储介质。
背景技术
计算机系统IO性能调优是IT设备产商和网络公司绕不开的一个难题。从一般的计算机系统IO性能的简单参数调优到为了适应相关场景改变系统相关IO架构,其目的都是希望系统的IO性能达到用户的IO性能要求。
IO性能优化之所以是各IT设备产商和网络公司的难题,主要有两个原因:
1)计算机系统的IO路径很长,即使不考虑网络访问,仅桌面linux系统IO路径也可能包括如下层次:用户应用程序→系统调用→虚拟文件系统→文件系统→页面缓存→通用块层→IO调度层→块设备层→固件物理层,而过长的IO路径使得用户无法确认具体哪个层次需要优化,进而使得IO性能优化效率低下;
2)各种系统面临的场景不同,包括视频场景,OLTP,exchange,工作站等等,不同的场景,IO的block size,IOPS,时延等要求不同。满足某种场景的系统,换到另一种场景时可能根本无法适用,严重的可能出现丢数据。因此系统调优想要取得令人满意的调优结果,需要对系统整个栈层的性能非常了解,而仅仅使用相关工具进行测试分析不一定能获得真实的数据,进而无法正确的分析系统性能瓶颈。
因此,如何分析栈层对IO性能的影响是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种栈层优化判断的方法、系统、设备及计算机可读存储介质,用于分析栈层对IO性能的影响。
为解决上述技术问题,本申请提供一种栈层优化判断的方法,该方法包括:
接收输入的测试信息;
根据所述测试信息确定调用命令、待测栈层及调用层;
在所述调用层内根据所述调用命令虚拟生成第一调用结果,并根据所述第一调用结果得到第一性能数据;
在所述待测栈层内根据所述调用命令虚拟生成第二调用结果,并将所述第二调用结果返回至所述调用层,然后根据所述第二调用结果得到第二性能数据;
根据所述第一性能数据和所述第二性能数据确定所述待测栈层需要是否优化。
可选的,根据所述第一性能数据和所述第二性能数据确定所述待测栈层需要是否优化,包括:
根据所述第一性能数据和所述第二性能数据确定第一IO衰减值;
判断所述第一IO衰减值是否大于第一阈值;
若是,则确定所述待测栈层需要优化。
可选的,当所述IO衰减值不大于所述第一阈值时,还包括:
令所述待测栈层执行所述调用命令,生成第三调用结果;
将所述第三调用结果返回至所述调用层,并根据所述第三调用结果得到第三性能数据;
根据所述第一性能数据和所述第三性能数据确定第二IO衰减值;
判断所述第二IO衰减值是否大于第二阈值;
若是,则确定所述待测栈层需要优化。
可选的,根据所述第一性能数据和所述第二性能数据确定所述待测栈层需要是否优化,包括:
确定所述第一性能数据和所述第二性能数据的差值;
判断所述差值是否大于第三阈值;
若是,则确定所述待测栈层需要优化。
本申请还提供一种栈层优化判断的系统,该系统包括:
接收模块,用于接收输入的测试信息;
第一确定模块,用于根据所述测试信息确定调用命令、待测栈层及调用层;
第一虚拟模块,用于在所述调用层内根据所述调用命令虚拟生成第一调用结果,并根据所述第一调用结果得到第一性能数据;
第二虚拟模块,用于在所述待测栈层内根据所述调用命令虚拟生成第二调用结果,并将所述第二调用结果返回至所述调用层,然后根据所述第二调用结果得到第二性能数据;
第二确定模块,用于根据所述第一性能数据和所述第二性能数据确定所述待测栈层需要是否优化。
可选的,所述第二确定模块包括:
第一确定子模块,用于根据所述第一性能数据和所述第二性能数据确定第一IO衰减值;
第一判断子模块,用于判断所述第一IO衰减值是否大于第一阈值;
第二确定子模块,用于当所述第一IO衰减值大于所述第一阈值时,确定所述待测栈层需要优化。
可选的,所述第二确定模块还包括:
执行子模块,用于令所述待测栈层执行所述调用命令,生成第三调用结果;
返回子模块,用于将所述第三调用结果返回至所述调用层,并根据所述第三调用结果得到第三性能数据;
第三确定子模块,用于根据所述第一性能数据和所述第三性能数据确定第二IO衰减值;
第二判断子模块,用于判断所述第二IO衰减值是否大于第二阈值;
第四确定子模块,用于当所述第二IO衰减值大于所述第二阈值时,确定所述待测栈层需要优化。
可选的,所述第二确定模块包括:
第五确定子模块,用于确定所述第一性能数据和所述第二性能数据的差值;
第三判断子模块,用于判断所述差值是否大于第三阈值;
第六确定子模块,用于当所述差值大于所述第三阈值时,确定所述待测栈层需要优化。
本申请还提供一种栈层对IO性能的影响分析设备,该栈层对IO性能的影响分析设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述栈层优化判断的方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述栈层优化判断的方法的步骤。
本申请所提供栈层优化判断的方法,包括:接收输入的测试信息;根据该测试信息确定调用命令、待测栈层及调用层;在调用层内根据该调用命令虚拟生成第一调用结果,并根据第一调用结果得到第一性能数据;在待测栈层内根据该调用命令虚拟生成第二调用结果,并将第二调用结果返回至该调用层,然后根据第二调用结果得到第二性能数据;根据第一性能数据和第二性能数据确定待测栈层需要是否优化。
本申请所提供的技术方案,通过在调用层内根据该调用命令虚拟生成第一调用结果,并根据第一调用结果得到未加待测栈层的第一性能数据;再在待测栈层内根据该调用命令虚拟生成第二调用结果,根据第二调用结果得到加上待测栈层的第二性能数据,进而根据第一性能数据和第二性能数据之间的差异来确定待测栈层需要是否优化,以返回虚拟数据的方式对IO栈中各个栈层进行IO测试,进而分析各个栈层对系统IO的影响,以便为系统的IO性能调优指明方向,进而缩小IO调优的范围。本申请同时还提供了一种栈层优化判断的系统、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种栈层优化判断的方法的流程图;
图2为图1所提供的一种栈层优化判断的方法中S105的一种实际表现方式的流程图;
图3为本申请实施例所提供的一种栈层优化判断的系统的结构图;
图4为本申请实施例所提供的另一种栈层优化判断的系统的结构图;
图5为本申请实施例所提供的一种栈层对IO性能的影响分析设备的结构图。
具体实施方式
本申请的核心是提供一种栈层优化判断的方法、系统、设备及计算机可读存储介质,用于简化在数据中心中使用存储系统时的管理操作。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种栈层优化判断的方法的流程图。
其具体包括如下步骤:
S101:接收输入的测试信息;
基于计算机系统的IO路径很长,而且仅仅使用相关工具进行测试分析不一定能获得真实的数据,进而无法正确的分析系统性能瓶颈,本申请提供了一种栈层优化判断的方法,用于判断栈层是否需要优化。
S102:根据该测试信息确定调用命令、待测栈层及调用层;
当接收到测试信息时,根据该测试信息确定调用命令、待测栈层及调用层,这里提到的调用命令具体可以为测试工具发送的job文件,用来描述要访真的IO负载,待测栈层和调用层可以执行该调用命令,得到调用结果。
S103:在调用层内根据调用命令虚拟生成第一调用结果,并根据第一调用结果得到第一性能数据;
这里的调用层为待测栈层的上一个栈层,能够调用待测栈层执行相关操作;
这里提到的,在调用层内根据调用命令虚拟生成第一调用结果,并根据第一调用结果得到第一性能数据,其具体可以为:
预先找出调用层调用待测栈层的相关函数,并分析待测栈层所返回的数据;
当确定调用命令时,根据该调用命令确定所要分析的IO类型,在调用层虚拟生成相关代码并返回,后经过编译系统编译,并进行IO测试,获取到未加待测栈层时的相关IO的第一性能数据。
待测栈层所返回的数据可能是一个数据结构,以文件系统层和通用磁盘层为例,对于文件系统层发送的读请求,通用磁盘层所返回的数据包括一个用户数据;而对于写请求,通用磁盘层所返回的数据可能只是返回一个表示成功与否的数据。
S104:在待测栈层内根据调用命令虚拟生成第二调用结果,并将第二调用结果返回至调用层,然后根据第二调用结果得到第二性能数据;
这里提到的,在待测栈层内根据调用命令虚拟生成第二调用结果,并将第二调用结果返回至调用层,然后根据第二调用结果得到第二性能数据,其过程具体可以为:
重新打开调用层对待测栈层的调用,也就是将实现虚拟返回的相关代码屏蔽,然后在待测栈层的请求队列的相关函数中实现对IO的拦截,即不真正的向磁盘驱动层发送相关IO请求;
在屏蔽IO后向下层IO栈(待测栈层)传递数据的同时,虚拟待测栈层的相关数据返回(可能是实际数据,也可能只是一个成功与否的返回值),并使用虚拟的数据回调待测栈层对上层相关返回的相关函数;
最后编译系统编译实现待测栈层虚拟返回,并获取到加入待测栈层时的相关IO的第二性能数据。
S105:根据第一性能数据和第二性能数据确定待测栈层需要是否优化。
可选的,这里提到的根据第一性能数据和第二性能数据确定待测栈层需要是否优化,其具体可以为:
确定第一性能数据和第二性能数据的差值;
判断差值是否大于第三阈值;
若是,则确定待测栈层需要优化。
基于上述技术方案,本申请所提供的一种栈层优化判断的方法,通过在调用层内根据该调用命令虚拟生成第一调用结果,并根据第一调用结果得到未加待测栈层的第一性能数据;再在待测栈层内根据该调用命令虚拟生成第二调用结果,根据第二调用结果得到加上待测栈层的第二性能数据,进而根据第一性能数据和第二性能数据之间的差异来确定待测栈层需要是否优化,通过返回虚拟数据的方式对IO栈中各栈层进行IO测试,进而分析各个栈层对系统IO的影响,以便为系统的IO性能调优指明方向,进而缩小IO调优的范围。
针对于上一实施例的步骤S105,其中提到的根据第一性能数据和第二性能数据确定待测栈层需要是否优化,其具体也可以为通过IO衰减值来判断,下面结合图2进行详细说明。
请参考图2,图2为图1所提供的一种栈层优化判断的方法中S105的一种实际表现方式的流程图。
其具体包括以下步骤:
S201:根据第一性能数据和第二性能数据确定第一IO衰减值;
S202:判断该第一IO衰减值是否大于第一阈值;
若是,则进入步骤S203;
当第一IO衰减值大于第一阈值时,则证明加上待测栈层之后的IO性能衰减的较为厉害,需要对待测栈层进行优化。
可选的,当IO衰减值不大于第一阈值时,还可以包括:
令待测栈层执行调用命令,生成第三调用结果;
将第三调用结果返回至调用层,并根据第三调用结果得到第三性能数据;
根据第一性能数据和第三性能数据确定第二IO衰减值;
判断第二IO衰减值是否大于第二阈值;
若是,则确定待测栈层需要优化。
当第一IO衰减值不大于第一阈值时,则证明理论上待测栈层的IO性能不需要优化,此时再令待测栈层执行调用命令,生成第三调用结果;将第三调用结果返回至调用层,并获取到待测栈层实际执行调用命令时的相关IO的第三性能数据,再根据第一性能数据和第三性能数据确定第二IO衰减值;并根据第二IO衰减值来判断待测栈层是否需要优化,避免出现因为待测栈层的相关IO处理方法可能不适用于后端IO处理的情况;
需要说明的是,本申请对第一阈值和第二阈值的大小不做具体限定,用户或生产厂家可以根据实际情况进行设置。
S203:确定待测栈层需要优化。
基于上述技术方案,本申请通过确定第一IO衰减值,并根据第一IO衰减值与第一阈值的大小关系来判断待测栈层是否需要优化,进一步增加了判断结果的可信度,进而缩小IO调优的范围。
请参考图3,图3为本申请实施例所提供的一种栈层优化判断的系统的结构图。
该系统可以包括:
接收模块100,用于接收输入的测试信息;
第一确定模块200,用于根据测试信息确定调用命令、待测栈层及调用层;
第一虚拟模块300,用于在调用层内根据调用命令虚拟生成第一调用结果,并根据第一调用结果得到第一性能数据;
第二虚拟模块400,用于在待测栈层内根据调用命令虚拟生成第二调用结果,并将第二调用结果返回至调用层,然后根据第二调用结果得到第二性能数据;
第二确定模块500,用于根据第一性能数据和第二性能数据确定待测栈层需要是否优化。
请参考图4,图4为本申请实施例所提供的另一种栈层优化判断的系统的结构图。
该第二确定模块500可以包括:
第一确定子模块,用于根据第一性能数据和第二性能数据确定第一IO衰减值;
第一判断子模块,用于判断第一IO衰减值是否大于第一阈值;
第二确定子模块,用于当第一IO衰减值大于第一阈值时,确定待测栈层需要优化。
该第二确定模块500还可以包括:
执行子模块,用于令待测栈层执行调用命令,生成第三调用结果;
返回子模块,用于将第三调用结果返回至调用层,并根据第三调用结果得到第三性能数据;
第三确定子模块,用于根据第一性能数据和第三性能数据确定第二IO衰减值;
第二判断子模块,用于判断第二IO衰减值是否大于第二阈值;
第四确定子模块,用于当第二IO衰减值大于第二阈值时,确定待测栈层需要优化。
该第二确定模块500可以包括:
第五确定子模块,用于确定第一性能数据和第二性能数据的差值;
第三判断子模块,用于判断差值是否大于第三阈值;
第六确定子模块,用于当差值大于第三阈值时,确定待测栈层需要优化。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
请参考图5,图5为本申请实施例所提供的一种栈层对IO性能的影响分析设备的结构图。
该栈层对IO性能的影响分析设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在栈层对IO性能的影响分析设备600上执行存储介质630中的一系列指令操作。
栈层对IO性能的影响分析设备600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图1至图2所描述的栈层优化判断的方法中的步骤由栈层对IO性能的影响分析设备基于该图5所示的结构实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的一种栈层优化判断的方法、系统、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种栈层优化判断的方法,其特征在于,包括:
接收输入的测试信息;
根据所述测试信息确定调用命令、待测栈层及调用层;
在所述调用层内根据所述调用命令虚拟生成第一调用结果,并根据所述第一调用结果得到第一性能数据;
在所述待测栈层内根据所述调用命令虚拟生成第二调用结果,并将所述第二调用结果返回至所述调用层,然后根据所述第二调用结果得到第二性能数据;
根据所述第一性能数据和所述第二性能数据确定所述待测栈层是否需要优化;
其中,所述调用层为所述待测栈层的上一个栈层,所述调用层能够调用所述待测栈层执行相关操作;
其中,所述在所述调用层内根据所述调用命令虚拟生成第一调用结果,并根据所述第一调用结果得到第一性能数据,包括:
预先找出所述调用层调用所述待测栈层的相关函数,并分析所述待测栈层所返回的数据;
当确定所述调用命令时,根据所述调用命令确定所要分析的IO类型,在所述调用层虚拟生成相关代码并返回;
对所述相关代码经过编译系统编译,并进行IO测试,获取到未加所述待测栈层时的相关IO的第一性能数据;
其中,所述在所述待测栈层内根据所述调用命令虚拟生成第二调用结果,并将所述第二调用结果返回至所述调用层,然后根据所述第二调用结果得到第二性能数据,包括:
重新打开所述调用层对待测栈层的调用,并在所述待测栈层的请求队列的相关函数中实现对IO的拦截;
在屏蔽IO后向所述待测栈层传递数据,同时虚拟所述待测栈层的相关数据返回,并使用所述虚拟的相关数据回调所述待测栈层对所述调用层返回的相关函数;
通过所述编译系统编译实现所述待测栈层虚拟返回,并获取到加入所述待测栈层时的相关IO的第二性能数据。
2.根据权利要求1所述的方法,其特征在于,根据所述第一性能数据和所述第二性能数据确定所述待测栈层是否需要优化,包括:
根据所述第一性能数据和所述第二性能数据确定第一IO衰减值;
判断所述第一IO衰减值是否大于第一阈值;
若是,则确定所述待测栈层需要优化。
3.根据权利要求2所述的方法,其特征在于,当所述IO衰减值不大于所述第一阈值时,还包括:
令所述待测栈层执行所述调用命令,生成第三调用结果;
将所述第三调用结果返回至所述调用层,并根据所述第三调用结果得到第三性能数据;
根据所述第一性能数据和所述第三性能数据确定第二IO衰减值;
判断所述第二IO衰减值是否大于第二阈值;
若是,则确定所述待测栈层需要优化。
4.根据权利要求1所述的方法,其特征在于,根据所述第一性能数据和所述第二性能数据确定所述待测栈层是否需要优化,包括:
确定所述第一性能数据和所述第二性能数据的差值;
判断所述差值是否大于第三阈值;
若是,则确定所述待测栈层需要优化。
5.一种栈层优化判断的系统,其特征在于,包括:
接收模块,用于接收输入的测试信息;
第一确定模块,用于根据所述测试信息确定调用命令、待测栈层及调用层;
第一虚拟模块,用于在所述调用层内根据所述调用命令虚拟生成第一调用结果,并根据所述第一调用结果得到第一性能数据;
第二虚拟模块,用于在所述待测栈层内根据所述调用命令虚拟生成第二调用结果,并将所述第二调用结果返回至所述调用层,然后根据所述第二调用结果得到第二性能数据;
第二确定模块,用于根据所述第一性能数据和所述第二性能数据确定所述待测栈层是否需要优化;
其中,所述调用层为所述待测栈层的上一个栈层,所述调用层能够调用所述待测栈层执行相关操作;
其中,所述在所述调用层内根据所述调用命令虚拟生成第一调用结果,并根据所述第一调用结果得到第一性能数据,包括:
预先找出所述调用层调用所述待测栈层的相关函数,并分析所述待测栈层所返回的数据;
当确定所述调用命令时,根据所述调用命令确定所要分析的IO类型,在所述调用层虚拟生成相关代码并返回;
对所述相关代码经过编译系统编译,并进行IO测试,获取到未加所述待测栈层时的相关IO的第一性能数据;
其中,所述在所述待测栈层内根据所述调用命令虚拟生成第二调用结果,并将所述第二调用结果返回至所述调用层,然后根据所述第二调用结果得到第二性能数据,包括:
重新打开所述调用层对待测栈层的调用,并在所述待测栈层的请求队列的相关函数中实现对IO的拦截;
在屏蔽IO后向所述待测栈层传递数据,同时虚拟所述待测栈层的相关数据返回,并使用所述虚拟的相关数据回调所述待测栈层对所述调用层返回的相关函数;
通过所述编译系统编译实现所述待测栈层虚拟返回,并获取到加入所述待测栈层时的相关IO的第二性能数据。
6.根据权利要求5所述的系统,其特征在于,所述第二确定模块包括:
第一确定子模块,用于根据所述第一性能数据和所述第二性能数据确定第一IO衰减值;
第一判断子模块,用于判断所述第一IO衰减值是否大于第一阈值;
第二确定子模块,用于当所述第一IO衰减值大于所述第一阈值时,确定所述待测栈层需要优化。
7.根据权利要求6所述的系统,其特征在于,所述第二确定模块还包括:
执行子模块,用于当所述IO衰减值不大于所述第一阈值时,令所述待测栈层执行所述调用命令,生成第三调用结果;
返回子模块,用于将所述第三调用结果返回至所述调用层,并根据所述第三调用结果得到第三性能数据;
第三确定子模块,用于根据所述第一性能数据和所述第三性能数据确定第二IO衰减值;
第二判断子模块,用于判断所述第二IO衰减值是否大于第二阈值;
第四确定子模块,用于当所述第二IO衰减值大于所述第二阈值时,确定所述待测栈层需要优化。
8.根据权利要求5所述的系统,其特征在于,所述第二确定模块包括:
第五确定子模块,用于确定所述第一性能数据和所述第二性能数据的差值;
第三判断子模块,用于判断所述差值是否大于第三阈值;
第六确定子模块,用于当所述差值大于所述第三阈值时,确定所述待测栈层需要优化。
9.一种栈层对IO性能的影响分析设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述栈层优化判断的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述栈层优化判断的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810745204.6A CN109062775B (zh) | 2018-07-09 | 2018-07-09 | 一种栈层优化判断的方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810745204.6A CN109062775B (zh) | 2018-07-09 | 2018-07-09 | 一种栈层优化判断的方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109062775A CN109062775A (zh) | 2018-12-21 |
CN109062775B true CN109062775B (zh) | 2022-02-18 |
Family
ID=64819661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810745204.6A Active CN109062775B (zh) | 2018-07-09 | 2018-07-09 | 一种栈层优化判断的方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062775B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117950599A (zh) * | 2024-03-27 | 2024-04-30 | 国家超级计算天津中心 | 基于分布式系统的i/o栈构建方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030160A (zh) * | 2006-03-02 | 2007-09-05 | 鸿富锦精密工业(深圳)有限公司 | 统一串行接口测试命令的测试装置及其测试方法 |
CN101651658A (zh) * | 2008-08-13 | 2010-02-17 | 中国移动通信集团公司 | 无线Mesh网络中跨层联合优化的方法、装置及系统 |
CN103024000A (zh) * | 2012-11-30 | 2013-04-03 | 华为技术有限公司 | 路径跟踪的方法、设备和系统 |
CN106293522A (zh) * | 2016-08-03 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于tgt的存储性能优化方法和装置 |
CN107799158A (zh) * | 2017-11-23 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种NVMe SSD IO延时自动化测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10263879B2 (en) * | 2015-09-14 | 2019-04-16 | International Business Machines Corporation | I/O stack modeling for problem diagnosis and optimization |
-
2018
- 2018-07-09 CN CN201810745204.6A patent/CN109062775B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030160A (zh) * | 2006-03-02 | 2007-09-05 | 鸿富锦精密工业(深圳)有限公司 | 统一串行接口测试命令的测试装置及其测试方法 |
CN101651658A (zh) * | 2008-08-13 | 2010-02-17 | 中国移动通信集团公司 | 无线Mesh网络中跨层联合优化的方法、装置及系统 |
CN103024000A (zh) * | 2012-11-30 | 2013-04-03 | 华为技术有限公司 | 路径跟踪的方法、设备和系统 |
CN106293522A (zh) * | 2016-08-03 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种基于tgt的存储性能优化方法和装置 |
CN107799158A (zh) * | 2017-11-23 | 2018-03-13 | 郑州云海信息技术有限公司 | 一种NVMe SSD IO延时自动化测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109062775A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7138126B2 (ja) | リソース配置を最適化するための適時性リソース移行 | |
US9417973B2 (en) | Apparatus and method for fault recovery | |
US10289472B2 (en) | Resource leak detection method, apparatus, and system | |
US9477418B2 (en) | Assigning device adaptors to use to copy source extents to target extents in a copy relationship | |
CN110716845B (zh) | 一种Android系统的日志信息读取的方法 | |
CN109951553B (zh) | 数据处理方法、系统、电子设备以及计算机可读存储介质 | |
CN110460647B (zh) | 网络节点的调度方法、装置、电子设备和存储介质 | |
CN114691300A (zh) | 一种虚拟机实例的热迁移方法 | |
CN110781159B (zh) | Ceph目录文件信息读取方法、装置、服务器及存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
KR20160046223A (ko) | 멀티 쓰레딩 기반 멀티 코어 에뮬레이션 장치 및 방법 | |
CN111966653A (zh) | 微服务调用链路数据处理方法、装置、服务器及存储介质 | |
CN109062775B (zh) | 一种栈层优化判断的方法、系统及设备 | |
CN108959020B (zh) | 一种计算机cpu利用率的计算方法和装置 | |
CN115904628A (zh) | 基于vhost协议的IO虚拟化数据处理的方法及应用 | |
CN113703913B (zh) | 设备测试方法及装置 | |
CN115098272A (zh) | Gpu资源调度方法、调度器、电子设备和存储介质 | |
CN114237684A (zh) | 组件管理系统、方法、装置、电子设备及存储介质 | |
CN115220908A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN115033339A (zh) | 地址映射方法、装置、设备和存储介质 | |
US20150178186A1 (en) | Method and apparatus for swapping in data to memory | |
CN110704222A (zh) | 转储文件的分析方法及装置、存储介质、电子设备 | |
CN113778711B (zh) | 一种事件处理方法、装置、电子设备及存储介质 | |
CN113535721B (zh) | 一种数据写入方法及装置 | |
US9348674B2 (en) | Aysnchronous communications having compounded responses |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |