发明内容
有鉴于此,本申请提供一种测试服务器集群性能瓶颈的方法和装置。
一种测试服务器集群性能瓶颈的方法,所述方法包括:
在向目标服务器集群注入测试流量后,检测所述目标服务器集群的第一平均响应时间以及关联服务器集群的第二平均响应时间;
根据所述目标服务器集群中目标服务器的实际响应时间和所述第一平均响应时间定位出所述目标服务器集群中的瓶颈服务器;
根据所述关联服务器集群在非测试期间的日常响应时间和所述第二平均响应时间定位出所述关联服务器集群中的瓶颈服务器集群;
将所述瓶颈服务器集群作为目标服务器集群,并执行向目标服务器集群注入测试流量的步骤;
其中,所述关联服务器集群为所述目标服务器集群在响应所述测试流量时需要调用的服务器集群。
一种测试服务器集群性能瓶颈的装置,所述装置包括:
时间检测单元,在向目标服务器集群注入测试流量后,检测所述目标服务器集群的第一平均响应时间以及关联服务器集群的第二平均响应时间;
第一定位单元,根据所述目标服务器集群中目标服务器的实际响应时间和所述第一平均响应时间定位出所述目标服务器集群中的瓶颈服务器;
第二定位单元,根据所述关联服务器集群在非测试期间的日常响应时间和所述第二平均响应时间定位出所述关联服务器集群中的瓶颈服务器集群;
再次测试单元,将所述瓶颈服务器集群作为目标服务器集群,并执行向目标服务器集群注入测试流量的步骤;
其中,所述关联服务器集群为所述目标服务器集群在响应所述测试流量时需要调用的服务器集群。
由以上描述可以看出,本申请基于测试期间的实际响应时间和第一平均响应时间可以在目标服务器集群中横向定位出的瓶颈服务器,基于非测试期间的日常响应时间和测试期间的第二平均响应时间可以纵向定位出目标服务器集群的瓶颈关联服务器集群,从而实现服务器集群性能瓶颈的自动化定位,大大提高了排查效率。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本申请一示例性实施例示出的一种测试服务器集群性能瓶颈的方法的流程示意图。
请参考图1,所述测试服务器集群性能瓶颈的方法可以应用在测试平台中,包括有以下步骤:
步骤101,在向目标服务器集群注入测试流量后,检测所述目标服务器集群的第一平均响应时间以及关联服务器集群的第二平均响应时间。
在本实施例中,目标服务器集群为需要测试的服务器集群,关联服务器集群为所述目标服务器集群在响应请求(比如:测试流量)时需要调用的服务器集群,目标服务器集群的关联服务器集群通常有多个。
举例来说,对于Web系统,一般可通过URL(Uniform Resource Locator,统一资源定位符)来进行链路的压力测试。假设,目标服务器集群为宝贝详情服务器集群,所述宝贝详情服务器集群用于响应淘宝网宝贝详情的查看请求,当用户请求查看淘宝网某一宝贝的详情时,该请求可由所述目标服务器集群响应。所述目标服务器集群在响应用户的上述查看请求时,通常需要调用其他关联服务器集群,比如:评价服务器集群、销量服务器集群、宝贝信息服务器集群等。其中,所述评价服务器集群可用于为宝贝详情页面提供评价信息,所述销量服务器集群可用于为宝贝详情页面提供销量信息,所述宝贝信息服务器集群可用于为宝贝详情页面提供宝贝信息。由此可以看出,目标服务器集群的响应时间通常还会与关联服务器集群的性能有关。
在本实施例中,可以通过LVS(Linux Virtual Server,Linux虚拟服务器)向目标服务器集群注入测试流量,比如:URL访问请求。在注入测试流量后,可以检测所述目标服务器集群的平均响应时间,在本例中,为便于区分,可以将目标服务器集群对测试流量的平均响应时间称为第一平均响应时间。在本例中,还可以检测所述目标服务器集群的各个关联服务器集群的平均响应时间,为便于区分,可以称之为第二平均响应时间。
在本实施例中,假设,所述目标服务器集群为宝贝详情服务器集群,该宝贝详情服务器集群的第一平均响应时间为100ms,宝贝详情服务器集群有3个关联服务器集群,分别为评价服务器集群、销量服务器集群以及宝贝信息服务器集群,请参考表1,针对本次测试流量,各关联服务器集群的第二平均响应时间分别为50ms、20ms以及60ms。
关联服务器集群 |
第二平均响应时间 |
评价服务器集群 |
50ms |
销量服务器集群 |
20ms |
宝贝信息服务器集群 |
60ms |
表1
步骤102,根据所述目标服务器集群中目标服务器的实际响应时间和所述第一平均响应时间定位出所述目标服务器集群中的瓶颈服务器。
在本实施例中,在向目标服务器集群注入测试流量后,还可以检测所述目标服务器集群中各台目标服务器的实际响应时间,然后根据所述实际响应时间和所述第一平均响应时间确定所述目标服务器是否为瓶颈服务器。
在本实施例中,可以判断所述目标服务器的实际响应时间相较于所述第一平均响应时间的延迟比率是否达到第一阈值,如果达到所述第一阈值,则可以确定所述目标服务器为瓶颈服务器。具体地,所述延迟比率通常为实际响应时间减去第一平均响应时间后,除以第一平均响应时间得到。当某台目标服务器的实际响应时间小于等于所述第一平均响应时间时,确认该目标服务器没有延迟。当某台目标服务器的实际响应时间大于所述第一平均响应时间时,比如:目标服务器1的实际响应时间为130ms,而第一平均响应时间为100ms,则目标服务器1的延迟比率为30%。又假设所述第一阈值为50%,可以确定目标服务器1不是瓶颈服务器。假设,目标服务器2的实际响应时间为160ms,目标服务器2的延迟比率为60%,大于所述第一阈值,则可以确定目标服务器2为瓶颈服务器。其中,所述第一阈值通常由管理人员根据业务情况进行设置,本申请对此不作特殊限制。
步骤103,根据所述关联服务器集群在非测试期间的日常响应时间和所述第二平均响应时间定位出所述关联服务器集群中的瓶颈服务器集群。
在本实施例中,还可以获取各关联服务器集群在非测试期间的日常响应时间,所述日常响应时间通常可表示所述关联服务器集群正常工作时的响应时间。根据所述日常响应时间和所述第二平均响应时间可以定位出存在性能瓶颈的关联服务器集群,在本例中,可以称之为瓶颈服务器集群。
在本实施例中,参考前述步骤102,针对每个关联服务器集群,可以先判断所述关联服务器集群的日常响应时间相较于其第二平均响应时间的延迟比率是否达到第二阈值,如果达到所述第二阈值,则可以确定该关联服务器集群为瓶颈服务器集群。其中,所述第二阈值通常也可由管理人员根据业务情况进行设置,本申请对此不作特殊限制。
关联服务器集群 |
第二平均响应时间 |
日常响应时间 |
评价服务器集群 |
50ms |
20ms |
销量服务器集群 |
20ms |
22ms |
宝贝信息服务器集群 |
60ms |
58ms |
表2
基于表1的示例,请参考表2,假设,评价服务器集群、销量服务器集群以及宝贝信息服务器集群这三个关联服务器集群在非测试时间的日常响应时间分别为20ms、22ms以及58ms,第二阈值为50%,通过对延迟比率的计算可知,评价服务器集群的延迟比率高达150%,大于所述第二阈值,则可以确定评价服务器集群为关联服务器集群中的瓶颈服务器集群。
步骤104,将所述瓶颈服务器集群作为目标服务器集群,并执行向目标服务器集群注入测试流量的步骤。
基于前述步骤103,在本实施例中,在确定出关联服务器集群中的瓶颈服务器集群后,通常还需要进一步定位瓶颈服务器集群中的瓶颈服务器,因此可以将所述瓶颈服务器集群作为新的目标服务器集群,继续执行步骤101,向该新的目标服务器集群注入测试流量。
仍以表2为例,可以将评价服务器集群作为新的目标服务器集群,继续执行步骤101,在评价服务器集群中定位出存在性能瓶颈的评价服务器,并在评价服务器集群的关联服务器集群中定位出存在性能瓶颈的关联服务器集群。假设,所述评价服务器集群有两个关联服务器集群,可以参考步骤103,可以基于这个关联服务器集群在非测试期间的日常响应时间和这两个关联服务器集群的第二平均响应时间定位出所述评价服务器集群的瓶颈服务器集群。
由以上描述可以看出,本申请在测试服务集群的性能时,可以通过目标服务器的实际响应时间和目标服务器集群的第一平均响应时间定位出瓶颈服务器,此外,还可以根据关联服务器集群的日常响应时间和测试时的第二平均响应时间定位出瓶颈服务器集群,针对瓶颈服务器集群,可以继续采用实际响应时间和第一平均响应时间定位出瓶颈服务器。本申请基于测试期间的实际响应时间和第一平均响应时间可以在目标服务器集群中横向定位出的瓶颈服务器,基于非测试期间的日常响应时间和测试期间的第二平均响应时间可以纵向定位出目标服务器集群的瓶颈关联服务器集群,从而实现服务器集群性能瓶颈的自动化定位,大大提高了排查效率。
可选的,在本申请另一个例子中,在定位出瓶颈服务器后,还可以基于预设的性能指标对所述瓶颈服务器进行检测,以确定所述瓶颈服务器的性能瓶颈。其中,所述预设的性能指标可包括:CPU消耗、内存消耗、磁盘消耗、重传率等。比如:可以检测所述瓶颈服务器的CPU消耗、内存消耗、磁盘消耗、TCP(Transmission Control Protocol,传输控制协议)重传率,以发现瓶颈服务器的性能瓶颈到底在哪里。举例来说,假设所述瓶颈服务器的TCP重传率较高,那么通常可以说明所述瓶颈服务器的网络状况较差,进而可以有针对性的解决服务器集群的性能问题。
与前述测试服务器集群性能瓶颈的方法的实施例相对应,本申请还提供了测试服务器集群性能瓶颈的装置的实施例。
本申请测试服务器集群性能瓶颈的装置的实施例可以应用在测试平台中的网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请测试服务器集群性能瓶颈的装置所在网络设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3是本申请一示例性实施例示出的一种测试服务器集群性能瓶颈的装置的框图。
请参考图3,所述测试服务器集群性能瓶颈的装置200可以应用在图2所示的测试平台的网络设备中,包括有:时间检测单元201、第一定位单元202、第二定位单元203、再次测试单元204以及性能检测单元205。
其中,时间检测单元201,在向目标服务器集群注入测试流量后,检测所述目标服务器集群的第一平均响应时间以及关联服务器集群的第二平均响应时间;
第一定位单元202,根据所述目标服务器集群中目标服务器的实际响应时间和所述第一平均响应时间定位出所述目标服务器集群中的瓶颈服务器;
第二定位单元203,根据所述关联服务器集群在非测试期间的日常响应时间和所述第二平均响应时间定位出所述关联服务器集群中的瓶颈服务器集群;
再次测试单元204,将所述瓶颈服务器集群作为目标服务器集群,并执行向目标服务器集群注入测试流量的步骤;
其中,所述关联服务器集群为所述目标服务器集群在响应所述测试流量时需要调用的服务器集群。
性能检测单元205,基于预设的性能指标对所述瓶颈服务器进行检测,以确定所述瓶颈服务器的性能瓶颈。
可选的,所述预设的性能指标包括:CPU消耗、内存消耗、磁盘消耗、TCP重传率。
可选的,所述第一定位单元202,具体判断所述目标服务器的实际响应时间相较于所述第一平均响应时间的延迟比率是否达到第一阈值;当所述目标服务器的实际响应时间相较于所述第一平均响应时间的延迟比率达到所述第一阈值时,确定所述目标服务器为瓶颈服务器。
可选的,所述第二定位单元203,具体判断所述关联服务器集群的日常响应时间相较于所述第二平均响应时间的延迟比率是否达到第二阈值;当所述关联服务器集群的日常响应时间相较于所述第二平均响应时间的延迟比率达到所述第二阈值时,确定所述关联服务器集群为瓶颈服务器集群。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。