专利名称::用于监视服务器性能的方法和系统的制作方法
技术领域:
:本发明一般地涉及从客户机监视服务器性能的方法和系统。特别地本发明涉及捕获关于每个被执行的小服务程序(servlet)内部状态(特征)的数据。
背景技术:
:当使用因特网时,一个客户机可能使用不同的协议,如万维网(WWW)中的超文本传送协议(HTTP),来与服务器进行通信。该协议使用统一资源定位符(URL)来指向因特网上的文件、目录、或者复杂的任务。一个复杂的任务可能包含Web服务器对一个小服务程序的执行。客户浏览器可以通过万维网用HTTP协议将HTTP请求发送到服务器。当接收到该请求时,客户机将指定小服务程序对所述请求进行适当的处理。小服务程序执行他们的复杂任务并作为超文本标记语言(HTML)文档向客户浏览器返回数据。其他与该客户浏览器兼容的数据格式,比如可扩展标记语言(XML),也同样可以用于该返回数据。小服务程序因此增强了Web服务器的功能性。虽然主要与HTTP协议一起使用,但是小服务程序也可以使用其他的技术。小服务程序通常用Java源代码来进行编写,然后被编译并安装在支持小服务程序的Web服务器上,例如ApacheSoftwareFoundation的ApacheHTTP服务器,Forest·Hills,MD或者SunMicrosystems公司的JavaWeb服务器。提供Web服务器能力(capability)的公司需要在运行Java或者其他小服务程序时监视他们的服务器的性能,如响应时间和操作特性。例如,目前的服务器可能每周执行150万个(次)小服务程序。这种监视是用来保证提供可接受的服务器能力所必须的。否则,Web服务器能力的人类用户将不满意并转向使用竞争对手的能力。因此开发了许多用于监视的支持工具。“电子商务应用监视工具”(“e-businessapplicationmonitoringtool”,该文章发表于2001年2月的期刊“ResearchDisclosure”,第322页)描述了使用ping/ping答复测试来检查服务器的存在。该文章还描述了检查一个进程ID(PID)是否存在于服务器上从而保证一个应用(小服务程序)在服务器上启动并运行。这篇发表于“ResearchDisclosure”的文章还描述了一种用来测试服务器上应用功能的工具。一个应用监视工具模拟Web客户机。该工具利用在Unix平台机器上的定时URL执行能力(CRON)来运行。该监视工具将来自列表中的一个URL发送到服务器,并测试该服务器返回一个标准HTML页的能力。如果响应错误或者在指定数量的重试之后超时,就将这个事件记录下来,否则将进行列表中的下一个URL。同样也可以检查服务器的其他响应,包括调用活动服务器页面(ASP)、JAVASERVERPAGESTM(JSP)(JAVASERVERPAGES是SunMicrosystems公司(SantaClara,CA)的一个注册商标)、小服务程序、或者公共网关接口程序索引(cgi-bin)程序的能力。除监视之外,当检测到不可接受的性能和操作特性时,必须采取措施(action)。一种可能的措施可以是启动在服务器上运行的(多个)附加虚拟机(VM,virtualmachine)。Bayeh在美国专利6,223,202B1中曾经描述虚拟机池(pooling)技术,在这种技术中,用监视这些VM的执行的控制器来启动或停止VM。另一种提高网络环境中的计算机性能的技术是由Batra在美国专利6,105,067中描述的。在Web服务器和多个后端数据服务器之间建立一个连接池。定义一个过程来指定各连接,并且当客户机请求的处理完成后维护各连接。这些连接是在连接池中被维护的。当接收到另一个客户机请求时,如果在连接池中有一个可用的连接,那么就用该池中的连接。这种技术避免了重新建立新连接的开销。Fraenkel等人在加拿大专利申请公开2,255,023中描述为了帮助应用开发者检测出错的JSP代码监视服务器上的混合源代码的执行。页面编译器(pagecompiler)在将JSP代码,转换为小服务程序时,包括对由执行监视器进行的执行跟踪的支持。于是,应用开发者就能观看JSP代码、小服务程序代码和由小服务程序产生的结果HTML代码的相互关系。尽管已经有了前面提及到的方法以及其他在服务器性能监视方面的发展,仍然需要一种技术来搜集关于小服务程序的信息,以便确定服务器性能,进行问题判断,并改善Web服务器上的中央处理单元(CPU)的利用。根据本发明,定义了一种新方法、系统和程序产品用于改善的服务器性能监视。相信这种改善的监视将会为技术上的进步做出重要的贡献。
发明内容本发明的主要目的就是通过提供一种具有增强功能能力的监视方法来提高服务器性能监视技术。另一个目的就是提供一种服务器监视方法,在这种方法中增强的操作能力是可能的。再一个目的就是提供一种具有这种增强的功能和操作能力的用于进行服务器监视的系统。本发明还有一个目的就是提供一种在程序指令装置中体现这种增强的方法的程序产品。这些或者其他的目的都可以在根据本发明的一个实施例实现,其中提供了一种监视服务器性能的方法,该方法包括提供在服务器上的一个或多个小服务程序;在每一个小服务程序的开始插入代码,从而当被执行时将其开始时间记录在该服务器的存储器中的一个表(table)内;在每个小服务程序的出口或者异常点(exceptionpoint)插入代码,从而在该表中记录其停止时间,并检查是否要将记录的小服务程序执行信息加到网页中的小服务程序阵列(array)中;以及将该小服务程序阵列发送给一个应用。根据本发明的另一个实施例,提供一种监视服务器性能的系统,该系统包括具有存储器和一个或多个小服务程序的服务器;在每个小服务程序的开始插入代码,从而当执行这个小服务程序时,将其开始时间记录在存储器中的表内的装置;用于在每个小服务程序的出口或者异常点插入代码,从而在表中记录其停止时间(stoptime),并检查是否将记录的小服务程序执行信息加到该服务器的网页中的小服务程序阵列当中去的装置;和用于将该小服务程序阵列发送给浏览器的装置。在本发明的再另一个实施例中,提供了一种用于指示处理器监视具有存储器和很多小服务程序的服务器的性能的计算机程序产品,该计算机程序产品包括一个计算机可读介质;用于在每个小服务程序的开始插入代码从而在被运行时将其开始时间记录在存储器中的表内的第一程序指令装置;用于在每个小服务程序的出口或者异常点插入代码,从而在表中记录其停止时间,并检查是否将记录的小服务程序执行信息加到该服务器的网页中的小服务程序阵列当中去的第二程序指令装置;和将该小服务程序阵列发送给浏览器的第三程序指令装置;其中所有的程序指令装置都被记录在该介质上。图1是根据本发明的一个实施例的流程图;图2是展示根据本发明另一个实施例的步骤的流程图;以及图3是本发明的另外一个实施例的系统组成部分的框图。具体实施例方式为了更好地理解本发明,及其他的或进一步的目的、优点和能力,下面结合前面所描述各图,对后面的内容和附加权利要求进行说明。图1中所示的流程10描述了根据本发明的一种监视服务器性能的方法。可以将图1和图3结合起来进行说明,图3中展示根据本发明的服务器性能监视系统30。服务器32具有存储器34和一个或多个存在于其中的小服务程序36。每个小服务程序36都具有可以在服务器32上执行的代码。每个小服务程序都有一个开始(beginning)40和一个出口(exit)44。在小服务程序36内还可以有一个或多个异常点42。表38也是在存储器34内。在图1的步骤12中提供(多个)小服务程序。在步骤14中将代码插入到每个小服务程序的开始40。当被执行时,该被插入的代码在存储器34中的表38内记录该小服务程序的开始时间。表38可以是一个散列表(hashtable)。用于插入该代码的装置可以包括一个编译器(compiler),如JAVATM源代码编译器(JAVA是SunMicrosystems公司(SantaClara,CA)的一个商标)。用于插入代码的装置也可以包括增强小服务程序执行环境。要被插入的代码被放置在小服务程序源代码的开始。然后该组合的源代码就被编译并存放在服务器32的存储器34中。也可以采用其他已知的在小服务程序中插入代码的手段。在每个小服务程序的开始插入的代码同时也可以在表38中记录其他的信息,如该小服务程序的名称和由该小服务程序接收到的输入参数。该输入参数可能作为来自浏览器的一个POST或者GET请求的一部分被接收。在每个小服务程序的开始插入的代码还可以在表38中记录调用它的小服务程序或者应用的名称。在步骤16中,在出口44或异常点42或双方插入代码。在被执行时,该被插入的代码在表38中记录该小服务程序的停止时间。该小服务程序的总运行时间也可以用先前记录的开始时间计算出来。在异常点42插入的代码也可以在表38中记录异常点条件(condition)。在异常点42和出口点44插入的代码还检查是否要将表38中的小服务程序执行信息加到小服务程序阵列(servletsarray)48中,用于网页46中的后续插入,该网页46可以是服务器32上的带有URL的HTML页。小服务程序阵列48也可以出现在一个HTML页中或者被插入到一个日志文件当中去。例如如果总执行时间超过了预先指定的最小时间,则表38中的该执行信息被加入到阵列48中去。在步骤18,阵列48被发送给图3中的应用58,该应用58可以是浏览器。应用58在客户计算机50上运行,该客户计算机50可以是任何类型的计算设备,包括,但并不局限于,膝上型计算机、桌面型计算机、工作站、掌上设备、高级便携电话、大型机、或者任何其他类型的能够接收和解释HTML代码,比如能够运行浏览器的计算设备。客户计算机50可以带有一个附加键盘54或者其他的已知的输入设备,比如鼠标、跟踪球或者麦克风和声音响应能力。显示设备52可能也被附加或者被包含在客户计算机50中。客户计算机50能够通过连接56与服务器32进行通信,该连接56可以是LAN(局域网)连接、WAN(广域网)、无线、红外线、光纤、拨号或者其他任何类型的通信连接。应用58可以经连接56通过HTTP请求来请求具有阵列48的网页46。通过连接56网页46被发送到应用58,在这里该网页被接收并被显示在显示设备52上。于是,希望调查服务器性能的人可以在远程工作站50观看网页46中的阵列48。此人还可以对所显示的数据进行进一步的分析。该进一步分析例如包括显示最长的运行小服务程序、或者显示所有的小服务程序。进一步的分析也可以通过显示一些或者全部的在步骤14、24中记录的输入参数来进行。图2中所示是本发明的另一个可选实施例的流程图20。步骤22和24与图1中的步骤12和14相同。在步骤26中代码被插入每个小服务程序的出口44和异常点42,用来在表38中记录其停止时间,并检查是否要将记录的小服务程序执行信息加入到服务器32上的日志文件(未显示)中。在步骤28,用户登录到服务器32上的操作系统。然后用户使用文件编辑软件检查日志文件。该用户可以从图3中的客户计算机50远程登录。虽然已经示出并描述了目前考虑到的本发明的优选实施例,但是对于本领于技术人员来说,可以在不背离附加权利要求范围的前提下,对本发明进行各种不同的修改。权利要求1.一种监视服务器性能的方法,包括如下步骤提供在服务器上的一个或多个小服务程序;在每个所述小服务程序的开始插入代码,从而当被执行时将其开始时间记录在所述服务器上的存储器中的一个表内;在每个所述小服务程序的出口或者异常点插入代码,从而在所述表内记录其停止时间,并检查是否要将记录的小服务程序执行信息加到网页中的小服务程序阵列中;以及将所述小服务程序阵列发送给一个应用。2.根据权利要求1所述的方法,其特征在于,还包括以下步骤在每个所述小服务程序的开始插入代码,从而当被执行时将所述每个小服务程序的名称记录在存储器中的所述表中。3.根据权利要求1所述的方法,其特征在于,还包括以下步骤在每个所述小服务程序的开始插入代码,从而当被执行时将小服务程序输入参数记录在存储器中的所述表中。4.根据权利要求3所述的方法,其特征在于,所述输入参数是通过POST或者GET请求接收到的。5.根据权利要求1所述的方法,其特征在于,所述检查判断所述记录的小服务程序执行信息是否超出预先指定的最小时间。6.根据权利要求1所述的方法,其特征在于,所述小服务程序阵列是由一个小服务程序响应来自所述应用的HTTP请求而发送的。7.根据权利要求6所述的方法,其特征在于,所述小服务程序阵列被作为一个HTML页发送到所述应用。8.一种监视服务器性能的方法,包括如下步骤提供在服务器上的一个或多个小服务程序;在每个所述小服务程序的开始插入代码,从而当被执行时将其开始时间记录在所述服务器上的存储器中的一个表内;在每个所述小服务程序的出口或者异常点插入代码,从而在所述的表内记录其停止时间,并检查是否要将记录的小服务程序执行信息加到所述服务器上的一个日志文件中;以及用文件编辑器格式化和显示所述的日志文件。9.一种用于监视服务器性能的系统,包括具有存储器和一个或多个小服务程序的服务器;用于在每个所述小服务程序的开始插入代码,从而当被执行时将其开始时间记录在所述存储器中的一个表内的装置;用于在每个所述小服务程序的出口或者异常点插入代码,从而将其停止时间记录在所述的表内,并检查是否要将记录的小服务程序执行信息加到在所述服务器上的一个网页中的小服务程序阵列中的装置;以及用于将所述小服务程序阵列发送给一个浏览器的装置。10.根据权利要求9所述的系统,其特征在于,还包括用于在每个所述小服务程序的开始插入代码,从而当被执行时将所述每个小服务程序的名称记录在存储器中的所述表内的装置。11.根据权利要求9所述的系统,其特征在于,还包括用于在每个所述小服务程序的开始插入代码,从而当被执行时将小服务程序输入参数记录在存储器中的所述表内的装置。12.根据权利要求11所述的系统,其特征在于,所述服务器适合于通过一个POST或者GET请求接收所述输入参数。13.根据权利要求9所述的系统,其特征在于,所述检查判定所述记录的小服务程序执行信息是否超过预先指定的最小时间。14.根据权利要求9所述的系统,其特征在于,所述用于发送的装置包括用于响应来自所述浏览器的HTTP请求发送所述小服务程序阵列的装置。15.根据权利要求14所述的系统,其特征在于,所述小服务程序阵列包括一个HTML页。16.一种用于指示处理器来监视服务器的性能的计算机程序产品,所述服务器具有存储器和多个小服务程序,所述计算机程序产品包括一个计算机可读介质;用于在每个所述小服务程序的开始插入代码,从而当被执行时将其开始时间记录在所述存储器中的一个表内的第一程序指令装置;用于在每个所述小服务程序的出口或者异常点插入代码,从而将其停止时间记录在所述表内,并检查是否要将记录的小服务程序执行信息加到在所述服务器上一个网页中的小服务程序阵列中的第二程序指令装置;以及用于将小服务程序阵列发送给一个浏览器的第三程序指令装置;其中,所有所述程序指令装置都被记录在所述介质上。全文摘要通过向服务器上运行的小服务程序中插入代码来监视服务器性能。在小服务程序的开始插入代码来将开始时间、小服务程序名称和输入参数记录在该服务器上的存储器中的一个表内。同样在小服务程序的出口或者异常点插入代码来在该表中记录停止时间,并且判断是否要将该表中的该信息加入到一个日志文件、一个网页中的一个阵列中。然后该网页或者日志文件被检查来判断服务器性能。文档编号H04L12/26GK1489039SQ0315672公开日2004年4月14日申请日期2003年9月8日优先权日2002年9月9日发明者W·L·亨特,J·W·小兰姆,WL亨特,小兰姆申请人:国际商业机器公司