发明内容
本申请所要解决的技术问题是提供一种云计算系统的性能数据的采集与存储方法,用以解决现有技术中没有能够准确采集并存储云计算系统的性能数据方案的问题,进一步的,还能基于采集并存储的性能数据对云计算系统的进行性能分析。
本申请还提供了一种云计算系统的性能数据的采集与存储装置,以及一种云计算系统的性能检测方法、装置及系统,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种云计算系统的性能数据的采集与存储方法,应用于云计算系统中的各台主机上,包括:
按照预设的采样周期采集本机的性能数据,所述性能数据包括:本机CPU的寄存器值、正在运行的进程标示符PID、该进程的名称和该进程的用户栈;
利用所述本机CPU的寄存器值解析该进程的用户栈以得到该进程在采集时刻的函数调用链和所述函数调用链中各个函数对应的DSO文件;
将所述采集时刻作为关键字,所述采样周期、PID、名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存至第一数据库中,并将所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存至第二数据库中,所述函数地址表中对应保存有函数名称以及函数的起始和结束地址。
本申请公开了一种云计算系统的性能数据的采集与存储装置,包括:
采集单元,用于按照预设的采样周期采集本机的性能数据,所述性能数据包括:本机CPU的寄存器值、正在运行的进程标示符PID、该进程的名称和该进程的用户栈;
第一解析单元,用于利用所述本机CPU的寄存器值解析该进程的用户栈以得到该进程在采集时刻的函数调用链和所述函数调用链中各个函数对应的DSO文件;
第一保存单元,用于将所述采集时刻作为关键字,所述采样周期、PID、进程名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存至第一数据库中;
第二保存单元,用于将所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存至第二数据库中,所述函数地址表中对应保存有函数名称以及函数的起始和结束地址。
本申请公开了一种云计算系统的性能检测方法,包括:
接收用户关于云计算系统的性能检测请求,所述性能检测请求中包括:性能检测目标主机、所述目标主机上运行的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围;
将所述性能检测请求发送给所述性能检测目标主机,并接收所述性能检测目标主机返回的目标数据;所述目标数据为所述性能检测目标主机依据所述目标进程的名称、所述目标进程所涉及的DSO文件和时间范围在预置的第一数据库中检索出的数据,所述目标数据包括:采样周期、函数调用链地址以及所述函数调用链中各个函数对应的DSO文件的SHA1编码;在所述第一数据库中,采集时刻作为关键字,采样周期、PID、名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存;
依据所述目标数据中的SHA1编码从预置的第二数据库中匹配出对应的函数地址表;在所述第二数据库中,所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存;
利用所述函数地址表对所述目标数据中的函数调用链地址进行解析,以得到所述当前进程中调用的各个函数名称;
利用所述采样周期计算各个函数名称对应的各个函数的执行时间占比。
本申请公开了一种云计算系统的性能检测装置,包括:
接收请求单元,用于接收用户关于云计算系统的性能检测请求,所述性能检测请求中包括:性能检测目标主机、所述目标主机上运行的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围;
发送单元,用于将所述性能检测请求发送给所述性能检测目标主机;
接收数据单元,用于接收所述性能检测目标主机返回的目标数据;所述目标数据为所述性能检测目标主机依据所述目标进程的名称、所述目标进程所涉及的DSO文件和时间范围在预置的第一数据库中检索出的数据,所述目标数据包括:采样周期、函数调用链地址以及所述函数调用链中各个函数对应的DSO文件的SHA1编码;在所述第一数据库中,采集时刻作为关键字,采样周期、PID、名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存;
匹配单元,用于依据所述目标数据中的SHA1编码从预置的第二数据库中匹配出对应的函数地址表;在所述第二数据库中,所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存;
第二解析单元,用于利用所述函数地址表对所述目标数据中的函数调用链地址进行解析,以得到所述当前进程中调用的各个函数名称;
计算单元,用于利用所述采样周期计算各个函数名称对应的各个函数的执行时间占比。
与现有技术相比,本申请包括以下优点:
在本申请中,可以将云计算系统中各台主机的性能数据分别进行采集与存储,并分别保存在两个Key-Value型数据库中,就可以使各台主机上都保存有自己的性能数据,并且根据关键字Key即可方便高效的检索出对应的Value,这样实现了简易的分布式数据存储,避免了数据集中存储带来的不必要的网络开销。并且充分利用了各台主机上的存储资源。并且,对来自多台机器的性能数据进行聚合、分析还有利于根据数据库中的性能数据对云计算系统的性能进行分析,从而实现对云计算系统的性能数据的分析。进一步的,还可以接触性能分析结果有针对性的对主机中的各个软件进行性能优化。
此外,通过对第一数据库和第二数据库进行上述方式的生命周期管理,可以更有效的存储更有价值的数据,同时也节省了云计算系统中各台主机的存储空间。并且,本申请实施例可以对来自多台主机的性能数据进行聚合和分析等,实现了针对大规模计算机集群及分布式应用程序的性能分析。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参考图1,示出了本申请一种云计算系统的性能数据的采集与存储方法实施例的流程图,本实施例可以应用于云计算系统中的各台主机上,本实施例可以包括以下步骤:
步骤101:按照预设的采样周期采集本机的性能数据,所述性能数据包括:本机CPU的寄存器值、正在运行的进程标示符、该进程的名称和该进程的用户栈。
在本申请的实施例中,云计算系统中可能存在上千台主机,每一台主机都可以按照本实施例的方法进行性能数据的采集与存储。其中,采样周期可以预先由本领域技术人员设置好,例如,20ms,50Hz。其中,各台主机在采样时刻到来时,采集本机CPU的寄存器值,例如指令之神寄存器IP,栈指针寄存器SP,指针寄存器BP等的值。此外,还需要采集在采集时刻各台主机上正在运行的进程的标示符PID,该进程的进程名称,以及该进程的用户栈。这些数据内容可以通过操作系统提供的接口获得。
当然,在采集性能数据的时候,还可以采集其他数据,例如CPU的特权级别,这可以表示出当前采用是属于操作系统的还是用户级别的,例如还可以采集采样间隔,因为采样周期是预先设置好的固定值,而在实际采集过程中,具体采集的那一时刻的数值未必恰好等于采样周期,可能会存在一些偏差,因此,实际的采样间隔值也可以通过高精度的系统时钟采集得到。
步骤102:利用所述本机CPU的寄存器值解析所述当前进程的用户栈以得到该进程在采集时刻的函数调用链地址和所述函数调用链中各个函数对应的DSO文件。
在采集到本机CPU的寄存器值之后,可以利用本机CPU的寄存器值来解析当前进程的用户栈,从而可以得到当前进程在采集时刻的函数调用链,以及函数调用链中各个函数对应的DSO(动态共享对象,DynamicSharedObject)文件。其中,函数调用链表示CPU正在执行的当前函数,以及逐级调用直到当前函数的函数集合。函数调用链地址是指函数调用链中各个函数的地址。其中,当前进程可能对应多个DSO文件,因此,本步骤中需要解析出函数调用链中的各个函数都属于哪一个DSO文件。
步骤103:将所述采集时刻作为关键字,所述采样周期、当前进程的PID、进程名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存至第一数据库中。
在采集到性能数据之后,则首先将采集时刻作为关键字Key,采样周期、当前进程的PID、进程名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值Value,对应保存至第一个Key-Value型数据库中。
步骤104:将所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存至第二数据库中,所述函数地址表中对应保存有函数名称以及函数的起始和结束地址。
此外,再将所述各个函数对应的DSO文件的SHA1编码作为关键字Key,DSO文件中的函数地址表在磁盘上的存放位置作为键值Value,对应保存至第二个Key-Value型数据库中。其中,DSO文件中包括函数地址表,函数地址表中保存有函数名称,以及与函数名称对应的函数的起始地址和结束地址。因为一个DSO文件可能对应多个函数,因此,一个SHA1编码也可能对应多个函数。
可以理解的是,步骤103和步骤104的顺序也可以颠倒。
采用上述方法将云计算系统中各台主机的性能数据分别进行采集与存储,并分别保存在两个Key-Value型数据库中,就可以使各台主机上都保存有自己的性能数据,并且根据关键字Key即可方便高效地检索出对应的Value,这样实现了简易的分布式数据存储,避免了数据集中存储带来的不必要的网络开销。并且充分利用了各台主机上的存储资源。并且,也有利于根据数据库中的性能数据对云计算系统的性能进行分析,从而实现对云计算系统的性能数据的分析。
在不同的实施例中,在步骤104之后,还可以包括:
步骤105:判断所述第一数据库或第二数据库中的数据的存储时间是否超过预设时间阈值,如果是,则进入步骤106。
可以理解的是,由于各台主机的存储空间有限,并且性能数据的数据量较大,因此,可以在第一数据库或者第二数据库中仅保存N天的文件,N是自然数,具体值可以由本领域技术人员根据各台主机的实际存储空间或者技术需求进行设定。那么,N即是预设时间阈值,例如7天,主机可以判断第一数据库或者第二数据库中的数据的存储时间是不是已经超过预设时间阈值,如果超过了,则不再对其进行保存,没有超过,则不对数据进行任何处理。
步骤106:删除存储时间超过预设时间阈值的数据。
主机可以删除自己存储的超过预设时间阈值的数据,这样可以进一步的节省主机的存储空间。
可以理解的是,在实际应用中,还可以将实际中的“一天”设置为所述第一关系库和第二关系库中的数据表的时间属性,所述时间属性可以表示:每一天的性能数据单独存储在第一数据库或者第二数据库的一个表格中。即是,将每一天的性能数据单独存储在一个数据表中。
通过对第一数据库和第二数据库进行上述方式的生命周期管理,可以更有效的存储更有价值的数据,同时也节省了云计算系统中各台主机的存储空间。
参考图2,示出了本申请一种云计算系统的性能检测方法实施例的流程图,本实施例可以应用于云计算系统中专门用于性能检测的若干台主机上,其中,性能检测的主机与采集与存储性能数据的主机可以不同,那么,本实施例可以包括以下步骤:
步骤201:接收用户关于云计算系统的性能检测请求,所述性能检测请求中包括:性能检测目标主机、所述目标主机上运行的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围。
在用户触发了关于云计算系统的性能检测请求的时候,专门用于性能检测的主机可以响应性能检测请求,获取到性能检测请求中涉及的:性能检测目标主机、所述目标主机上运行的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围。其中,性能检测目标主机表示用户需要检测云计算系统中哪一台主机的性能,目标主机上运行的目标进程的名称表示用户需要检测的主机上的待检测进程,目标进程所涉及的DSO文件,因为一个进程可能涉及多个DSO文件,用户可以在性能检测请求中指定哪一个或者哪一些DSO文件,时间范围则限定了检测哪些采集时刻采集到的性能数据。
步骤202:将所述性能检测请求发送给所述性能检测目标主机,并接收所述性能检测目标主机返回的目标数据;所述目标数据为所述性能检测目标主机依据所述目标进程的名称、所述目标进程所涉及的DSO文件和时间范围在预置的第一数据库中检索出的数据,所述目标数据包括:采样周期、函数调用链以及所述函数调用链中各个函数对应的DSO文件的SHA1编码。
在本实施例中,专门用于检测的主机接收到性能检测请求之后,会将该请求转发给该请求中涉及的性能目标检测主机,性能目标检测主机接收到该请求之后,会根据其中的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围来在第一数据库中筛选目标数据,其中,目标数据包括:采样周期、函数调用链以及函数调用链中各个函数对应的DSO文件的SHA1编码。其中,所述第一数据库是采用图1所示的方法预先建立的。具体的,性能目标检测主机可以先以时间范围为关键字,在第一数据库中检索出在该时间范围内的所有Value,再用目标进程的名称和目标进程所涉及的DSO文件来筛选出最终的目标数据。
步骤203:依据所述目标数据中的SHA1编码从预置的第二数据库中匹配出对应的函数地址表。
在步骤202中得到了各个函数对应的DSO文件的SHA1编码之后,再以该SHA1编码为关键字从第二数据库中匹配出符合条件的函数地址表在磁盘上的存放位置,进而从该存放位置中读取出函数地址表。其中,第二数据库是采用图1所示的方法预先建立的。
步骤204:利用所述函数地址表对所述目标数据中的函数调用链地址进行解析,以得到所述当前进程中调用的各个函数名称。
因为函数地址表中保存的是函数名称与对应的函数的起始地址和结束地址,而函数调用链地址则表示的各个函数的指令地址,因此,一一比对各个函数的指令地址是否落到某一个函数的起始地址和结束地址中即可。例如,函数地址表中有一项是函数A对应的地址为0x00000001~0x00000005,而函数调用链中一个函数的指令地址为0x00000002,那么,可以该函数的名称即是函数A。
可以理解的是,在实际应用中,可以将本步骤的任务均分至不同的主机中进行,待各台主机的地址比对都完成之后,再将各台主机的结果进行聚合从而得到总结果。
步骤205:利用所述采样周期计算各个函数名称对应的各个函数的执行时间占比。
最后可以利用采用周期来计算各个函数名称对应的各个函数的执行时间占比。因为函数调用链地址中的各个指令地址有可能是重复的,即是某个函数被调用了多次,那么,该函数的总执行时间可以通过累加其每一次被调用的时间得到,即是将其被调用的次数与采样周期相乘,得到的乘积即是该函数的执行时间总长,最终得到的函数的执行总时间再除以采样周期的值,即可得到各个函数的执行时间占比,该执行时间占比的值在0~1之间。
在不同的实施例中,在步骤205之后还可以包括:
步骤206:将所述各个函数的执行时间占比和函数调用链生成所述云计算系统的性能图谱。
根据步骤205得到的各个函数的执行时间占比,和表示各个函数之间的被调用关系的函数调用链,则可以生成云计算系统的性能图谱,该性能图谱可以反映出各个函数的执行热度,以及函数之间的调用关系。该性能图谱还可以返回给发起性能检测请求的用户,以便用户接触该图谱可以快速定位软件的热点,从而有针对性的进行性能优化。
在本实施例中,通过预先在第一关系库和第二关系库中的数据,可以很方便的对云计算系统中的各台主机的性能进行检测,从而分析得到各台主机运行软件的热点,从而实现对云计算系统中各台主机的性能分析。进一步的,还可以接触性能分析结果有针对性的对主机中的各个软件进行性能优化。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种云计算系统的性能数据的采集与存储方法实施例所提供的方法相对应,参见图3,本申请还提供了一种云计算系统的性能数据的采集与存储装置实施例,在本实施例中,该装置可以包括:
采集单元301,用于按照预设的采样周期采集本机的性能数据,所述性能数据包括:本机CPU的寄存器值、正在运行的进程标示符、该进程的名称和该进程的用户栈。
第一解析单元302,用于利用所述本机CPU的寄存器值解析所述该进程的用户栈以得到该进程在采集时刻的函数调用链和所述函数调用链中各个函数对应的DSO文件。
第一保存单元303,用于将所述采集时刻作为关键字,所述采样周期、PID、名称、函数调用链以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存至第一数据库中。
第二保存单元304,用于将所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存至第二数据库中,所述函数地址表中对应保存有函数名称以及函数的起始和结束地址。
本申请实施例的装置,将云计算系统中各台主机的性能数据分别进行采集与存储,并分别保存在两个Key-Value型数据库中,就可以使各台主机上都保存有自己的性能数据,并且根据关键字Key即可方便高效地检索出对应的Value,这样实现了简易的分布式数据存储,避免了数据集中存储带来的不必要的网络开销。并且充分利用了各台主机上的存储资源。
在不同的实施例中,该装置还可以包括:
判断单元305,用于判断所述第一数据库或第二数据库中的数据的存储时间是否超过预设时间阈值。
删除单元306,用于在所述判断模块的结果为是的情况下,删除存储时间超过预设时间阈值的数据。
在不同的实施例中,该装置还可以包括:
设置模块,用于将一天设置为所述第一关系库和第二关系库中的数据表的时间属性,所述时间属性表示:每一天的性能数据单独存储在第一数据库或者第二数据库的一个表格中。
此外,通过对第一数据库和第二数据库进行上述方式的生命周期管理,可以更有效的存储最有价值的数据,同时也节省了云计算系统中各台主机的存储空间。
本申请还提供了一种云计算系统的性能检测装置实施例,在本实施例中,参考图4所示,所述性能检测装置可以包括:
接收请求单元401,用于接收用户关于云计算系统的性能检测请求,所述性能检测请求中包括:性能检测目标主机、所述目标主机上运行的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围。
发送单元402,用于将所述性能检测请求发送给所述性能检测目标主机。
接收数据单元403,用于接收所述性能检测目标主机返回的目标数据;所述目标数据为所述性能检测目标主机依据所述目标进程的名称、所述目标进程所涉及的DSO文件和时间范围在预置的第一数据库中检索出的数据,所述目标数据包括:采样周期、函数调用链以及所述函数调用链中各个函数对应的DSO文件的SHA1编码。在所述第一数据库中,采集时刻作为关键字,采样周期、PID、名称、函数调用链地址以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存。
匹配单元404,用于依据所述目标数据中的SHA1编码从预置的第二数据库中匹配出对应的函数地址表。在所述第二数据库中,所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存。
第二解析单元405,用于利用所述函数地址表对所述目标数据中的函数调用链地址进行解析,以得到所述当前进程中调用的各个函数名称。
计算单元406,用于利用所述采样周期计算各个函数名称对应的各个函数的执行时间占比。
在不同的实施例中,该装置还可以包括:
生成单元407,用于将所述各个函数的执行时间占比和函数调用链生成所述云计算系统的性能图谱。
在本实施例中,通过预先在第一关系库和第二关系库中的数据,可以很方便地对云计算系统中的各台主机的性能进行检测,从而分析得到各台主机运行软件的热点,从而实现对云计算系统中各台主机的性能分析。用户可以根据性能分析结果有针对性地对主机中的各个软件进行性能优化。
参考图5所示,一种云计算系统的性能检测系统,具体可以包括:云计算系统的性能数据的采集与存储装置501,以及,云计算系统的性能检测装置502。
其中,云计算系统的性能数据的采集与存储装置501具体可以包括:采集单元301,用于按照预设的采样周期采集本机的性能数据,所述性能数据包括:本机CPU的寄存器值、正在运行的进程标示符、该进程的名称和该进程的用户栈。第一解析单元302,用于利用所述本机CPU的寄存器值解析该进程的用户栈以得到该进程在采集时刻的函数调用链和所述函数调用链中各个函数对应的DSO文件。第一保存单元303,用于将所述采集时刻作为关键字,所述采样周期、当前进程的PID、进程名称、函数调用链以及所述各个函数对应的DSO文件的SHA1编码作为键值对应保存至第一数据库中。第二保存单元304,用于将所述各个函数对应的DSO文件的SHA1编码作为关键字,所述DSO文件中的函数地址表在磁盘上的存放位置作为键值对应保存至第二数据库中,所述函数地址表中对应保存有函数名称以及函数的起始和结束地址。
云计算系统的性能检测装置502具体可以包括:接收请求单元401,用于接收用户关于云计算系统的性能检测请求,所述性能检测请求中包括:性能检测目标主机、所述目标主机上运行的目标进程的名称、所述目标进程所涉及的DSO文件和时间范围。发送单元402,用于将所述性能检测请求发送给所述性能检测目标主机。接收数据单元403,用于接收所述性能检测目标主机返回的目标数据;所述目标数据为所述性能检测目标主机依据所述目标进程的名称、所述目标进程所涉及的DSO文件和时间范围在所述第一数据库中检索出的数据,所述目标数据包括:采样周期、函数调用链以及所述函数调用链中各个函数对应的DSO文件的SHA1编码。匹配单元404,用于依据所述目标数据中的SHA1编码从所述第二数据库中匹配出对应的函数地址表。第二解析单元405,用于利用所述函数地址表对所述目标数据中的函数调用链地址进行解析,以得到所述当前进程中调用的各个函数名称。计算单元406,用于利用所述采样周期计算各个函数名称对应的各个函数的执行时间占比。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的云计算系统的性能数据的采集与存储方法及装置、云计算系统的性能检测方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。