首页> 中国专利> 不同服务器出现故障时调整服务器配置参数的装置和方法

不同服务器出现故障时调整服务器配置参数的装置和方法

摘要

负载平衡器检测服务器故障,并且将故障通知信息发送给其余的服务器。作为响应,一个或多个所述剩余服务器可以自主地调整它们的配置参数,由此允许所述剩余服务器更好地处理因所述服务器故障而带来的增加的负载。一个或多个所述服务器还可以包括性能测量装置,该性能测量装置在自主调整所述配置参数之前和之后测量性能,以确定所述自主调整是否提高了系统性能和提高了多少系统性能。以这种方式,服务器计算机系统可以自主地补偿分担工作负载的其他服务器计算机系统的故障。

著录项

  • 公开/公告号CN101176073A

    专利类型发明专利

  • 公开/公告日2008-05-07

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200680016586.4

  • 申请日2006-05-16

  • 分类号G06F11/34(20060101);H04L12/26(20060101);G06F9/46(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人于静;李峥

  • 地址 美国纽约

  • 入库时间 2023-12-17 20:06:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-17

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/34 变更前: 变更后: 申请日:20060516

    专利权人的姓名或者名称、地址的变更

  • 2012-06-20

    专利权的转移 IPC(主分类):G06F11/34 变更前: 变更后: 登记生效日:20120514 申请日:20060516

    专利申请权、专利权的转移

  • 2010-09-22

    授权

    授权

  • 2008-07-02

    实质审查的生效

    实质审查的生效

  • 2008-05-07

    公开

    公开

说明书

技术领域

本发明一般地涉及联网计算机系统,更具体地说,涉及处理联网计算机系统中的服务器故障的装置和方法。

背景技术

计算机的广泛快速增长促进了允许计算机之间相互通信的计算机网络的发展。随着个人电脑(PC)的引入,计算对于很多人来说变得很容易。允许计算机之间相互通信的个人电脑网络快速发展起来。

计算机网络允许称为“客户机”的计算机系统或程序从称为“服务器”的其他计算机系统或程序请求信息或服务。不同类型的服务器在本领域中是公知的。例如,Web服务器将网页传送或“提供”给发出请求的客户机。应用服务器托管可由客户机计算机系统或程序调用的软件应用。数据库服务器传送数据以响应到数据库的数据库请求(或查询)。要指出的是,“Web服务器”、“应用服务器”和“数据库服务器”的这些标记在本领域中用于描述服务器的特定功能,但是这些功能不是相互排斥的。因此,单个服务器可以执行Web服务器、应用服务器以及数据库服务器的功能。

通常,服务器需要高可用性,这意味着提供多个服务器,并且一个服务器出现故障时将导致随后的故障转移过程,从而在尽管出现故障的情况下仍继续处理。在此类情况下,通常使用负载平衡器来将工作分配给每个服务器。当服务器停机时,负载平衡器检测到此故障并通过将所有请求路由到其余未出现故障的服务器来尝试进行补偿。但是,其余服务器可能不能处理由故障导致的额外工作负载。结果,整个系统速度减慢,可能提供太慢而不能满足指定目标的性能或太慢而不能提供足够客户响应的性能。在没有一种方式来允许服务器计算机系统更好地补偿服务器之一的故障时,当服务器出现故障时,计算机行业将继续遭受降低的和可能不可接受的性能。

发明内容

本发明提供了一种服务器计算机系统。优选地,负载平衡器检测服务器故障,并且将故障通知信息发送给其余的服务器。作为响应,一个或多个所述剩余服务器可以自主地调整它们的配置参数,由此允许所述剩余服务器更好地处理因所述服务器故障而带来的增加的负载。一个或多个所述服务器还可以包括性能测量装置,该性能测量装置在自主调整所述配置参数之前和之后测量性能,以确定所述自主调整是否提高了系统性能和提高了多少系统性能。以这种方式,服务器计算机系统可以自主地补偿分担工作负载的其他服务器计算机系统的故障。

如附图中示出的,从本发明的优选实施例的以下更详细描述中,本发明的上述和其他特征和优点将是显而易见的。

附图说明

以下将结合附图说明本发明的优选实施例,其中相同的标号表示相同的元素,这些附图是:

图1是现有技术联网计算机系统的方块图,示出了三个服务器同等分担负载平衡器接收的工作负载;

图2是图1中的现有技术联网计算机系统在服务器2出现故障后的方块图,使得负载平衡器将所有网络业务路由到两个剩余的服务器;

图3是根据优选实施例的联网计算机系统的方块图;

图4是图3中的联网计算机系统在服务器2出现故障后的方块图,使得负载平衡器发送故障信号给两个剩余的服务器并将所有网络业务路由到两个剩余的服务器;

图5是根据优选实施例的装置的方块图;

图6是根据优选实施例的在负载平衡器检测到服务器故障时的方法的流程图;

图7是根据优选实施例在负载平衡器检测到服务器恢复时的方法的流程图;

图8是根据优选实施例的用于动态地确定配置参数的故障级别和在故障发生时将服务器的配置参数设置为所述故障级别的方法的流程图;

图9是根据优选实施例的使用由用户设置的配置参数的故障级别和在故障发生时将服务器的配置参数设置为所述故障级别的方法的流程图;

图10是示出了根据图9中的方法900的用户指定的配置参数故障级别的一个特定实例的表;以及

图11是根据优选实施例的用于在自主调整服务器的配置参数之前和之后测量服务器性能的方法的流程图。

具体实施方式

1.0概述

本发明涉及在多个服务器计算机之间分担请求。对于不熟悉多个服务器计算机之间分担请求的人员来说,本概述部分将提供有助于理解本发明的背景信息。

多个服务器计算机之间的公知分担

参考图1,实例现有技术联网计算机系统100包括连接到网络110的多个客户机105,网络110连接到负载平衡器120。注意,图1中的客户机105示为105A,105B,...,105N。负载平衡器120通过网络110从客户机105获得请求,并将这些请求路由到图1中示为130A、130B、130C的三个服务器计算机系统130之一。负载平衡器120的目标是平衡三个服务器计算机系统之间的负载。假定此实例中每个服务器计算机系统具有相同的配置,由此允许每个服务器处理相同数目的请求。在此情况下,负载平衡器将33.33%的请求路由到服务器130A,将33.33%的请求路由到服务器130B,并且将33.33%的请求路由到服务器130C。

每个服务器包括可以被设置以确定服务器的运行时性能的配置参数132。因此,服务器130A包括相应的配置参数132A;服务器130B包括相应的配置参数132B;并且服务器130C包括相应的配置参数132C。这些配置参数优选地由系统管理员设置为这样的值,该值在所有服务器正常工作时,用于调整服务器的性能以处理在正常操作条件下每个服务器需要处理的请求的预期负载。

配置参数可以包括数据库连接的最大数目、高速缓存中的预备语句的最大数目,以及线程的最大数目。这些配置参数的值通常被选择为在正常操作条件下最优化服务器的性能。因此,对于图1中的系统100,如果每个服务器计算机系统希望需要平均15个数据库连接,且在峰值负载时需要20个数据库连接,则对于三个服务器中的每个服务器,数据库连接的最大数目可以设置为20。注意,将配置参数中的数据库连接的指定数目调整为这样的值,所述值在所有三个服务器都正常工作时提供最佳性能。

现在假定服务器之一出现故障,如图2中所示出的。假定此实例中服务器130B出现故障。负载平衡器120包括检测任一服务器何时出现故障的故障检测装置122。一旦故障检测装置122检测到服务器120B出现故障,负载平衡器120现在就必须将请求路由到两个剩余的服务器130A和130C。结果是到每个剩余服务器的请求显著增加。因为所述三个服务器用于提供总数为60的可能的并发数据库连接,而现在三个服务器之一停机,对于两个剩余的服务器而言,总的可能的并发数据库连接现在减少到40。减少的连接总数使客户机在数据库连接变得可用之前要等待一些时间,由此负面地影响系统性能和响应时间。结果,虽然负载平衡器能够检测到服务器故障并将网络请求路由到剩余的服务器,但是针对正常操作调整的配置参数使服务器不能有效处理由于服务器之一出现故障而产生的增加的请求数。

2.0优选实施例的描述

优选实施例检测服务器计算机系统何时出现故障,通知剩余服务器计算机系统所述故障,由此允许一个或多个剩余计算机系统自主地将它们的配置设置调整到反映故障模式的新的值。配置设置的自主调整允许服务器动态地调整到故障条件,由此在不同服务器出现故障时提供增强的性能。此外,优选实施例在配置参数的自主调整之前和之后测量计算机系统的性能,由此确定自主调整在多大程度(如果有)上提供了帮助。

参考图3,根据优选实施例的联网计算机系统300包括连接到网络110的多个客户机105,网络110连接到负载平衡器320。负载平衡器320执行与以上根据图1所述的功能相同的负载平衡功能,将33.33%的请求路由到每个服务器计算机系统。负载平衡器320包括如上所述的故障检测装置122,并另外包括服务器故障通知装置324。当故障检测装置122检测到服务器之一出现故障时,服务器故障通知装置324将消息发送给每个没有出现故障的服务器。

一个或多个服务器计算机系统330包括配置参数332。如此处使用的,术语“服务器”广义地用于任何可以被客户机计算机系统或客户机程序调用的计算机系统。配置参数332可以包括前面描述的现有技术配置参数,并且可以包括设置为影响服务器性能的不同值的其他配置参数。一个或多个服务器计算机系统330可以另外包括自主配置参数调整装置334和性能测量装置336。在图3的系统300中,每个服务器计算机系统示为包括相应的配置参数332、自主配置参数调整装置334以及性能测量装置336。因此,服务器330A包括相应的配置参数332A、自主配置参数调整装置334A以及性能测量装置336A。服务器330B包括相应的配置参数332B、自主配置参数调整装置334B以及性能测量装置336B。服务器330C包括相应的配置参数332C、自主配置参数调整装置334C以及性能测量装置336C。

现在假定服务器330B出现故障,如图4所示出的。故障检测装置122检测到故障,并且将所有请求路由到两个剩余的服务器330A和330C。此外,服务器故障通知装置324将消息发送给服务器330A和服务器330C以指示服务器已出现故障。所述消息可以只是指示故障服务器的数目,或者可替代地具体标识哪个或哪些服务器出现故障。此外,所述消息还可指明服务器预期有多少额外工作。由于负载平衡器320将工作导向服务器,它知道故障服务器正在完成多少工作,存在多少剩余的服务器,以及因此会将多少工作添加到每个剩余服务器。一旦服务器330A从服务器故障通知装置324接收到服务器出现故障或服务器330B出现故障的消息,自主配置参数调整装置334A就自主地将一个或多个配置参数332A调整到这样的级别,所述级别允许因服务器330B的故障而更有效地进行处理。同样地,一旦服务器330C从服务器故障通知装置324接收到服务器出现故障或服务器330B出现故障的消息,自主配置参数调整装置334C就自主地将一个或多个配置参数332C调整到这样的级别,所述级别允许因服务器330B的故障而更有效地进行处理。以这种方式,负载平衡器320可以发信号通知未出现故障的服务器某一服务器已出现故障,从而允许未出现故障的服务器自主地将它们的配置参数调整为在故障环境中更有效地工作。负载平衡器320还包括这样的装置,所述装置检测服务器330B或替代服务器何时恢复联机,并且将消息发送给其他服务器以指示故障已消除。作为响应,自主配置参数调整装置可以重新将配置参数调整回它们的正常工作值。

参考图5,计算机系统330是根据本发明优选实施例的装置的一种适当实施方式。计算机系统330是IBM eServer iSeries计算机系统,并代表图3和图4中示出的服务器计算机系统330的一种特定实施方式。本领域的技术人员将理解,本发明的装置和设备可以等同地应用到任何计算机系统,与计算机系统是否是复杂多用户计算设备、单用户工作站或嵌入式控制系统无关。如图5中显示的,计算机系统330包括处理器510,主存储器520,大容量存储装置接口530,显示接口540以及网络接口550。这些系统组件通过使用系统总线560来相互连接。大容量存储装置接口530用于将大容量存储装置设备(如直接访问存储设备555)连接到计算机系统330。一种特定类型的直接访问存储设备555是可读写的CD RW驱动器,其可以向/从CD RW595存储/读取数据。

根据优选实施例的主存储器520包含数据521,操作系统522,配置参数332,自主配置参数调整装置334以及性能测量装置336。数据521代表任何用作到计算机系统330中的任何程序的输入或来自计算机系统330中的任何程序的输出的数据。操作系统522是业内已知为OS/400的多任务操作系统;但是,本领域的技术人员将理解,本发明的精神和范围不限于任何一个操作系统。配置参数332代表服务器计算机系统330中的任何可被设置为不同值以调整服务器计算机系统330性能的参数。配置参数332包括数据库连接的最大数目、高速缓存中的预备语句的最大数目,以及线程的最大数目。当然,配置参数332可以包括任何其他可以被设置或改变以影响计算机系统330的性能的适当参数。

自主配置参数调整装置334自主地将配置参数332调整到允许服务器330在不同服务器出现故障时更有效地工作的故障值。此外,一旦检测到服务器恢复,自主配置参数调整装置334就自主地将配置参数调整回正常级别。性能测量装置336在故障之后、在自主配置参数调整装置334对配置参数332做出调整之前,然后在自主配置参数调整装置334对配置参数332做出调整之后测量计算机的系统性能。通过比较之前和之后的性能值,性能测量装置336可以确定调整配置参数在提高计算机系统330的性能方面具有多大效果。如果提高不令人满意,则可以尝试配置参数的其他值以试图进一步提高性能。

计算机系统330利用公知的虚拟寻址机制,所述机制允许计算机系统330的程序表现为好像它们只是在访问单个大型存储实体,而不是在访问如主存储器520和DASD设备555之类的多个小型存储实体。因此,虽然数据521,操作系统522,配置参数332,自主配置参数调整装置334,以及性能测量装置336示为位于主存储器520中,但是本领域的技术人员将认识到,这些项不必完全同时包含在主存储器520中。还应指出的是,此处使用的术语“存储器”通常指计算机系统330的整体虚拟存储器,并可以包括连接到计算机系统330的其他计算机系统的虚拟存储器。

可以从一个或多个微处理器和/或集成电路来构建处理器510。处理器510执行存储在主存储器520中的程序指令。主存储器520存储处理器510可以访问的程序和数据。当计算机系统330启动时,处理器510初始地执行组成操作系统522的程序指令。操作系统522是管理计算机系统330的资源的复杂程序。这些资源中的一些资源是处理器510,主存储器520,大容量存储装置接口530,显示接口540,网络接口550,以及系统总线560。

虽然计算机系统330示为仅包含单个处理器和单个系统总线,但是本领域的技术人员将理解,本发明可以使用具有多个处理器和/或多个总线的计算机系统来实现。此外,优选实施例中使用的每个接口都包括单独的完全编程的微处理器,所述微处理器用于从处理器510卸载计算密集的处理。但是,本领域的技术人员将理解,本发明等同地应用于只使用I/O适配器来执行类似功能的计算机系统。

显示接口540用于将一个或多个显示器565直接连接到计算机系统330。这些显示器565,它们可以是非智能(即,简易)终端或完全可编程工作站,用于允许系统管理员和用户与计算机系统330进行通信。但是要指出的是,虽然提供了显示接口540以支持与一个或多个显示器565的通信,但是计算机系统330不是必须需要显示器565,因为所有需要的与用户和其他过程的交互可以通过网络接口550来进行。

网络接口550用于跨网络570将其他计算机系统和/或工作站(例如,图5中的575)连接到计算机系统330。不管如何将计算机系统330连接到其他计算机系统和/或工作站,不管网络连接570是使用现有的模拟和/或数字技术还是通过某些未来的网络机制,本发明均等同地适用。此外,可以使用许多不同的网络协议来实现网络。这些协议是允许计算机跨网络570通信的专用计算机程序。TCP/IP(传输控制协议/网络协议)是适合的网络协议的一个实例。

此刻,重要的是指出,虽然本发明已经并将继续在完全功能的计算机系统的上下文中描述,但是本领域的技术人员将理解,本发明能够以各种形式作为程序产品来分布,并且本发明均可等同地应用,与用于实际执行所述分布的计算机可读信号承载介质的特定类型无关。适当的计算机可读信号承载介质的实例包括:可记录型介质如软盘和CD RW(例如,图5中的595),以及传输型介质如数字和模拟通信链路。要指出的是,优选的信号承载介质是有形的。

现在参考图6,当负载平衡器检测到服务器故障时,方法600开始(步骤610)。负载平衡器通知(优选地通过将消息发送给剩余服务器)剩余服务器所述故障(步骤620)。一个或多个剩余服务器然后自主地将它们的配置参数调整到故障级别(步骤630)。在优选实施例中,存在两组不同的配置参数,一组针对正常操作来定义,另一组针对故障操作来定义。通过将配置参数设置为针对故障操作定义的值来将配置参数设置为“故障级别”。同样,通过将配置参数设置为针对正常操作定义的值来将配置参数设置为“正常级别”。方法600显示了如何检测服务器中的故障,并且响应于此,可以将一个或多个剩余服务器的配置参数自主地调整(或设置)为故障级别,使得剩余服务器可以比配置参数保持正常级别时更有效地处理增加的负载。

参考图7,当负载平衡器检测到服务器恢复时,方法700开始(步骤710)。负载平衡器通知(优选地通过将消息发送给剩余服务器)其他服务器所述恢复(步骤720)。一个或多个其他服务器然后自主地将它们的配置参数调整回正常级别(步骤730)。方法700显示了如何检测恢复,并且响应于此,可以将一个或多个剩余服务器的配置参数自主地调整(或设置)为正常级别。

优选实施例包括两个不同的定义配置参数的故障级别的方法。第一方法允许服务器动态地确定配置参数的适当故障级别(步骤810)。一旦动态地确定了这些故障级别,就可以将服务器的配置参数设置为这些故障级别(步骤820)。要指出的是,在步骤810中动态确定适当故障级别可以使用任何适当的算法或试探法来完成。例如,在图3和图4示出的简单实例中,一种动态确定配置参数的合适故障值的适当方法是应用线性伸缩因数。在此实例中,如果三个服务器都具有最大数目为20的数据库连接,则当服务器330B出现故障时,负载平衡器320知道已失去处理请求的能力的1/3。结果,到每个剩余服务器330A和330C的消息可以包括每个服务器的负载将增加50%的指示。作为响应,剩余服务器330A和330C可以将它们最大为20的数据库连接增加50%以达到每个服务器为30个数据库连接。在另一个实例中,每个服务器可以查看可用处理器或I/O带宽以确定对配置参数的适当调整,以便处理负载平衡器在消息中指定的增加负载。优选实施例明确地适合动态确定一个或多个服务器的配置参数的故障级别的任何和所有方式和方法。要指出的是,动态确定故障级别可以在故障发生前执行,且存储故障级别以供将来在故障发生时使用。

定义配置参数的故障级别的第二方法允许用户指定故障级别。然后可以在故障发生时检索这些用户指定的故障级别。参考图9,方法900开始于查找配置参数的用户指定的故障级别(步骤910)。然后将配置参数设置为故障级别(步骤920)。图10显示了包含三个列的表1000,一列包含配置参数的正常级别,第二列包含一组在一个故障服务器事件时的故障级别,第三列包含另一个组在两个故障服务器事件时的故障级别。这些级别优选地由用户指定。要指出的是,用户可以使用任何适当的工具来帮助确定配置参数的合适级别。当用户明确指定配置参数的正常级别和故障级别时,如图10中显示的,自主配置参数调整装置只需根据服务器是运行在正常模式(没有故障服务器)、在一个故障服务器的模式,还是在两个故障服务器的模式,将配置参数设置为表1000中的级别。

如图3-5示出的,优选实施例包括性能测量装置336。此性能测量装置336允许自主配置参数调整装置334判定调整是否具有提高服务器性能的期望效果。现在参考图11,方法1100开始于测量配置参数处于正常级别时的服务器性能(步骤1110)。在优选实施方式中,在恰好检测到服务器之一出现故障之后来测量配置参数处于正常级别时的服务器性能。这允许步骤1110中的测量代表正常配置参数时的性能(尽管已发生故障)。在自主配置参数调整装置334已将配置参数设置为故障级别之后,再次测量性能(步骤1120)。然后比较两次的性能(步骤1130)。如果提高令人满意(步骤1140=是),则方法1100结束。如果提高不令人满意(步骤1140=否),则调整(步骤1150)和应用(步骤1160)故障值。控制然后转到步骤1120,并且方法1100继续。性能测量装置336因此允许判定配置参数的故障级别是否产生了性能方面的期望增长。

性能测量装置336测量服务器性能的一种适当方式是测量servlet响应时间。servlet响应时间是执行servlet(其是可以被客户机调用的服务器上的程序)所需的时间。当然,在优选实施例的范围之内,可以使用其他适当度量来测量服务器性能。

优选实施例通过以下步骤增强了服务器处理故障的能力:检测服务器之一的故障,发信号通知剩余服务器已发生故障,一个或多个剩余服务器自主地调整它们的一个或多个配置参数,以便在故障导致增加了负载的情况下提高性能。一旦服务器恢复,一个或多个服务器就可以自主地将它们的配置参数调整回正常级别。此外,性能测量装置允许判定配置参数的故障级别是否如期望的那样提高了系统性能。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号