信息处理装置和信息处理方法

文档序号:6521033阅读:161来源:国知局
信息处理装置和信息处理方法
【专利摘要】[问题]当由服务器进程连续处理一组类似命令时,出现对于软件中的虚拟资源的访问竞争。[解决方法]一种信息处理装置,其在多个服务器进程之间执行接收的命令的负载平衡,所述装置包括:历史记录单元,其将包括处理的命令的内容和对于命令的处理的响应时间的历史记录在历史数据库中;预测单元,其在要处理的一组命令分配到服务器进程的情况下,基于历史数据库中记录的历史,预测是否施加等于或高于参考值的负载;以及分配单元,其根据等于或高于参考值的负载施加到用于该组命令的进程的预测,将包括在要处理的该组命令中的至少一个命令分配到不同的服务器进程。
【专利说明】信息处理装置和信息处理方法
【技术领域】
[0001]本发明涉及信息处理装置,程序和信息处理方法。
【背景技术】
[0002]已知这样的技术,用于在考虑服务器进程的硬件资源的使用率的同时,执行命令进程的负载平衡(例如,见专利文献I)。
[0003][专利文献I]日本未审专利申请公开N0.2009-237748
【发明内容】

[0004][技术问题]
[0005]例如,当服务器进程连续处理一组类似命令时,可能出现对于软件中虚拟资源的
访问竞争。
[0006][对于问题的解决方案]
[0007]根据本发明的第一方面,提供了一种信息处理装置、程序产品以及用于在上述信息处理装置中使用的信息处理方法,所述信息处理装置在多个服务器进程之间执行接收的命令的负载平衡,包括:历史记录单元,其将包括处理的命令的内容和对于命令的处理的响应时间的历史记录在历史数据库中;预测单元,其在要处理的一组命令分配到服务器进程的情况下,基于历史数据库中记录的历史,预测是否施加等于或高于参考值的负载;以及分配单元,其根据等于或高于参考值的负载施加到用于该组命令的进程的预测,将包括在要处理的该组命令中的至少一个命令分配到不同的服务器进程。
[0008]以上本发明的简要描述没有列举本发明的所有必要特征。此外,一组这些特征的子组合也可以构成本发明。
【专利附图】

【附图说明】
[0009]图1图示根据本发明实施例的信息处理装置10的配置。
[0010]图2图示由根据本发明实施例的信息处理装置10执行的信息处理的第一流程。
[0011]图3图示对于多个命令A到F的处理时间。
[0012]图4图示根据图2中图示的流程的信息处理的概要。
[0013]图5图示由根据本发明实施例的信息处理装置10执行的信息处理的第二流程。
[0014]图6图示由根据本发明实施例的信息处理装置10执行的信息处理的第三流程。
[0015]图7图示根据图6中图示的流程的信息处理的概要。
[0016]图8图示计算机1900的硬件配置示例。
【具体实施方式】
[0017]下文中,将描述本发明的实施例。然而,下述实施例不旨在限制本发明权利要求的范围。此外,在实施例中描述的特征的所有组合不是解决上面问题所必须的。[0018]图1图示根据本发明实施例的信息处理装置10的配置和多个客户端20、30和40。信息处理装置10执行多个服务器进程中从多个客户端20等(20、30和40)接收的命令的负载平衡。信息处理装置10根据由个别服务器进程执行的命令的组合,基于历史信息预测负载,并且减少取决于命令的组合主要在服务器进程中出现的对于软件的竞争。
[0019]客户端20等每个允许用户对图形用户界面(GUI)或字符用户界面(CUI)执行操作,并且发送对于操作的命令(或一组命令)到信息处理装置10。客户端20等每个可以是计算机终端、便携式信息终端等,并且可以通过执行对应于服务器进程的客户端进程执行客户端服务器程序。
[0020]信息处理装置10接收来自客户端20等的命令。信息处理装置10例如可以是接收来自客户端20等的命令并且执行对应于命令的处理的服务器计算机。信息处理装置10可以是包括多个服务器计算机的信息系统。
[0021]信息处理装置10包括前端处理单元110、负载平衡单元102、后端处理单元120、历史记录单元130、预测单元132和分配单元134。
[0022]负载平衡单元102在由前端处理单元110执行的多个前端服务器进程112等(112、114和116)之间,执行多个客户端20等的负载平衡。例如,负载平衡单元102从没有分配到任何服务器进程的客户端20接收登入(log-1n)请求,并且执行登入处理。
[0023]然后,负载平衡单元102将客户端20分配到由前端处理单元110执行的多个前端服务器进程112等的任意一个,稍后将描述前端处理单元110。负载平衡单元102将关于客户端20分配到的前端服务器进程的信息提供到前端处理单元110。
[0024]前端处理单元110执行多个前端服务器进程112等,多个前端服务器进程112等的每个接收来自客户端20等的至少一个的命令。例如,前端处理单元110从多个客户端20等的每个接收命令或一组命令,并且使用在信息处理装置10中提供的一个或多个中央处理单元(CPU),并行或同时执行用于来自多个客户端20等的命令的进程。
[0025]在多个前端服务器进程112等的个别进程中,前端处理单元110处理来自分配到对应的前端服务器进程112等的客户端的命令。在图1中,前端处理单元110处理从分配到前端服务器进程112的三个客户端30接收的至少一个命令或至少一组命令(称为“接收命令”),并且处理从分配到前端服务器进程116的两个客户端40接收的接收命令。
[0026]前端处理单元110将由前端服务器进程112对于命令的处理结果发送到分配到对应的前端服务器进程112等客户端30等。前端处理单元110还可以能够将分配到前端服务器进程112等的命令转移到与命令已经分配到的前端服务器进程112等不同的前端服务器进程112等。
[0027]此外,前端处理单元110可以将分配到前端服务器进程112等的接收命令的至少一个命令转移到后端处理单元120的后端服务器进程122,并且可以从后端服务器进程122接收对于命令的处理结果。此外,前端处理单元110提供包括处理命令的内容、命令的执行时间、对于命令的处理的响应时间的历史到历史记录单元130。
[0028]后端处理单元120执行后端服务器进程122。在后端服务器进程122中,后端处理单元120从前端服务器进程112等接收对于至少一个命令的处理请求的转移,执行该命令,并且将对于命令的处理结果传输到作为请求源的前端服务器进程112等。前端服务器进程112还提供处理命令的内容、命令的执行时间、对于命令的处理的响应时间的历史到历史记录单元130。
[0029]历史记录单元130从前端处理单元110和后端处理单元120的每个接收包括处理命令的内容、命令的执行时间、对于命令的处理的响应时间的历史。历史记录单元130在历史中相互关联地记录命令的内容、执行时间和响应时间。
[0030]预测单元132基于历史记录单元130中记录的历史,预测在要处理的一组命令分配到前端服务器进程112等的情况下,是否施加等于或高于参考值的负载。例如,在要处理的一组命令分配到前端服务器进程112等的情况下,预测单元132可以通过预测是否要求等于或长于参考时间的响应时间,预测负载。
[0031]此外,例如在一组命令分配到前端服务器进程112等时,施加等于或高于参考值的负载的情况下,预测单元132可以预测在包括在要处理的该组命令中的至少一个命令分配到不同于前端服务器进程112等的前端服务器进程114等的情况下,不同的前端服务器进程114等的负载是否等于或高于参考值。预测单元132将预测结果提供到分配单元134。
[0032]分配单元134根据通过预测单元132的预测,所述预测为在要处理的一组命令分配到前端服务器进程112等的情况下施加等于或高于参考值的负载,分配包括在要由前端服务器进程112等处理的一组命令中的至少一个命令到不同的服务器进程等。
[0033]例如,分配单元134可以分配包括在要由前端服务器进程112等处理的一组命令中的至少一个命令到不同于前端服务器进程112的前端服务器进程114等,或到后端服务器进程122等。
[0034]如上所述,在从客户端接收接收命名之后,在预测对于要由前端服务器进程112等处理的一组命令的响应时间等于或长于参考时间的情况下,信息处理装置10将用于至少一个命令的进程分配到不同服务器进程。因此,在信息处理装置10的情况下,避免前端服务器进程112等处理对其预测负载变得较高的一组命令,并且可以抑制主要根据命令等的组合的竞争的出现。
[0035]例如,在现有客户端服务器程序中,当服务器计算机在由一个服务器进程执行的线程中处理命令的特定组合时,访问可能集中于诸如管理处理请求或存储的队列的控制块等的虚拟资源,并且可能出现竞争,因此响应劣化。
[0036]例如,在服务器计算机处理多次(诸如每秒几千次)用于对于存储执行“Get”和“Free”的命令的情况下,即使存储(硬件资源)的使用率本身低,集中于管理存储的控制块的访问也可能导致竞争。因此,增加对于命令的响应时间。除了对应于硬件资源的使用率的负载平衡外,根据本发明实施例的信息处理装置10能够处理由命令的特定组合产生的负载,并且避免这种竞争出现。
[0037]图2图示由根据本发明实施例的信息处理装置10执行的信息处理的第一流程。在图2中图示了流程,其中在确定当来自客户端的命令分配到前端服务器进程112等时响应时间等于或长于参考时间的情况下,使得不同于前端服务器进程112等的前端服务器进程114等执行对于至少一个命令的处理。通过执行S102到S122的步骤,信息处理装置10在多个前端服务器进程112等之间执行接收的命令的负载平衡。
[0038]在S102中,通过在信息处理装置10上执行守护进程,负载平衡单元102从还没有分配到任何服务器进程的客户端20接收登入请求,并且对于客户端20执行登入处理。
[0039]在S104中,负载平衡单元102将客户端20分配到来自由前端处理单元110执行的多个前端服务器进程112等中的前端服务器进程112。负载平衡单元102将关于客户端20分配到的前端服务器进程112的信息提供到前端处理单元110。
[0040]在S105中,前端处理单元110接收来自客户端20的命令。例如,前端处理单元110接收对应于对于客户端20的用户操作的接收命令。
[0041]例如,前端处理单元110从自客户端20接收包括命令A到E的一组命令,作为用于打开在信息处理装置10中存储的文件(数据集)的一组命令。
[0042]Command A: C_GET_MEMBER_ATTRIBUTE:参数=具有成员名的数据集名
[0043]Command B: C_LIST_DATASET:参数=数据集名
[0044]Command C: C_QUERY_DATASETS:参数=hlq
[0045]Command D: C_L0CK_AND_D0WNL0AD_MEMBER:参数=具有成员名的数据集名
[0046]Command E: C_GET_MEMBER_ATTRIBUTE:参数=具有成员名的数据集名
[0047]作为另一示例,前端处理单元110使用过滤器指定从TAKATSU开始的文件(数据集),并且从客户端20接收一组命令F到H,作为用于搜索文件(数据集)中的字符串测试的一组命令。
[0048]Command F:C_SEARCH:参数=过滤器(例如 TAKATSU.*),搜索串=测试 *
[0049]Command G: C_GET_MEMBER_ATTRIBUTE:参数=具有成员名的数据集名
[0050]Command H:C_LIST_DATASET:参数=数据集名
[0051]前端处理单元110可以接收包括命令的类型和参数的命令。例如,在命令A中,“C_GET_MEMBER_ATTRIBUTE”代表命令的类型,并且“具有成员名的数据集名”代表参数。前端处理单元110将接收的一个或多个命令提供到预测单元132。
[0052]在S106中,基于历史记录单元130的历史数据库中记录的历史,预测单元132预测在要处理的一组命令分配到前端服务器进程112 (例如,客户端分配到的前端服务器进程)的情况下,对于前端服务器进程112是要需要等于或长于参考时间的响应时间。
[0053]在此,预测单元132可以对于(I)在S105中新接收的接收命令或(2)通过添加接收命令到作为要处理的一组命令由前端服务器进程112处理的一组命令,预测负载。
[0054]例如,预测单元132对于与包括在要处理的一组命令中的每个命令相同或类似的命令(称为类似命令)搜索历史数据库。在代表在相同时段中执行仅包括对应于要处理的该组命令的至少一些命令的类似命令的一组类似命令的历史存在的情况下,预测单元132比较在此情况下对于个别类似命令的响应时间等的负载与执行不同组合情况下对于个别类似命令的负载,通过用不同于类似命令的命令替代该组类似命令的一些类似命令获得该不同组合。
[0055]更具体地,执行对应于要处理的该组命令的一组类似命令的情况下的响应时间(在多个响应时间存在的情况下,平均响应时间或最大/最小响应时间,称为“类似命令模式响应时间”)与执行命令的不同组合的情况下的响应时间(称为“不同命令模式响应时间”)之间的比较,并且确定得到的结果是否等于或大于参考值。
[0056]例如,通过确定类似命令模式响应时间是否等于或长于通过将不同命令模式响应时间乘以特定系数获得的时间,预测单元132确定在要处理的该组命令分配到前端服务器进程112情况下是否需要等于或长于预定参考值的响应时间。预测单元132将预测结果提供到分配单元134。[0057]此外,预测单元132可以基于历史记录单元130的历史数据库,预先检测当在相同时段中执行两个命令/ 一组命令的指定组合时,其响应时间达到参考时间或更长的两个命令/一组命令的指定组合。命令/一组命令的指定组合可以是历史数据库中记录的该组处理命令的全部或部分。在要处理的该组命令包括检测到的两个命令/一组命令的组合时,可以预测要求等于或长于参考时间的响应时间。
[0058]在预测单元132已经在S106的处理中预测在S108中当要处理的该组命令分配到前端服务器进程112等时,要求等于或长于参考时间的响应时间的情况下,分配单元134使得处理进到S114,以便分配命令到不同服务器进程。在不要求等于或长于参考时间的响应时间的情况下,分配单元134使得处理进到S110,以便由原始服务器进程完成命令。
[0059]在SllO中,前端处理单元110执行在S104的处理中分配的前端服务器进程112,以处理从客户端20接收的命令。
[0060]在SI 12中,前端处理单元110将通过已经处理命令的前端服务器进程112的处理结果发送到客户端20。
[0061 ] 在SI 14中,分配单元134将包括在要处理的该组命令中的至少一个命令(称为“分配的命令”)分配到不同于前端服务器进程112的前端服务器进程114等。例如,分配单元134将要处理的该组命令中新接收的接收命令分配到不同的前端服务器进程114等。可替代地,例如,分配单元134可以将通过在接收命令之前添加由前端服务器进程112处理的该组命令获得的一组命令分配到不同的前端服务器进程114等。
[0062]例如,通过将分配的命令从在S104的处理中分配的前端服务器进程112转移到不同的前端服务器进程114等,分配单元134将分配的命令分配到不同的前端服务器进程114
坐寸ο
[0063]在S116中,前端处理单元110执行在S114的处理中分配的不同的前端服务器进程114等,以处理来自客户端20的分配的命令。
[0064]因此,信息处理装置10能够在考虑对于分配到前端服务器进程112等的来自客户端20等的命令的响应时间的同时,由不同的前端服务器进程114等处理分配的命令。
[0065]在S118中,前端处理单元110将通过已经处理分配的命令的不同的前端服务器进程114等的处理结果发送到客户端20。
[0066]在S120中,前端处理单元110将诸如处理的命令的类型和参数的命令的内容、对于命令的执行时间、以及对于命令的处理的响应时间记录到历史记录单元130中。
[0067]在S122中,前端处理单元110确定客户端20是否已经登出。在确定客户端20已经登出的情况下,前端处理单元110终止处理。在确定客户端20已经还没有登出的情况下,处理返回S105。
[0068]如上所述,在信息处理装置10中,通过执行S102到S122的处理,预测单元132基于历史记录单元130中的历史,预测通过前端服务器进程112对于来自客户端20等的命令的响应时间。在响应时间等于或长于参考时间的情况下,分配单元134将对于命令的处理分配到不同服务器进程。
[0069]因此,在信息处理装置10的情况下,前端服务器进程112不处理响应时间长的一组命令。例如,在信息处理装置10的情况下,可以减少在从由前端服务器进程112等执行的线程同时访问虚拟资源(诸如管理处理请求或存储的队列的控制块)的情况下产生的竞争的出现。
[0070]在第一流程的S114中,替代分配的命令,分配单元134可以将分配到前端服务器进程112的客户端20本身分配到不同的前端服务器进程114等。在此情况下,信息处理装置10可以对于作为新的前端服务器进程的不同的前端服务器进程114等执行随后处理,分配的命令在S114的处理中分配到不同的前端服务器进程114等。
[0071]图3图示通过前端服务器进程对多个命令A到F的处理时间的示例。例如,在命令A到C是由前端服务器进程处理的一组命令并且命令F是由前端服务器进程新接收的接收命令的情况下,命令A到C和F是要处理的一组命令。在图2的S106中,预测单元132对于对应于作为要处理的一组命令的命令A到C和F的类似命令,搜索历史记录单元130的历史数据库。
[0072]预测单元132对于代表在相同时段中执行包括对应于命令A到C和F的类似命令A’到C’和F’的至少一个的一组类似命令的历史,搜索历史数据库。在存在代表在相同时段中执行仅包括对应于要处理的该组命令的至少一些命令的类似命令的一组类似命令(例如,一组命令A’、B’、C’和F’或一组命令B’、C’和F’)的历史的情况下,预测单元132比较在此情况下对于类似命令的类似命令模式响应时间与执行不同组合情况下的对于类似命令的不同命令模式响应时间,通过用不同于类似命令的命令替换该组类似命令的一些类似命令(例如,一组命令A’、B’、C’和X或一组命令D’、E’和F’)获得不同组合。
[0073]图3图示这样的状态,其中在与命令A到C 一起处理命令F的情况下,在历史数据库中记录相对长响应时间,并且与命令D和E —起处理命令F的情况下,在历史数据库中记录相对短响应时间。
[0074]在此情况下,对于与命令A到C 一起处理命令F的类似命令模式响应时间长于对于与命令D和E—起处理命令F的不同命令模式响应时间。结果,例如,在S106中与不同命令模式响应时间相乘的特定系数是1.0的情况下,预测单元132预测在要处理的该组命令分配到前端服务器进程112等的情况下要求等于或长于参考时间的响应时间。
[0075]在此,预测单元132可以定义具有与命令的类型和/或参数类似的类型和/或参数的不同命令为与该命令类似的命令。此外,在命令的类型相同或者具有特定共同关键词的情况下,预测单元132可以定义多个命令的类型为相互类似。此外,在命令的文件名和其中存在文件的文件夹的名相同或具有特定共同关键词的情况下,预测单元132可以定义多个命令的参数为相互类似。
[0076]此外,在根据命令的大小分类文件或数据库的大小,并且对于命令的文件或数据库的大小分类到相同类别中的情况下,预测单元132可以定义多个命令的参数为相互类似。预测单元132可以对于命令类型和参数的类似度进行定义,除了对应于客户端20的用户的用户ID等。
[0077]图4图示图2中图示的信息处理的概述。负载平衡单元102通过守护进程对客户端20执行登入处理,并且将客户端20分配到来自多个前端服务器进程112、114和116中的前端服务器进程112。
[0078]例如,负载平衡单元102基于对于CPU的负载、存储器使用率和/或执行前端服务器进程112等每个的命令的客户端的数目,从多个前端服务器进程112等中选择前端服务器进程112,并且将选择的前端服务器进程112分配到客户端20。[0079]客户端20分配到的前端服务器进程112接收命令/ 一组命令作为来自客户端20的命令,并且根据代表对于包括接收命令的要处理的该组命令的处理的响应时间等于或长于参考时间的确定结果,将包括在要处理的该组命令中的分配的命令转移到不同于前端服务器进程112的前端服务器进程114。不同的前端服务器进程114处理来自客户端20的分配命令,并且将处理结果发送到客户端20。
[0080]图5图示由根据本发明实施例的信息处理装置10执行的信息处理的第二流程。在图5中图示了流程,其中在确定当从客户端接收的接收命令分配到前端服务器进程时响应时间等于或长于参考时间,并且当接收命令分配到不同前端服务器进程时响应时间短于参考时间的情况下,使得不同前端服务器执行对于包括在要处理一组命令中的命令的处理。在第二流程中,通过执行S202到S226的处理,信息处理装置10在多个服务器进程之间执行接收的命令的负载平衡。
[0081]在第二流程中,信息处理装置10可以执行与图2中图示的S102到S108的处理一致的S202到S208的处理。
[0082]在S210中,预测单元132基于历史记录单元130的历史数据库中记录的历史,确定是否存在前端服务器进程114等,其不同于前端服务器进程112,并且当要处理的一组命令分配到不同的前端服务器进程114等时,其响应时间短于参考时间。
[0083]例如,在通过将S205中由前端服务器进程112接收的接收命令添加到由不同的前端服务器进程114等处理的一组命令所生成的该组命令作为要处理的一组命令,分配到不同的前端服务器进程114等的情况下,预测单元132预测不同的前端服务器进程114等是否需要等于或长于参考时间的响应时间。
[0084]类似于S106的处理,预测单元132基于历史记录单元130中的历史数据库中记录的历史,执行预测。预测单元132对于不同于前端服务器进程112的每个不同的前端服务器进程114等执行预测。预测单元132将对于是否存在没有对其施加等于或高于参考值的负载的不同的前端服务器进程114等的预测结果提供到分配单元134。
[0085]在S212中通过预测单元132的预测结果代表“存在没有对其施加等于或高于参考值的负载的不同的前端服务器进程114等”的情况下,分配单元134使得处理进到S218。在预测结果不代表“存在没有对其施加等于或高于参考值的负载的不同的前端服务器进程114等”的情况下,分配单元134使得处理进到S214。
[0086]在第二流程中,信息处理装置10可以执行与图2中图示的SllO到S122的处理一致的S214到S226的处理。
[0087]如上所述,在信息处理装置10中,通过执行S202到S226的处理,假如预测单元132已经预测即使当包括在要处理的该组命令中的至少一个命令分配到不同的前端服务器进程114等时,要施加到不同的前端服务器进程114等的负载也低于参考值,则分配单元134将至少一个命令分配到不同的前端服务器进程114等。
[0088]因此,基于对于由对其执行分配的不同的前端服务器进程114等以及从其执行分配的前端服务器进程112对于命令的响应时间的预测,信息处理装置10将客户端分配到不同的前端服务器进程114等。因此,根据信息处理装置10,可以可靠地减少由对其执行分配的服务器进程对命令的响应时间。
[0089]图6图示由根据本发明实施例的信息处理装置10执行的信息处理的第三流程。在图6中图示了流程,其中在确定当从客户端接收的接收命令分配到前端服务器进程时响应时间等于或长于参考值的情况下,使得后端服务器进程执行对于包括在要处理的一组命令中的命令的处理。在第三流程中,通过执行S302到S326的处理,信息处理装置10在多个服务器进程之间执行接收的命令的负载平衡。
[0090]在第三流程中,信息处理装置10可以执行与图2中图示的S102到S105的处理一致的S202到S205的处理。
[0091]在S306中,在新接收的接收命令分配到前端服务器进程112的情况下,预测单元132预测通过对于接收命令本身的处理,是否施加等于或高于参考值的负载到前端服务器进程112。
[0092]例如,预测单元132基于接收命令而不是要处理的一组命令,计算对应于接收命令的类似命令模式响应时间,如在S106中,并且预测类似命令模式响应时间是否等于或长于参考时间。
[0093]预测单元132可以使用预定特定时间或对于一组命令的各类型不同的时间作为参考时间。例如,预测单元132可以对于包括大数目的命令的一组命令使用较长时间作为参考时间,并且可以对于包括小数目的命令的一组命令使用较短时间作为参考时间。预测单元132将预测结果提供到分配单元134。
[0094]在S308中确定通过预测单元132的预定结果代表响应时间等于或长于参考时间的情况下,分配单元134使得处理进到S314。在S308中确定预定结果不代表响应时间等于或长于参考时间的情况下,分配单元134使得处理进到S310。
[0095]在第三流程中,信息处理装置10可以执行与图2中图示的S106的处理一致的S310的处理。
[0096]在S312中确定通过预测单元132的预测结果代表响应时间等于或长于参考时间的情况下,分配单元134使得处理进到S314。在S312中确定预定结果不代表响应时间等于或长于参考时间的情况下,分配单元134使得处理进到S320。
[0097]在S314中,分配单元134将对于从客户端20接收的接收命令的处理分配到由后端处理单元120执行的后端服务器进程。
[0098]例如,通过使得前端处理单元110将接收命令从在S304的处理中分配的前端服务器进程112转移到后端服务器进程122,分配单元134将该组命令分配到后端服务器进程122。
[0099]在S316中,后端处理单元120执行在S314中分配的后端服务器进程122,以处理接收命令。
[0100]在S318中,后端处理单元120将由后端服务器进程122对接收命令的处理结果发送到S304中分配的前端服务器进程112。
[0101]在第三流程中,信息处理装置10可以执行与图2中图示的SllO的处理一致的S320的处理。
[0102]在S322中,前端处理单元110将由前端服务器进程112在S316中的处理结果或者在S320中的处理结果发送到客户端20。
[0103]在第三流程中,信息处理装置10可以执行与图2中图示的S120和S122的处理一致的S324和S326的处理。[0104]如上所述,在信息处理装置10中,通过执行S302到S326的处理,分配单元134根据当新接收的接收命令分配到前端服务器进程112时响应时间等于或长于参考时间的预测,将对于该组命令的处理分配到由后端处理单元120执行的后端服务器进程122。
[0105]因此,信息处理装置10基于对于新接收的接收命令本身的处理负载的预测,以及对于作为处理的命令和接收命令的组合的要处理的该组命令的处理负载的预测,将客户端分配到后端服务器进程122。因此,在信息处理装置10的情况下,可以可靠地减小由对其执行分配的服务器进程对于命令的处理负载。
[0106]图7图示根据图6中图示的流程的信息处理的概述。如图7所示,通过守护进程,客户端20分配到来自多个前端服务器进程112、114和116中的前端服务器进程112。
[0107]对其分配客户端20的前端服务器进程112接收命令/ 一组命令作为来自客户端20的接收命令,并且根据代表对于接收命令的处理的响应时间等于或长于参考时间的确定结果,将接收命令转移到后端服务器进程122。后端服务器进程122处理接收命令,并且将处理结果发送到前端服务器进程112。前端服务器进程112将接收的处理结果发送到客户端20。
[0108]在本发明的实施例中,历史记录单元130可以记录处理命令时的CPU使用率和/或诸如磁盘负载硬件资源的负载,以及处理的命令的内容和对于命令的处理的响应时间。在此情况下,预测单元132可以基于硬件资源的负载以及响应时间,确定是否施加等于或高于参考值的负载到前端服务器进程112。
[0109]图8图示用作信息处理装置10等的计算机1900的硬件配置的示例。根据本发明实施例的计算机1900包括CPU外围部分(包括通过主机控制器2082相互连接的CPU2000、RAM2020、图形控制器2075和显示设备2080),输入/输出单元(包括经由输入/输出控制器2084连接到主机控制器2082的通信接口 2030、硬盘驱动器2040和CD-ROM驱动器2060)、以及传统输入/输出单元(包括连接到输入/输出控制器2084的R0M2010、软盘驱动器2050和输入/输出芯片2070)。
[0110]主机控制器2082将RAM2020与以高传送率访问RAM2020的CPU2000和图形控制器2075连接。CPU2000根据R0M2010和RAM2020中存储的程序运行,并且控制各种单元。可以提供一个或多个CPU2000。图形控制器2075在RAM2020中安排的帧缓冲器中接收由CPU2000等生成的图像数据,并且使得获取的图像数据在显示设备2080上显示。可替代地,图形控制器2075可以在其中包含帧缓冲器,在该帧缓冲器中生成由CPU2000等生成的图像数据。
[0111]输入/输出控制器2084连接主机控制器2082与作为相对高速输入/输出设备的通信接口 2030、硬盘驱动器2040和⑶-ROM驱动器2060。通信接口 2030以有线或无线方式经由网络与外部装置通信。通信接口 2030用作执行通信的硬件。硬盘驱动器2040在其中存储由计算机1900中的CPU2000使用的程序和数据。⑶-ROM驱动器2060从⑶-R0M2095读取程序或数据,并且将读取的程序或数据经由RAM2020提供到硬盘驱动器2040。
[0112]此外,R0M2010以及作为相对低速输入/输出设备的软盘驱动器2050和输入/输出芯片2070连接到输入/输出控制器2084。R0M2010在其中存储在计算机1900启动时执行的引导程序和/或依赖于计算机1900的硬件的程序。软盘驱动器2050从软盘2090读取程序或数据,并且将读取的程序或数据经由RAM2020提供到硬盘驱动器2040。输入/输出芯片2070将软盘驱动器2050与输入/输出控制器2084连接,并且经由例如并行端口、串行端口、键盘端口、鼠标端口等将各种输入/输出设备与输入/输出控制器2084连接。
[0113]经由RAM2020提供到硬盘驱动器2040的程序存储在软盘2090、⑶-R0M2095、或诸如IC卡的记录介质中,并且由用户提供。从记录介质读取程序,经由RAM2020安装到计算机1900中的硬盘驱动器2040中,并且由CPU2000执行。
[0114]安装到计算机1900中并且使得计算机1900用作信息处理装置10的程序包括前端处理模块、负载平衡模块、后端处理模块、历史记录模块、预测模块和分配模块。程序或模块可以使得CPU2000等允许计算机1900用作前端处理模块110、负载平衡模块102、后端处理模块120、历史记录模块130、预测模块132和分配模块134。
[0115]通过读取到计算机1900,在程序描述的信息处理用作前端处理模块110、负载平衡模块102、后端处理模块120、历史记录模块130、预测模块132和分配模块134,它们是通过软件和上述各种硬件资源之间的协作获得的特定部件。通过利用特定部件实现对于对应于根据本发明实施例的计算机1900的预期目的的信息的算术运算或处理,可以构造对应于预期目的的特殊信息处理装置10。
[0116]例如,在计算机1900和外部装置等之间执行通信的情况下,CPU2000运行加载到RAM2020上的通信程序,并且指示通信接口 2030基于通信程序中描述的处理内容,执行通信处理。在CPU2000的控制下,通信接口 2030读取在存储设备(诸如RAM2020、硬盘驱动器2040、软盘2090或⑶-R0M2095)中安排的传输缓冲器区域等中存储的传输数据,并且将读取的传输数据发送到网络或将从网络接收的接收数据写入存储设备中安排的传输缓冲器区域等中。如上所述,通信接口 2030可以以直接存储器存取(DMA)方法转移传输/接收数据到存储设备。可替代地,CPU2000可以通过从作为转移源的存储设备或通信接口 2030读取数据转移传输/接收数据,并且将数据写入到作为转移目的地的通信接口 2030或存储设备。
[0117]此外,CPU2000使得存储在诸如硬盘驱动器2010、CD-ROM驱动器2060(⑶-R0M2095)、软盘驱动器2050 (软盘2090)等的外部存储设备中的文件或数据库的全部或必要部分通过DMA转移等读取到RAM2020中。然后,CPU2000将处理的数据通过DMA转移等写入回外部存储设备。在这样的处理中,因为RAM2020可以在其中临时存储外部存储设备的内容,所以RAM2020、外部存储设备等通称为本发明实施例中的存储器、存储单元、存储设备等。本发明实施例中的关于程序、数据、表格、数据库等的各种类型的信息存储在这样的存储设备中,并且经历信息处理。CPU2000还可以能够在高速缓冲存储器中存储RAM2020的部分,并且执行对于高速缓冲存储器的读取和写入。在这样的配置的情况下,因为高速缓冲存储器负责RAM2020的功能部分,所以高速缓冲存储器也包括在本发明实施例中的RAM2020、存储器和/或存储设备中,除了高速缓存、RAM2020、存储器和存储设备相互区别的情况。
[0118]此外,CPU2000执行由程序的指令序列指定并且在上述实施例中描述的各种类型的处理(包括各种算术运算、信息的处理、条件判断、信息的搜索和替换等)以及对于从RAM2020读取的数据,并且将处理的数据写回RAM2020。例如,在条件判断的情况下,CPU2000确定在上述实施例中描述的各种变量的每个是否满足大于、小于、等于或大于、小于或等于、或者等于不同变量或常量的条件。在满足(或不满足)条件的情况下,CPU2000分支到不同指令序列或者调用子例程。
[0119]此外,CPU2000能够搜索存储设备中的文件、数据库等中存储的信息。例如,在其中第一类型的属性值与第二类型的属性值相关联的多个条目存储在存储设备中的情况下,通过从存储设备中存储的多个条目中搜索满足关于指定的第一类型的属性值的条件的条目,并且读取该条目中存储的第二类型的属性值,CPU2000能够获取与满足特定条件的第一属性相关联的第二类型的属性值。
[0120]上述程序和模块可以存储在外部记录介质中。作为记录介质,除了软盘2090和CD-R0M2095外,可以使用诸如DVD或CD的光学记录介质、诸如MO的磁光介质、带介质、诸如IC卡的半导体存储器等。此外,诸如在连接到专用网络或因特网的服务器系统中提供的硬盘或RAM的存储设备可以用作记录介质,并且程序可以经由网络提供到计算机1900。
[0121]尽管上面已经描述了本发明的实施例,但是本发明的技术范围不限于上述实施例。对于本领域的技术人员显而易见的是各种替换和改进可以加到上述实施例。从权利要求的范围还显而易见的是添加有这样的替换或改进的实施例也可以包括在本发明的技术范围内。
[0122]应该注意,可以以任何顺序执行由权利要求、实施例或附图中说明的装置、系统、程序、程序产品和方法执行的每个处理的操作、过程、步骤、阶段等,只要没有特别由“先于”、“之前”等指示,并且只要来自之前处理的输出不用于之后的处理。即使在权利要求、实施例或附图中使用诸如“第一”或“下一个”的短语描述操作流程,也不必意味着必须以该顺序执行处理。
[0123]参考标号列表
[0124]10信息处理装置,20客户端,30客户端,40客户端,102负载平衡单元,110前端处理单元,112前端服务器进程,114前端服务器进程,116前端服务器进程,120后端处理单元,122后端服务器进程,130历史记录单元,132预测单元,134分配单元,1900计算机,2000CPU,2010R0M,2020RAM,2030通信接口,2040硬盘驱动器,2050软盘驱动器,2060CD-R0M驱动器,2070输入/输出芯片,2075图形控制器,2080显示设备,2082主机控制器,2084输入/输出控制器,2090软盘,2095CD-R0M
【权利要求】
1.一种信息处理装置,其在多个服务器进程之间执行接收的命令的负载平衡,所述装置包括: 历史记录单元,其将包括处理的命令的内容和对于命令的处理的响应时间的历史记录在历史数据库中; 预测单元,其在要处理的一组命令分配到服务器进程的情况下,基于历史数据库中记录的历史,预测是否施加等于或高于参考值的负载;以及 分配单元,其根据等于或高于参考值的负载施加到用于该组命令的进程的预测,将包括在要处理的该组命令中的至少一个命令分配到不同的服务器进程。
2.根据权利要求1所述的信息处理装置, 其中在至少一个新接收的命令添加到在服务器进程中处理的一组命令的情况下,预测单元预测是否施加等于或高于参考值的负载。
3.根据权利要求2所述的信息处理装置, 其中根据当通过添加至少一组新接收的命令到由服务器进程处理的该组命令而获得的一组命令分配到服务器进程时,施加等于或高于参考值的负载的预测,分配单元将至少一组新接收的命令分配到不同的服务器进程。
4.根据权利要求1到3的任一所述的信息处理装置, 其中根据在要处理的一组命令分配到服务器进程的情况下要求等于或长于参考时间的响应时间的预测,分配单元将包括在要处理的该组命令中的至少一个命令分配到不同的服务器进程。
5.根据权利要求1到4的任一所述的信息处理装置,` 其中在即使当包括在要处理的该组命令中的至少一个命令分配到不同的服务器进程时,不同服务器进程的负载也低于参考值的条件下,分配单元将至少一个命令分配到不同服务器进程。
6.根据权利要求1到5的任一所述的信息处理装置,还包括: 前端处理单元,其执行多个前端服务器进程,多个前端服务器进程的每个接收来自至少一个客户端的命令;以及 后端处理单元,其执行后端服务器进程, 其中根据在要处理的该组命令分配到前端服务器进程的情况下,等于或高于参考值的负载施加到用于要处理的该组命令的进程的预测,分配单元将对于包括在要处理的该组命令中的至少一个命令的处理分配到后端服务器进程,并且 其中后端服务器进程将对于至少一个命令的处理结果发送到前端服务器进程。
7.根据权利要求6所述的信息处理装置,还包括: 负载平衡单元,其在多个前端服务器进程之间执行多个客户端的负载平衡, 其中前端处理单元处理来自前端服务器进程之间负载平衡的客户端的命令。
8.根据权利要求6或7所述的信息处理装置, 其中根据在至少一组新接收的命令分配到服务器进程的情况下施加等于或高于参考值的负载的预测,分配单元将对于该组命令的处理分配到后端服务器进程。
9.一种用于在多个服务器进程之间执行接收的命令的负载平衡的信息处理方法,所述方法包括:历史记录步骤,其将包括处理的命令的内容和对于命令的处理的响应时间的历史记录在历史数据库中; 预测步骤,其在要处理的一组命令分配到服务器进程的情况下,基于历史数据库中记录的历史,预测是否施加等于或高于参考值的负载;以及 分配步骤,其根据等于或高于参考值的负载施加到用于该组命令的进程的预测,将包括在要处理的该组命令中的至少一个命令分配到不同的服务`器进程。
【文档编号】G06F9/50GK103885820SQ201310617056
【公开日】2014年6月25日 申请日期:2013年11月28日 优先权日:2012年12月19日
【发明者】高津智晃, 横井淳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1